•  

ГлавнаяЛитература по DelphiРазработка приложений в системе Delphi → 6.1. Процедуры и функции, реализующие диалоги

Создано: 04.09.2010 4:36:55 · Исправлено: 04.09.2010 4:36:55 · Прочтений: 2713

В Delphi имеются процедуры и функции для отображения диалоговых окон общего назначения. Для вывода сообщений используются процедура ShowMessage и функции MessageDlg, MessageDlgPos. Для ввода данных применяются окна диалога, отображаемые функциями InputBox и InputQuery.

Процедура ShowMessage (const Msg:String) выводит окно сообщения с кнопкой ОК. Заголовок содержит название исполняемого файла приложения, а строка Msg содержит текст сообщения. Например:

ShowMessage('Повторите ввод целого числа');

Функция MessageDlg (const Msg: String; AType: TMsgDlgType; AButtons: TMsgDlgButtons; HelpCtx: Longint):Word отображает окно сообщений и позволяет получить ответ пользователя. Параметр Msg содержит выводимое сообщение. Параметр AType задаёт тип окна (Warning, Error, Information и др.). Параметр AButtons определяет набор кнопок окна (Yes, No, OK, Cancel, Cancel, Help, Abort, Retry, Ignore). Для этого параметра имеются две константы, задающие предопределенные наборы кнопок:

  • mbYesNoCancel = [mbYes, mbNo, mbCancel]
  • mbOKCancel = [mbOK, mbCancel]

Параметр HelpCtx определяет тему справки, появляющейся при нажатии пользователем клавиши F1. Обычно значение этого параметра равно нулю.

Щелчок по любой кнопке, кроме Help, закрывает окно диалога. При этом функция MessageDlg возвращает модальный результат, проанализировав который, можно управлять выполнением приложения.

Функция MessageDlgPos отличается от функции MessageDlg наличием параметров х и y, управляющих положением окна на экране.

Функция

InputBox(const ACaption, APrompt, ADefault: String):String

отображает в центре экрана диалоговое окно, служащее для ввода строки текста. В окне имеется поле ввода, а также кнопки ОК и Cancel. Параметр ACaption задает заголовок окна, параметр APrompt содержит поясняющий текст к полю ввода. Параметр ADefault определяет строку, возвращаемую функцией при отказе пользователя от ввода информации нажатием кнопки Cancel или клавиши Esc. Пример использования функции InputBox:

st:=InputBox('Студент', 'Введите фамилию', 'Неизвестный');

Функция InputQuery(const ACaption, APrompt:String; var Value:String):Boolean отличается от функции InputBox тем, что вместо строки по умолчанию используется параметр Value, который при подтверждении ввода содержит введенную пользователем строку. Например: InputQuery('Студент', 'Введите фамилию', st);

Возвращаемое функцией InputQuery логическое значение позволяет определить, каким образом завершен диалог (ОК соответствует true).