Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   TMsgDlgBtn in Integer? (https://www.delphipraxis.net/190525-tmsgdlgbtn-integer.html)

Jim Carrey 12. Okt 2016 10:36

AW: TMsgDlgBtn in Integer?
 
Zitat:

Warum benutzt du nicht die aussagekräftigen Konstanten?
Weil ich meinen Dialog mit CreateMessageDialog() erzeuge und mit ShowModal anzeige welches Integer zurückliefert.

Luckie 12. Okt 2016 10:38

AW: TMsgDlgBtn in Integer?
 
Und die Konstanten sind Integers.

Jim Carrey 12. Okt 2016 10:41

AW: TMsgDlgBtn in Integer?
 
Heißt das, ich kann einfach in meiner Überprüfung von ID_YES auf idYes umstellen ohne weitere Änderungen?

bra 12. Okt 2016 10:43

AW: TMsgDlgBtn in Integer?
 
Am besten auf mrYes (heisst nicht umsonst mr wie Modal Result).

Luckie 12. Okt 2016 10:56

AW: TMsgDlgBtn in Integer?
 
Zitat:

Zitat von Jim Carrey (Beitrag 1350568)
Heißt das, ich kann einfach in meiner Überprüfung von ID_YES auf idYes umstellen ohne weitere Änderungen?

Genau dazu sind Konstanten da, damit man auch morgen noch weiß, auf was man prüft. ;)

Jim Carrey 12. Okt 2016 11:49

AW: TMsgDlgBtn in Integer?
 
OK verstanden.

Aber ist intern ID_NO nicht deklariert als idNo?
Bei meinem XE3 steht:
Delphi-Quellcode:
IDNO = System.UITypes.idNo;         ID_NO = IDNO;
D.h. ID_NO ist identisch zu idNo oder bin ich doof?

p80286 12. Okt 2016 17:10

AW: TMsgDlgBtn in Integer?
 
Zitat:

Zitat von Jim Carrey (Beitrag 1350584)
Delphi-Quellcode:
IDNO = System.UITypes.idNo;         ID_NO = IDNO;
D.h. ID_NO ist identisch zu idNo oder bin ich doof?

Ja, IDNO = ID_NO = System.UITypes.idNo !

gruß
K-H

Jim Carrey 12. Okt 2016 17:26

AW: TMsgDlgBtn in Integer?
 
[QUOTE=p80286;1350645]
Zitat:

Zitat von Jim Carrey (Beitrag 1350584)
Ja, IDNO = ID_NO = System.UITypes.idNo !

Das heißt ja eigentlich, dass es vollkommen egal ist, ob man auf ID_NO oder mrNo prüft. Beides geht auf
Delphi-Quellcode:
idNo = 7;
zurück.

nahpets 12. Okt 2016 18:07

AW: TMsgDlgBtn in Integer?
 
Die mr...-Konstanten stehen für ModalResult.

Sie sind die Konstanten, die in diesem Zusammenhang abzufragen sind.

Bis mrNo stimmen die Werte mit den entsprechenden ID-Konstanten überein.

IDCLOSE aber ist z. B. = 8

mrAll ist = mrNo + 1, also auch 8.
Und spätestens ab hier entsteht dann "Begriffsverwirrung".

Delphi-Quellcode:
const
  mrNone    = 0;
  mrOk      = idOk;
  mrCancel  = idCancel;
  mrAbort   = idAbort;
  mrRetry   = idRetry;
  mrIgnore  = idIgnore;
  mrYes     = idYes;
  mrNo      = idNo;
  mrAll     = mrNo + 1;
  mrNoToAll = mrAll + 1;
  mrYesToAll = mrNoToAll + 1;
Delphi-Quellcode:
const
  { Dialog Box Command IDs }
  IDOK = 1;         ID_OK = IDOK;
  IDCANCEL = 2;     ID_CANCEL = IDCANCEL;
  IDABORT = 3;      ID_ABORT = IDABORT;
  IDRETRY = 4;      ID_RETRY = IDRETRY;
  IDIGNORE = 5;     ID_IGNORE = IDIGNORE;
  IDYES = 6;        ID_YES = IDYES;
  IDNO = 7;         ID_NO = IDNO;
  IDCLOSE = 8;      ID_CLOSE = IDCLOSE;
  IDHELP = 9;       ID_HELP = IDHELP;
  IDTRYAGAIN = 10;
  IDCONTINUE = 11;
Wenn das dann mal nicht mehr passt, viel Vergnügen bei der Fehlersuche.

Statt
Delphi-Quellcode:
case MessageDlg('s',mtError,[mbYes,mbNo,mbAll,mbNoToAll,mbYesToAll],0) of
  mrYes : ;
  mrNo : ;
  mrAll : ;
  mrNoToAll : ;
  mrYesToAll : ;
end;
könntest Du dann (bei konsequenter Nutzung der ID-Konstanten) auch sowas machen:
Delphi-Quellcode:
case MessageDlg('s',mtError,[mbYes,mbNo,mbAll,mbNoToAll,mbYesToAll],0) of
  idYes  : ;
  idNo   : ;
  IDCLOSE : ;
  IDHELP : ;
  IDTRYAGAIN : ;
end;
Kann man sicherlich, muss man aber nicht. ;-)

Jim Carrey 12. Okt 2016 18:39

AW: TMsgDlgBtn in Integer?
 
Zitat:

(bei konsequenter Nutzung der ID-Konstanten)
Genau so handhabe ich es ;)


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:47 Uhr.
Seite 2 von 3     12 3      

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz