Delphi-PRAXiS
Seite 2 von 4     12 34      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Tutorials und Kurse (https://www.delphipraxis.net/36-tutorials-und-kurse/)
-   -   Standard-Dialoge (https://www.delphipraxis.net/40950-standard-dialoge.html)

r2c2 2. Apr 2006 12:41

Re: Standard-Dialoge
 
Zitat:

Zitat von faux
Alsi ich finde mtConfirmation und [mbYes, mbNo] etwas einfacher, als die Rechnerei.

Genau dafür sind ja die Konstanten da. Macht das ganze viel übersichtlicher/lesbarer.

BTW: Bitmasken sollte man IMHO nicht mit + verknüpfen...

mfg

Christian

bl3nder 29. Mai 2007 14:33

Re: Standard-Dialoge
 
Hallo ich habe noch eine kleine Zusatzfrage zu MessageDLG :

Wie erreiche ich, dass MessageDLG trotz verschiedener Fallabfragen nur einmalig angezeigt wird ?

Schreibe ich den Code naemlich so :

Delphi-Quellcode:
 if MessageDlg('Artikelnummer einfuegen?', mtWarning, [mbYesToAll,mbYes,mbCancel], 0) = mrYesToAll then begin
      for i:=0 to x do begin
        //...
      end;
    end
    else if MessageDlg('Artikelnummer einfuegen?', mtWarning, [mbYesToAll,mbYes,mbCancel], 0) = mrYes then begin
      //...
    end;

wird das Fenster zweimal aufgerufen, da die if-Anweisung in sich einen Aufruf von MessageDLG enthaelt, wenn ich das richtig verstanden habe.

Hoffe die Frage ist nicht schon irgendwo beantwortet und ich habs mal wieder nicht gefunden -.-

Matze 29. Mai 2007 14:35

Re: Standard-Dialoge
 
Mach's einfach so:

Delphi-Quellcode:
Dialog_Result: Integer; // oder Word

Dialog_Result := MessageDlg('Artikelnummer einfuegen?', mtWarning, [mbYesToAll,mbYes,mbCancel], 0);
und da wertest du die variable eben aus (if/case).

Dezipaitor 29. Mai 2007 14:39

Re: Standard-Dialoge
 
ich muss dazusteuern, dass MessageBox nicht threadsicher ist. Wenn ein Thread eine MessageBox darstellt,
wird der Thread solange blockiert, bis der Benutzer die MessageBox geschlossen hat.

Ich kenne derzeit keinen Weg, die Nachrichtenschleife (in einem eigenen Thread) der Messagebox zu beenden.

Die Muhkuh 29. Mai 2007 14:40

Re: Standard-Dialoge
 
oder gleich so:

Delphi-Quellcode:
case MessageDlg('Artikelnummer einfuegen?', mtWarning, [mbYesToAll,mbYes,mbCancel], 0); of
  mrYes:
  begin

  end;

  mrCancel:
  begin

  end;

[...]
end;

bl3nder 29. Mai 2007 14:40

Re: Standard-Dialoge
 
:wall: :wall: :wall:
*schäm*

Danke....

3_of_8 29. Mai 2007 14:42

Re: Standard-Dialoge
 
@Matze: Du sagst, man kann mbOKCancel z.B. nicht mit mbYesNoCancel verbinden. Da das Sets sind, müsste das doch mit einem + gehen, oder?

Luckie 29. Mai 2007 14:48

Re: Standard-Dialoge
 
Geht:
Delphi-Quellcode:
MessageDlg('Test', mtInformation, mbOKCancel+ mbYesNoCancel, 0);

inherited 29. Mai 2007 15:15

Re: Standard-Dialoge
 
Steht sogar so in der Delphi-Hilfe ;)

DGL-luke 29. Mai 2007 15:19

Re: Standard-Dialoge
 
... man sollte sich das nicht angewöhnen, bitmasken mit + zu verbinden.

Delphi-Quellcode:
MessageDlg('Test', mtInformation, mbOKCancel OR mbYesNoCancel, 0);


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:38 Uhr.
Seite 2 von 4     12 34      

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