Облака / Clouds
    Go to Copy.com
    Copy.com
    The bast cloud service
    Get 20 GB free!!!
    Support WebDav.
    Show more >>

    Go to Dropbox.com
    Dropbox.com
    time-tested cloud storage
    Support WebDav.
Все бесплатно
    Все ссылки на файлы, расположенные на страницах сайта, добавлены пользователями и доступны для бесплатного скачивания. За содержание этих файлов администрация сайта ответственности не несет.



Вопросы
  Компоненты CoolBar и ControlBar
   Категория: Компоненты
  Отступ в Memo
   Категория: Компоненты
  Как подключить или отключить сетевой диск
   Категория: Интернет и Сети
  Что значит Paramstr
   Категория: Приложение
  Группировка TopAdvGrid
   Категория: Компоненты
  Дата изменения файла
   Категория: Файловая система
  Фреймы
   Категория: Компоненты
  Как создать вычисляемые поля
   Категория: Базы данных
  Создание цветных строк в ListBox
   Категория: Компоненты
  Создание и удаление полей
   Категория: Базы данных

Delphi - Справочник: MessageDlgPos

ABCDEFGHIJKLMNOPQRSTUVWXYZ

  << Вернуться  

 MessageDlgPos
function MessageDlgPos ( const Message : string; DialogType : TMsgDlgType; Buttons : TMsgDlgButtons; HelpContext : Longint; X, Y : Integer ) : Integer;
Функция (Unit Dialogs)
Отображает сообщение и кнопки в заданной позиции экрана
Описание:
Функция 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.
Пример кода: Пример

//Пример кода : Отображает диалог подтверждения 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; //Пример кода : Отображает заказной диалог с заказным выбором кнопки 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 в координатах 20 100.
Пользователь нажимает OK:

Была нажата OK

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


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

Была нажата All

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

  << Вернуться