Функция MessageDlgPos используется, чтобы отобразить сообщения пользователю в заданной экранной позиции. Эти сообщения могут быть информационными, предупреждения или другими. Даётся полный свободный выбор кнопок, которые пользователь может нажать, чтобы подтвердить диалог.
Например, пользователю можно показать сообщение об ошибках, и можно позволить прервать, повторить или отменить ошибочный процесс.
Экранные координаты даются в значениях Y и X.
Значение DialogType может иметь одно из следующих перечисленных значений:
mtWarning - Отображает символ восклицания mtError - Отображает красный "Х" mtInformation - Отображает "i" в круге mtConfirmation - Отображает знак вопроса mtCustom - Отображает только сообщение
Значение Buttons может быть одним из следующих перечисленных значений:
Теперь, кажется, что в Delphi сделали конструкторскую недоработку при установке возвращаемого значения диалогового окна. Вместо того, чтобы определить перечисляемое значение нажатой кнопки, используется полностью различный набор перечисляемых имён:
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: