Delphi-Help

MessageDlg

Печать
Рейтинг пользователей: / 0
ХудшийЛучший 

MessageDlg

Описание

function MessageDlg ( const Message : string; DialogType : TMsgDlgType; Buttons : TMsgDlgButtons; HelpContext : Longint ) : Integer;

Функция MessageDlg используется для отображения сообщений пользователю. Эти сообщения могут быть информационными, предупреждающими или что бы то ни было. Даётся полный свободный выбор кнопок, которые пользователь может нажать, чтобы подтвердить диалог.

Например, пользователю можно показать сообщение об ошибках, и дан выбор прерывания, повтора или отмены ошибочного процесса.

Значение DialogType может иметь одно из следующих перечисленных значений:

mtWarning - Отображает символ восклицания
mtError - Отображает красный "Х"
mtInformation - Отображает "i" в круге
mtConfirmation - Отображает знак вопроса
mtCustom - Отображает только сообщение

Значение Buttons может быть одним из следующих перечисленных значений:

mbYes - Отображает кнопку "Yes"
mbNo - Отображает кнопку "No"
mbOK - Отображает кнопку "OK"
mbCancel - Отображает кнопку "Cancel"
mbAbort - Отображает кнопку "Abort"
mbRetry - Отображает кнопку "Retry"
mbIgnore - Отображает кнопку "Ignore"
mbAll - Отображает кнопку "All"
mbNoToAll - Отображает кнопку "No to all"
mbYesToAll - Отображает кнопку "Yes to all"
mbHelp - Отображает кнопку "Help"

Вы задаёте эти значения в квадратных скобках разделённых запятой, как во втором примере кода.

Delphi обеспечивает множество предопределенных комбинаций кнопок:

mbYesNoCancel = [mbYes, mbNO, mbCancel]
mbYesAllNoAllCancel = [mbYes, mbYesToAll, mbNo, mbNoToAll, mbCancel]
mbOKCancel = [mbOK, mbCancel]
mbAbortRetryCancel = [mbAbort, mbRetry, mbCancel]
mbAbortIgnore = [mbAbort, mbIgnore]

Теперь, кажется, что в Delphi сделали конструкторскую недоработку при установке возвращаемого значения диалогового окна. Вместо того, чтобы определить перечисляемое значение нажатой кнопки, используется полностью различный набор перечисляемых имён:

mrYes = 6
mrNo = 7
mrOK = 1
mrCancel = 2
mrAbort = 3
mrRetry = 4
mrIgnore = 5
mrAll = 8
mrNoToAll = 9
mrYesToAll = 10

Значения получают числовые значения этих перечислений, данных в числовом порядке, которые определены как эквивалентные mb. Это очень странно.

Эти значения определены в модуле Controls, а не в модуле Dialogs.

Обратите внимание, что кнопка Help не имеет никакого эквивалентного возвращаемого значения. Это потому что она не заканчивает диалог.

Значение HelpContext используется вместе с кнопкой Help. Его использование выходит из области Основ Delphi.

Пример кода

var
buttonSelected : Integer;
begin
// Отображение диалога с подтверждением
buttonSelected := MessageDlg('Confirmation',mtError, mbOKCancel, 0);

// Показ типа выбранной кнопки
if buttonSelected = mrOK     then ShowMessage('Была нажата OK');
if buttonSelected = mrCancel then ShowMessage('Была нажата Cancel');
end;

Диалог подтверждения будет отображен с кнопками OK и Cancel.
Пользователь нажимает OK:
Была нажата OK
отобразится в другом диалоговом окне

var
buttonSelected : Integer;
begin
// Отображение заказного диалога
buttonSelected := MessageDlg('Custom dialog',mtCustom,
[mbYes,mbAll,mbCancel], 0);

// Показ типа выбранной кнопки
if buttonSelected = mrYes    then ShowMessage('Была нажата Yes');
if buttonSelected = mrAll    then ShowMessage('Была нажата All');
if buttonSelected = mrCancel then ShowMessage('Была нажата Cancel');
end;

Диалог без значка будет отображен с кнопками OK, Cancel и All.
Пользователь нажимает кнопку All:

Была нажата All

отобразится в другом диалоговом окне

 

Примечание

 

 

Авторизация



Счетчики