Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.063 Beiträge
 
Delphi 12 Athens
 
#18

AW: MessageDlg über den Default-Button automatisch schließen (MeinCustomDialog.Close;

  Alt 19. Aug 2016, 14:03
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.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.

Geändert von himitsu (19. Aug 2016 um 14:07 Uhr)
  Mit Zitat antworten Zitat