Программа, которую Вы пишите, должна не просто выполнять определенные функции, заложенные в ней, но и выдавать информации о невозможности выполнении тех или иных задач. Иначе говоря, Ваша программа должна «общаться» со своим пользователем. Для обычного примера откройте любой текстовый редактор на Вашем ПК и напишите что-нибудь, а после попробуйте просто закрыть, не сохраняя. И тут Ваша система выдаст предупреждение. Например, MS Word спросит у Вас: «Сохранить изменения в документе1?» и варианты выбора «Да», «Нет» или «Отмена». И так, подобные диалоговые окна предусмотрены и Borland Delphi. Метод MessageBoxМетод MessageBox позволяет вызывать диалоговое окно с указанным текстом, указанным заголовком и русскими надписями на кнопках (в русифицированных версиях Windows). В общем, это наиболее удачный полностью русифицируемый стандартный диалог. MessageBox(Handle,Текст,Заголовок,Дополнения); Handle – это параметр, указывающий на окно владельца сообщения. Оставив его без изменения, Вы подтверждаете, что владельцем будет являться то окно, изкоторого вызывается это сообщение. Однако, Вы также можете изменить при необходимости. Например, Form1.handle будет объявлять владельцем form1, а Application.handle – владельцем само приложение. Текст – это сам текст сообщения. Т.е. тут Вы пишете любое Ваше обращение к пользователю. Примером этому может являться тот же сообщение диалогового окна MS Word, что приводили вначале («Сохранить изменения в документе1?»). Заголовок – это собственно и есть заголовок Вашего диалогового окна. Тут Вы называете свое окно в зависимости от темы обращения к пользователю. (например: Выход, Сохранение, Предупреждение и т.д.) ВНИМАНИЕ! Тип текстового сообщения и тип заголовка одинаковы и представляют собой тип PChar. Это значит, что перед текстовым сообщением нужно указать: Pchar(‘любой Ваш текст’)
Дополнения – здесь будут указаны остальные параметры Messagebox’а. Это могут быть кнопки, иконки, выбор активной кнопки по умолчанию и т.д. Рассмотрим по-подробнее. Иконки
MB_ICONWARNING
|
|
MB_ICONINFORMATION
MB_ICONASTERISK
|
MB_ICONQUESTION
|
|
Кнопки
0
|
MB_OK
|
Одна
кнопка ОК
|
1
|
MB_OKCANCEL
|
ОК,
Отмена
|
2
|
MB_ABORTRETRYIGNORE
|
Прервать,
Повтор, Пропустить
|
3
|
MB_YESNOCANCEL
|
Да, Нет,
Отмена
|
4
|
MB_YESNO
|
Да, Нет
|
5
|
MB_RETRYCANCEL
|
Повторить,
Отмена
|
Кнопки можно указать как словесным описанием (mb_OkCancel), так и номерными знаками (0, 1, 2 и т.д. в соответствии по первому столбцу таблицы 2). И последний параметр, на который хотелось бы мне обратить Ваше внимание, это выбор активной кнопки по умолчанию – mb_DefButtonX, где Х это номер кнопки слева на право. Т.е. если у нас параметр mb_DefButton2 для кнопок mb_YesNoCancel, то по умолчанию будет выделена кнопка Нет. ВНИМАНИЕ! Если Вы указываете несколько параметров в категории Дополнения, то их следует разделять плюсами: MessageBox(handle, PChar('текст'),PChar('заголовок'), mb_IconStop+mb_YesNoCancel+mb_ DefButton2);
Пример использования MessageBoxСоздайте проект и на событие OnClose формы пропишите следующий код: procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction); var temp:Word; begin temp:=MessageBox(handle, PChar('Вы хотите выйти?'), PChar('Обдумайте прежде!'), MB_YESNO+MB_ICONQUESTION); case temp of idyes:Application.Terminate; end; end; |
Нравится
|