- Вывод в окно сообщения Delphi
- Процедура ShowMessage Delphi:
- Функция MessageDlg Delphi:
- Функции сообщений в Delphi
- 1. Функция MessageBox (Windows API)
- 2. Функция MessageBoxEx (Windows API)
- 3. Функция MessageBox (класса TApplication, модуля Forms)
- 4. Функция MessageDlg (модуля Dialogs)
- 5. Функция MessageDlgPos (модуля Dialogs)
- 6. Функция MessageDlgPosHelp (модуля Dialogs)
Вывод в окно сообщения Delphi
Как осуществляется вывод в окно сообщения Delphi? Окно сообщений применяется для того, чтобы привлечь внимание пользователей. Используя окно сообщений, программа может оповестить программиста об ошибке первичных данных или сделать запрос о подтверждении выполнения некоторой необратимой операции (удалить файл, очистить содержимое и др.).
В Delphi для вывода на экран окна сообщения зарезервирована процедура ShowMessage (либо выполняющая те же операции функция MessageDlg Delphi). Остановимся подробнее на них.
Процедура ShowMessage Delphi:
Применение процедуры ShowMessage позволяет вывести на экран окно с необходимым текстом и кнопкой подтверждения OK. Процедура ShowMessage Delphi организована следующим образом:
откуда Сообщение представляет собой текст, впоследствии выведенный в диалоговом окне.
Пример 1. Представим иллюстрацию окна сообщения, которое получено вследствие выполнения следующей инструкции:
Заметка. Заголовок окна сообщения, которое выводится при помощи процедуры ShowMessage, содержит название приложения, задающееся на специальной вкладке Application в окне Project Options. В случае, когда названия приложения не указано, заголовок будет включать в себя имя исполняемого файла.
Функция MessageDlg Delphi:
При помощи более универсальной процедуры MessageDlg возможно размещение в окне сообщения одного из стандартных значков, например, «Внимание», а также возможно задание количества и типа командных кнопок и обозначить, какую именно кнопку щелкнул программист. На рисунке ниже представлена иллюстрация окна, выведенного вследствие выполнения следующей инструкции:
В качестве значения функции MessageDlg выступает число, проверка значения которого может показать, какая командная кнопка завершила диалог. Общий вид обращения к данной функции представлен ниже:
- Сообщение представляет собой некоторый текст;
- Тип определяет тип сообщения, которое включает в себя информационное, предупреждающее или сообщение о критической ошибке. Определенному типу ставится в соответствие некоторый значок. Именованная константа задает тип сообщения (табл. ниже).
- Кнопки выступают в качестве списка кнопок, которые отображаются в окне сообщения. В состав данного списка входят именованные константы, разделенные запятыми (табл. ниже), при этом весь список заключен в квадратных скобках. К примеру, для появления в окне сообщения кнопок OK и Cancel необходимо представить список Кнопки как [mbOk,mbCansel]. Помимо указанных в таблиц выше констант возможно применение и таких констант, как mbAbortRetryIgnore, а также mbYesNoCansel и др. Как правило, данные константы чаще используются в комбинациях командных кнопок диалоговых окон.
- КонтекстСправки означает параметр, обозначающий раздел справочной системы, который впоследствии выведется на экран при нажатии пользователем на клавишу F1. В случае отсутствия справочной системы, параметр КонтекстСправки должен быть приравнен нулю.
Значение функции MessageDlg определяет, на какую из командных кнопок щелкнул пользователь при работе с программой (табл. ниже).
Источник
Функции сообщений в Delphi
При разработке программ автоматизированного проектирования в Delphi приходится использовать окна сообщений. В данной статье функции для создания окон сообщений собраны в одном месте, а простые примеры помогут проектировщику выбрать из предложенного списка наиболее эффективную для решения поставленной задачи.
1. Функция MessageBox (Windows API)
Функция – отображает диалоговое окно с сообщением.
Синтаксис функции (Windows API):
function MessageBox (Wnd: HWND; lpText, lpCaption : PChar; uType : Cardinal) : integer;
Функция используется, чтобы отобразить универсальное диалоговое окно сообщений с одной или более кнопками.
Параметр hWnd – маркер (дескриптор) окна владельца, идентифицирует окно владельца окна сообщений. Если этот параметр НУЛЕВОЙ (ПУСТОЙ), окно сообщений не имеет никакого владельца.
Параметр ipText – указатель на строку, содержащую сообщение, с нулевым символом в конце. Текст сообщения может быть длинным, более чем 255 символов в случае необходимости.
Параметр ipCaption — заголовок, который появляется в области заголовка диалогового окна. Заголовки могут быть более длинными, чем 255 символов, из-за чего создается широкое окно сообщений.
Параметр uType определяет набор флажков, которые определяют содержание и поведение диалогового окна. Этот параметр может быть комбинацией флажков из следующих групп флажков.
Группа флажков, определяющая, какие кнопки появятся на окне сообщений
№ п.п. | Значения параметра | Описание |
1 | MB_ABORTRETRYIGNORE | Окно сообщений содержит три кнопки: Abort, Retry, and Ignore. |
2 | MB_OK | Окно сообщений содержит одну кнопку: OK. Это значение по умолчанию. |
3 | MB_OKCANCEL | Окно сообщений содержит две кнопки: OK и Cancel. |
4 | MB_RETRYCANCEL | Окно сообщений содержит две кнопки: Retry and Cancel. |
5 | MB_YESNO | Окно сообщений содержит две кнопки: Yes и No. |
6 | MB_YESNOCANCEL | Окно сообщений содержит три кнопки: Yes, No, и Cancel. |
Функция MessageBox возвращает 0, если нет достаточного количества памяти, чтобы создать окно сообщений. Иначе она возвращает одно из следующих значений:
№ | Возвращаемое значение функции | Возвращаемое числовое значение функции | Описание |
1 | IDOK | 1 | Пользователь выбрал кнопку OK. |
2 | IDCANCEL | 2 | Пользователь выбрал кнопку Cancel. |
3 | IDABORT | 3 | Пользователь выбрал кнопку Abort. |
4 | IDRETRY | 4 | Пользователь выбрал кнопку Retry. |
5 | IDIGNORE | 5 | Пользователь выбрал кнопку Ignore. |
6 | IDYES | 6 | Пользователь выбрал кнопку Yes. |
7 | IDNO | 7 | Пользователь выбрал кнопку No. |
Группа флажков, определяющая, какие иконки отобразятся в окне сообщений
№ п.п. | Значения параметра | Иконка | Описание |
1 | MB_ICONEXCLAMATIONMB_ICONWARNING | В окне сообщений появляется значок восклицательного знака | |
2 | MB_ICONINFORMATIONMB_ICONASTERISK | В окне сообщений появляется значок, состоящий из символа I нижнего регистра в круге. | |
3 | MB_ICONQUESTION | В окне сообщений появляется вопросительный знак в круге. | |
4 | MB_ICONSTOPMB_ICONERRORMB_ICONHAND | В окне сообщений появляется знак Stop |
Группа флажков, указывающая на основную кнопку
№ п.п. | Значения параметра | Описание |
1 | MB_DEFBUTTON1 | Первая кнопка — основная кнопка. |
2 | MB_DEFBUTTON2 | Вторая кнопка — основная кнопка. |
3 | MB_DEFBUTTON3 | Третья кнопка — основная кнопка. |
4 | MB_DEFBUTTON4 | Четвертая кнопка — основная кнопка. |
Группа флажков, указывающая на поведение диалогового окна
№ п.п. | Значения параметра | Описание | |||||||||||||||||||||||||||||||||||
1 | MB_APPLMODAL |
№ п.п. | Значения параметра | Описание | ||||||||||||||||||||||||||||||
1 | MB_DEFAULT_DESKTOP_ONLY |
№ п.п. | Значение | Изображение | Описание | |||||||||||||||||||||||
1 | mtWarning |
Типы кнопок | Возвращаемое значение |
mbOK | mrOK |
mbCancel | mrCancel |
mbYes | mrYes |
mbNo | mrNo |
mbAbort | mrAbort |
mbRetry | mrRetry |
mbIgnore | mrIgnore |
mbAll | mrAll |
mbNoToAll | mrNoToAll |
mbYesToAll | mrYesToAll |
mbClose | mrClose |
Наборы кнопок также определены, как константы:
mbYesNoCancel = [mbYes, mbNo, mbCancel];
mbYesAllNoAllCancel = [mbYes, mbYesToAll, mbNo, mbNoToAll, mbCancel];
mbOKCancel = [mbOK, mbCancel];
mbAbortRetryIgnore = [mbAbort, mbRetry, mbIgnore];
mbAbortIgnore = [mbAbort, mbIgnore];
Примечание: 1. Если указываются кнопки, как элементы множества, то их необходимо писать в квадратных скобках. Например, [mbIgnore].
2. Если указывается набор кнопок, как константа, то писать нужно без скобок. Например, mbYesNoCancel.
Параметр HelpCtx определяет идентификатор для контекстной темы справки, которая должна появиться, когда пользователь нажимает кнопку справки или клавишу F1, в то время как отображено диалоговое окно. Если справка не нужна, то параметр равен нулю.
Фрагмент программы по использованию функции MessageDlg
5. Функция MessageDlgPos (модуля Dialogs)
function MessageDlgPos(const Msg: string; DlgType: TMsgDlgType; Buttons: TMsgDlgButtons; HelpCtx: Longint; X, Y: Integer): Word;
Отображает диалоговое окно сообщения в указанных аппаратных координатах устройства. Другие параметры функции аналогичны параметрам функции MessageDlg.
6. Функция MessageDlgPosHelp (модуля Dialogs)
function MessageDlgPosHelp(const Msg: string; DlgType: TMsgDlgType; Buttons: TMsgDlgButtons; HelpCtx: Longint; X, Y: Integer; const HelpFileName: string): Word;
Отображает диалоговое окно сообщения, справка которого предоставлена в именованном файле справки (HelpFileName) с номером раздела HelpCtx. Выводится на экран с координатами X,Y левого верхнего угла окна относительно левого верхнего угла экрана.
Источник