Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi ShowMessage-Funktion mit Ton (https://www.delphipraxis.net/121060-showmessage-funktion-mit-ton.html)

zero_x 21. Sep 2008 17:46


ShowMessage-Funktion mit Ton
 
Hallo ihr Experten,

wenn ich Delphi eine ShowMessage oder MessageDlg anzeigen lasse ertönt im komischerweise im Hintergrund kein Ton. Normalerweise ist es bei Windows oder bei allgemein bei allen anderen Programmiersprachen es so ist, dass wenn eine MessageDlg oder allegemein eine Meldung auftaucht, dass so ein Ton auch kommt. Gibt es in Delphi dazu eine Funktion, damit ein Ton bei einer ShowMessge/MessageDlg ertönt? :gruebel:

zero_x

mkinzler 21. Sep 2008 17:48

Re: ShowMessage-Funktion mit Ton
 
Rufe einfach vorher
Delphi-Quellcode:
Beep();
auf

zero_x 21. Sep 2008 18:20

Re: ShowMessage-Funktion mit Ton
 
Hallo mkinzler,

danke, aber gibt es keine Möglichkeit mit Parametern oder einer Funktionen dies zu aktivieren?

zero_x

Luckie 21. Sep 2008 18:22

Re: ShowMessage-Funktion mit Ton
 
Versuch es mal mit der Windows eigenen MSDN-Library durchsuchenMessageBox.

FAlter 21. Sep 2008 18:28

Re: ShowMessage-Funktion mit Ton
 
Hi,

entweder, du verwendest die Windows-MesageBox mit einem Flag MB_ICON..., oder du rufst vorher die Funktion MessageBeep mit einem MB_ICON... auf. Dann wird der zu diesem Symbol passende Sound abgespielt.

Die Konstanten für die Symbole sind:

(-1) - kaum hörbarer Ton über Computerlautsprecher statt Soundkarte
MB_OK - Sound nur bei MessageBeep, ansonsten eigentlich Flag für den OK-Button und nicht für eines der Symbole - Standardsound
MB_ICONSTOP - Schwerer Fehler (früher STOP-Symbol (Win16), dann abgelöst von X im roten Kreis)
MB_ICONEXCLAMATION - Fehler (Ausrufezeichen im gelben Dreieck)
MB_ICONQUESTION - Frage (? in Sprechblase)
MB_ICONINFORMATION - Information (i in Sprechblase)

Mfg
FAlter

zero_x 21. Sep 2008 18:47

Re: ShowMessage-Funktion mit Ton
 
Hallo,

wenn ich das über die API-MessageBox-Klasse mit den Konstanten(MB_*) aufrufe erhalte ich trozdem keinen Ton! Mit den beiden Funktionen Beep() und MessageBeep() funktioniert es. Frage ich mal andersherum: wieso ist es in Delphi nicht als Standard, dass automatisch bei dem Aufruf einer MessageBox ein ein Ton erönt?

Vielen Dank euch Beiden!

zero_x

Die Muhkuh 21. Sep 2008 18:49

Re: ShowMessage-Funktion mit Ton
 
Hallo,

ShowMessage und MessageDlg sind eigene Funktionen von Delphi. Sie erstellen eine Form, die danach angezeigt wird. Demnach gibt es kein Beep.

MessageBeep ist allerdings eine Windows-Funktion, mit eben dem typischen Beep.

toms 21. Sep 2008 18:49

Re: ShowMessage-Funktion mit Ton
 
Zitat:

Zitat von zero_x
. Frage ich mal andersherum: wieso ist es in Delphi nicht als Standard, dass automatisch bei dem Aufruf einer MessageBox ein ein Ton erönt?

Zum Glück nicht. Das würde ich als extrem störend empfinden.

FAlter 21. Sep 2008 18:50

Re: ShowMessage-Funktion mit Ton
 
Hi,

Zitat:

Zitat von zero_x
wenn ich das über die API-MessageBox-Klasse mit den Konstanten(MB_*) aufrufe erhalte ich trozdem keinen Ton!

Bist du sicher? Eigentlich sollte einer kommen.

Delphi-Quellcode:
MessageBox(Handle, 'Wuppdi!', 'Wuppdi?', MB_OK or MB_ICONINFORMATION);
Mfg
FAlter

toms 21. Sep 2008 18:56

Re: ShowMessage-Funktion mit Ton
 
Bei den API Funktionen kommt ein Sound, sofern dies global nicht deaktiviert ist.
Bei der Delphi Variante MessageDlg() jedoch nicht.

Nachrüsten könnte man es so:

Delphi-Quellcode:
interface

uses Dialogs, Windows;

function MessageDlgS(const Msg: string; DlgType: TMsgDlgType;
  Buttons: TMsgDlgButtons = [mbOk]; HelpCtx: Longint = 0): Word;

implementation

function MessageDlgS(const Msg: string; DlgType: TMsgDlgType;
  Buttons: TMsgDlgButtons; HelpCtx: Longint): Word;
const
  Sounds: array [TMsgDlgType] of Integer = (
    MB_ICONEXCLAMATION, MB_ICONHAND, MB_OK,
    MB_ICONQUESTION, MB_ICONASTERISK);
begin
  MessageBeep(Sounds[DlgType]);
  Result := MessageDlg(Msg,DlgType,Buttons,HelpCtx);
end;
(Quelle)


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:00 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz