Справочник функций и процедур Delphi: MessageDlgPos

  Навигация по первой букве:

A  B  C  D  E  F  G  H  I  J  K  L  M  N  O  P  Q  R  S  T  U  V  W  X  Y  Z

  Навигация по категории:

Compiler directives, Directives, Keywords / Types, Variables, Constants / Functions, Procedures

  Реклама:

 

MessageDlgPos
Функция
Отображает сообщение и кнопки в заданной позиции экрана Dialogs unit
  function MessageDlgPos ( const Message : string; DialogType : TMsgDlgType; Buttons : TMsgDlgButtons; HelpContext : Longint; X, Y : Integer ) : Integer;

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

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

Значение 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.
Похожие команды
InputBox  Отображает диалог, который просит пользователя о вводе текста, со значением по умолчанию

InputQuery  Отображает диалог, который просит пользователя о вводе текста

MessageDlg  Отображает сообщение, знак и выбираемые кнопки

ShowMessage  Показывает простое диалоговое окно с кнопкой ОК, содержащее заданную строку

ShowMessageFmt  

ShowMessagePos  Показывает строку в простом диалоговом окне размещенном в заданном месте

 
Пример кода : Отображает диалог подтверждения
var
  buttonSelected : Integer;
begin
  // Показ подтверждающего диалога в 20,100
  buttonSelected := MessageDlgPos('Confirmation',mtError, mbOKCancel, 0, 20, 100);

  // Показ типа выбранной кнопки
  if buttonSelected = mrOK     then ShowMessage('Была нажата OK');
  if buttonSelected = mrCancel then ShowMessage('Была нажата Cancel');
end;
Диалог подтверждения будет отображен с кнопками OK и Cancel в координатах 20 100.
Пользователь нажимает OK:

Была нажата OK

отобразится в другом диалоговом окне
 
Пример кода : Отображает заказной диалог с заказным выбором кнопки
var
  buttonSelected : Integer;
begin
  // Показ подтверждающего диалога в координатах 20,100
  buttonSelected := MessageDlgPos('Custom dialog',mtCustom, [mbYes,mbAll,mbCancel], 0, 20, 100);

  // Показ типа выбранной кнопки
  if buttonSelected = mrYes    then ShowMessage('Была нажата Yes');
  if buttonSelected = mrAll    then ShowMessage('Была нажата All');
  if buttonSelected = mrCancel then ShowMessage('Была нажата Cancel');
end;
Диалог без значка будет отображен с кнопками OK, Cancel и All в координатах 20 100.
Пользователь нажимает кнопку All:

Была нажата All

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


Copyright © 2004-2016 Delphi Sources (источник – "DelphiBasics.ru")
 


Группа ВКонтакте   Ссылка на Twitter   Группа на Facebook