[Lazarus] MessageDlg() return type
Giuliano Colla
giuliano.colla at fastwebnet.it
Wed Sep 12 17:09:39 CEST 2012
Il 12/09/2012 16:44, Graeme Geldenhuys ha scritto:
>
>
> At runtime I click on the "Abort" button and the console output is 3
> ???? I'm using LCL-GTK2.
>
> So what is 3? It's not the enum value of mbAbort, it is also not the
> set value of mbAbort in the button set I passed to MessageDlg(). Sets
> start from value zero correct? So where does the value 3 come from?
>
>
TmodalResult is just a set of Integers.
From the Forms Unit: TModalResult = low(Integer)..high(Integer);
That way it allows you to define any custom Modal Result for your own
purposes in modal forms, besides the first predefined 12 values.
From the unit Controls of Lazarus LCL:
const
mrNone = 0;
mrOK = mrNone + 1;
mrCancel = mrNone + 2;
mrAbort = mrNone + 3;
mrRetry = mrNone + 4;
mrIgnore = mrNone + 5;
mrYes = mrNone + 6;
mrNo = mrNone + 7;
mrAll = mrNone + 8;
mrNoToAll = mrNone + 9;
mrYesToAll = mrNone + 10;
mrClose = mrNone + 11;
mrLast = mrClose;
mrAbort is a modal result which may derive from a dialog, but also from
a custom modal form. It has nothing to do with mbAbort, which is a just
an enumerated Button type for a Message dialog.
bkAbort is a TBitBtn Kind, which is different from both mbAbort and mrAbort.
I believe that this has to do with Delphi compatibility, but it makes
sense nonetheless.
Giuliano
More information about the Lazarus
mailing list