Einzelnen Beitrag anzeigen

nahpets
(Gast)

n/a Beiträge
 
#19

AW: TMsgDlgBtn in Integer?

  Alt 12. Okt 2016, 18:07
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.
  Mit Zitat antworten Zitat