Home » Tutorials » Object Pascal/RTL » Dialogfenster

Dialogfenster

MessageDlg

Bei MessageDlg handelt es sich um eine ähnliche Funktion wie MessageBox, mit dem Unterschied, dass MessageDlg eine Funktion der Unit Dialogs ist, wohingegen MessageBox von TApplication ist.
Auch wird hier wieder ein String-Wert anstatt eines PChar-Werts verlangt, und es kann zusätzlich eine Hilfeseite aufgerufen werden. Vom Aussehen her unterscheidet es sich nicht von MessageBox bis auf, dass das Icon an eine bestimmte Überschrift gebunden ist.

function MessageDlg(const Msg: String; aType: TMsgDlgType; aButtons: TMsgDlgButtons; HelpCtx: LongInt): Word;

Eigenschaften/Parameter:
Im Wert aType wird der Typ des Dialogs festgelegt. (Leider keine individuellen Überschriften)

Konstante Icon Titel
mtCustom ohne Name des Programms
mtWarning Warnung
mtError Fehler
mtConfirmation Bestätigung
mtInformation Information

In aButtons ist definiert, welche Buttons angezeigt werden. Hier eine Übersicht:

Konstante Beschriftung
mbYes Ja
mbNo Nein
mbOK OK
mbCancel Abbruch
mbHelp Hilfe
mbAbort Abbruch
mbRetry Wiederholen
mbIgnore Ignorieren
mbAll Alle

Zusätzlich gibt es noch diese drei Konstanten:

  • mbYesNoCancel (Ja, Nein und Abbrechen)
  • mbOkCancel (Ok und Abbrechen)
  • mbAbortRetryIgnore (Abbrechen, Wiederholen und Ignorieren)

Rückgabewerte:
Die sind eigendlich selbst erklärend:

  • mrNone
  • mrAbort
  • mrYes
  • mrOk
  • mrRetry
  • mrNo
  • mrCancel
  • mrIgnore
  • mrAll

Einfaches Beispiel:

if MessageDlg('Programm beenden?', mtConfirmation, mbYesNoCancel, 0) = mrYes then Close;

MessageDlgPos ist im Grunde das Gleiche wie ShowMessagePos, auch hier kann man zusätzlich noch die Position bestimmen.