Meldungsfenster
(Aplication.MessageBox, MessageDlg und ShowMessage)

Rückgabewerte zwischen Aplication.MessageBox und MessageDlg unterscheiden sich!!!

Rückgabewerte Aplication.Messagebox

Konstante
Wert
Bedeutung
0
Fehler (zu wenig Speicher)
ID_OK
1
OK gedrückt
ID_CANCEL
2
Abbrechen gedrückt
ID_ABORT
3
Abbrechen dedrückt
ID_RETRY
4
Wiederholen gedrückt
ID_IGNORE
5
Ignorieren gedrückt
ID_YES
6
Ja gedrückt
ID_NO
7
Nein gedrückt

Der Unterschied zu MessageDlg ist, dass die Konstante mit MR (mrYes) beginnt.


Weiters kann bei MessageDlg der User mit F1 den Hilfetext zur Messagebox
aufrufen. Diesen könnt ihr mit dem letzten Wert zuweisen (ist gelb markiert).
MessageDlg('Cancel gedrückt! Programm beenden??',mtInformation,[mbYes,mbNo],0)

Hier einige Beispiele von Meldungsfenstern:

procedure TForm1.Button1Click(Sender: TObject);

var Antwort: integer;

begin
Antwort:= Application.MessageBox('Eine Messagebox','Info..', MB_YESNOCANCEL+MB_ICONERROR+MB_DEFBUTTON3);

case Antwort of
ID_YES: ShowMessage('Ja gedrückt'); //Rückgabewert kann auch ID_Yes sein
7: ShowMessage('Nein gedrückt'); // ID_YES ==> 6, 7 ==> Nein, 2 ==> Cancel
2: if MessageDlg('Cancel gedrückt! Programm beenden??',mtInformation,[mbYes,mbNo],0)=mrYes
then close;
end;
end ;

So sieht oben angeführtes Beispiel dann aus:

Messagebox

Antwort:= Application.MessageBox('Eine Messagebox','Info..', MB_YESNOCANCEL+MB_ICONERROR+MB_DEFBUTTON3);

Mit MB_DEFBUTTON3 wird Abbrechen als defoult Button defeniert.

Jetzt klicken wir mal auf nein und dannach auf Abbrechen

ShowMessage('Nein gedrückt');

if MessageDlg('Cancel gedrückt! Programm beenden??',mtInformation,[mbYes,mbNo],0)=mrYes
then close;