Delphi-Help

MessageDlg

MessageDlg

Опис

функція MessageDlg (const Message : string; DialogType : TMsgDlgType; Buttons : TMsgDlgButtons; HelpContext : Longint ) : Integer;

ФункціяMessageDlg використовується для відображення повідомлень користувача. Ці повідомлення можуть бути інформаційними, попереджувальними або будь-що. Надається повний вільний вибір кнопок, які користувач може натиснути, щоб підтвердити діалог.

Наприклад, користувачеві можна показати повідомлення про помилки, і дано вибір переривання, повтору або скасування помилкового процесу.

Значення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]mbAbortRetry = [mbAbort, mbRetry, mbCancel]mbAbortIgnore = [mbAbort, mbIgnore]

Тепер, здається, що в Delphi зробили конструкторську недоробку при встановленні значення діалогового вікна, що повертається. Замість того, щоб визначити значення натиснутої кнопки, використовується повністю різний набір перерахованих імен:

mrYes = 6mrNo = 7mrOK = 1mrCancel = 2mrAbort = 3mrRetry = 4mrIgnore = 5mrAll = 8mrNoToAll = 9mrYesToAll = 10

Значення набувають числові значення цих перерахувань, даних у числовому порядку, які визначені як еквівалентніmb. Це дуже дивно.

Ці значення визначені в модуліControls, а не в модуліDialogs.

Зверніть увагу, що кнопкаHelp не має жодного еквівалентного значення, що повертається. Це тому, що вона не закінчує діалог.

ЗначенняHelpContext використовується разом із кнопкоюHelp. Його використання виходить із області Основ Delphi.

Приклад коду

var buttonSelected : Integer;begin// Відображення діалогу з підтвердженням buttonSelected :=MessageDlg ('Confirmation',mtError, mbOKCancel, 0);

// Показ типу обраної кнопки if buttonSelected = mrOK then ShowMessage('Була натиснута OK'); if buttonSelected = mrCancel then ShowMessage('Була натиснута Cancel');end;

Діалог підтвердження буде відображено з кнопками OK та Cancel. Користувач натискає OK: Була натиснута OK відобразиться в іншомудіалоговому вікні

var buttonSelected : Integer;begin// Відображення замовного діалогу buttonSelected :=MessageDlg ('Custom dialog',mtCustom, [mbYes , mbAll, mbCancel], 0);

// Показ типу обраної кнопки if buttonSelected = mrYes then ShowMessage('Була натиснута Yes'); if buttonSelected = mrAll then ShowMessage('Була натиснута All'); if buttonSelected = mrCancel then ShowMessage('Була натиснута Cancel');end;

Діалог без значка буде відображено з кнопками OK, Cancel та All. Користувач натискає кнопку All: