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.