Программирование: TaskDialogMsgBox

Прототип

function TaskDialogMsgBox(const Instruction, Text: String; const Typ: TMsgBoxType; const Buttons: Cardinal; const ButtonLabels: TArrayOfString; const ShieldButton: Integer): Integer;

Описание

Выводит на экран сообщение, используя диалоговое окно задач.

  Параметры:

Instruction Определяет текст инструкции.
Text Определяет текст сообщения.
Typ Определяет значок, отображаемый в диалоге задач.
Если установлено значение mbConfirmation, то значок показан не будет.
Buttons Определяет кнопки, включённые в диалог задач.
ButtonLabels Определяет строковый массив с метками используемых кнопок.
Если массив пустой, то по умолчанию будут использоваться системные метки кнопок.
Если метка состоит из двух строк, разделённых новой строкой, то первая строка определяет название кнопки, а вторая - текст примечания.
ShieldButton Определяет кнопку, на которой будет показан значок щита.
Если установлено значение 0, то значок щита показан не будет.

Функция возвращает константу ID*, указывающую кнопку, которую нажал пользователь, или 0, если в работе функции произошёл сбой (что маловероятно, за исключением неверно переданных параметров или нехватки системных ресурсов).

Комментарии

Класс TMsgBoxType представлен следующими значениями:

TMsgBoxType = (mbInformation, mbConfirmation, mbError, mbCriticalError);

Флаги, поддерживаемые параметром Buttons:

MB_OK               - одна кнопка [OK]
MB_OKCANCEL         - две кнопки [OK] и [Cancel]
MB_ABORTRETRYIGNORE - три кнопки [Abort], [Retry] и [Ignore]
MB_YESNOCANCEL      - три кнопки [Yes], [No] и [Cancel]
MB_YESNO            - две кнопки [Yes] и [No]
MB_RETRYCANCEL      - две кнопки [Retry] и [Cancel]

Если используется флаг MB_ABORTRETRYIGNORE, то параметр ButtonLabels не может быть пустым массивом и метки кнопок должны быть указаны в следующем порядке: Retry, Ignore, Abort.

Поддерживаемые значения для параметра ShieldButton, а также возможные возвращаемые значения функции:

IDOK     - нажата кнопка [OK]
IDCANCEL - нажата кнопка [Cancel]
IDABORT  - нажата кнопка [Abort]
IDRETRY  - нажата кнопка [Retry]
IDIGNORE - нажата кнопка [Ignore]
IDYES    - нажата кнопка [Yes]
IDNO     - нажата кнопка [No]

Пример

begin
  case TaskDialogMsgBox('Выбор A или B',
                        'Вы можете выбрать A или B.',   
                        mbInformation,
                        MB_YESNOCANCEL, ['Я выбираю &A'#13#10'Будет выбрано A.', 'Я выбираю &B'#13#10'Будет выбрано B.'],
                        IDYES) of
    IDYES: MsgBox('Ваш выбор A.', mbInformation, MB_OK);
    IDNO: MsgBox('Ваш выбор B.', mbInformation, MB_OK);
  end;
end;

См. также:

SuppressibleTaskDialogMsgBox
MsgBox