Also, man kann den Dialog auch z.B. um eine "automatisch schließen"-CheckBox erweitern .
Ich lass auch einen Timer laufen, welcher im Knopf, bzw. in der Title-Caption den TimeOut anzeigt.
Bei Mausbewegung oder Tastenklick wird der TimeOut deakiviert.
Zum Schließen kann man das Click vom Button aufrufen, oder ModalResult der Form/Dialog setzen.
Delphi-Quellcode:
TButton(DialogDefaultButton).Click;
// oder
TButton(MeinCustomMsgDialog.FindComponent('OK')).Click;
// oder
MeinCustomMsgDialog.ModalResult := mrOK;
PS: Bie Buttons heißen so, wie die Parameter.
mbCancel -> Control.Name='Cancel' -> ModalResult:=mrCancel
Bei Dialogen via ShowMessage und Co. kommt es drauf an, ob die "neue" Dialog-
API vom Windows oder die eigenen TMessageDialog-
VCL-Klassen verwendet werden.
Dementsprechend muß der Code anders sein, also ob
VCL oder Windows-Dialog-
API.
Via Screen.Forms oder Screen.ActiveForm kommt man auch nachträglich an die
VCL-Dialoge ran.
MeinCustomMsgDialog.ActiveControl:
Man kann auch in MeinCustomMsgDialog.Components den TButton/TCustomButton mit TButton().Default=True suchen ... das ist definitiv der Default-Button.