Функція MessageDlgPos в Delphi відображає повідомлення та кнопки в заданій позиції екрана.
Dialogs unit
function MessageDlgPos (const Message : string; DialogType : TMsgDlgType; Buttons : TMsgDlgButtons; HelpContext : Longint; X, Y : Integer) : Integer;
Функція 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.
Функція MessageDlgPos: Відображає діалог підтвердження
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
овідображається в іншому діалоговому вікні
Функція MessageDlgPos: Відображає замовний діалог із замовленим вибором кнопки
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
відобразиться в іншому діалоговому вікні
Подібні функції, процедури та команди
InputBox — відображає діалог, який просить користувача про введення тексту, за замовчуванням.
InputQuery — відображає діалог, який просить користувача про введення тексту.
MessageDlg — відображає повідомлення, знак і кнопки, що вибираються.
ShowMessage —показує просте діалогове вікно з кнопкою ОК, що містить заданий рядок.
ShowMessageFmt —відображає відформатовані дані у простому діалоговому вікні з кнопкою ОК.
ShowMessagePos —показує рядок у простому діалоговому вікні розміщеному у заданому місці.
