Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Windows Dialogboxen (https://www.delphipraxis.net/207148-windows-dialogboxen.html)

Willie1 28. Feb 2021 17:32

Windows Dialogboxen
 
Moin,
ich habe mir natürlich zunächst das Tutorium von Matze angesehen.
Aber 2 Fragen bleiben:
Delphi-Quellcode:
  MessageDlg('Programm beenden?', mtConfirmation, [mbYes,mbNO],0, mbNO);//MB_DEFBUTTON2);
Ich will den Focus auf die zweite Schaltfläche. So geht es. Matze nennt eine andere Konstante, die Delphi auch kennt aber nicht MessageDlg.
Delphi-Quellcode:
  Fm := Vcl.Dialogs.CreateMessageDialog('Programm beenden?',mtConfirmation,[mbYes,mbNo]);
  try
    Fm.Color := clMoneyGreen;
    Fm.Font.Style := [fsBold];
    Fm.ShowModal;
  finally
    Fm.Free;
  end;
e
Damit lässt sich das Aussehen der Box verändern. Hier taucht aber wieder das Fragezeichen auf, das Microsoft verbannt hat. Soll das so sein oder ist das ein Fehler? Ich finde Fragestellung mit Ja/Nein besser als OK/Abbrechen. Entspricht mehr der Alltags-Gewohnheit. Auch das Fragezeichen maßvoll eingesetzt macht doch Sinn. Was denkt ihr?
Willie.

1. Frage ist beantwortet. Die Konstante von Matze gehört zu Application.MessageBox. Das Tutorium von Matze ist sehr alt, da gab es die Variante sicher noch nicht!

KodeZwerg 28. Feb 2021 20:38

AW: Windows Dialogboxen
 
Ist jetzt Deine Frage wie man einen Default-Button bestimmt?

Wenn Du mit Fragezeichen das mtConfirmation meinst,
mtCustom nutzen und selbst ein Image reinpacken.

Papaschlumpf73 28. Feb 2021 20:40

AW: Windows Dialogboxen
 
Ich benutze auch gerne Dialoge mit Ja/Nein

KodeZwerg 28. Feb 2021 21:30

AW: Windows Dialogboxen
 
Sorry, ich muss meine Aussage revidieren mit mtCustom.

Habs gerade in Delphi nachgestellt, samt default knopf.
Delphi-Quellcode:
Var
  Dlg: TForm;
  I: Integer;
Begin
  Dlg := CreateMessageDialog('text', mtInformation, mbYesNo, mbNo); // mbNo ist nun default
  With Dlg do
    Begin
      For i := 0 to ComponentCount - 1 do
        If Components[i] is TImage then
          TImage(Components[i]).Picture.Icon := Self.Icon; // nun ist anstelle fragezeichen dein application icon da
    End;
// der rest sollte klar sein oder?
Und ja, schutzblöcke fehlen, ich tipp des alles grad per handy rein, sorry.

Willie1 1. Mär 2021 18:49

AW: Windows Dialogboxen
 
Halle KodeZwerg, danke für deine Info vom Handy!!!

Das kommt davon, wenn man eine ungenaue Frage stellt. Ich hatte nur fest gestellt, dass CreateMessageDlg bei mtConfirmation wieder das gute, alte Fragezeichen anzeigt, was mich wundert.
Noch ein Hinweis, dein Konstrukt zeigt kein Icon an, einfach nichts.

Gruß Willie.

KodeZwerg 1. Mär 2021 19:21

AW: Windows Dialogboxen
 
Hallo willi, es ist nur der obere teil vom code getiipt.
Show oder showmodal usw muss noch rein.
Abgebildet ist nur wie man 'default button' und 'bild ersetzen' machen könnte.
Wenn du magst/brauchst lade ich demo project source hoch.

Lg vom kodezwerg

Edit

Was ist matze tutorium eigentlich?

Willie1 2. Mär 2021 17:12

AW: Windows Dialogboxen
 
Hallo KodeZwerg,
Matze ist hier im Forum schon lange aktiv und hat ein Tutorium über MessageDlg und Co. geschrieben. Findest du unter Tutorials rechts oben auf dem Begrüßungsfenster.

Natürlich muss da Showmodal hin, dann öffnet sich das Fenster!

Gruß Willie.


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:02 Uhr.

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