Проект Порталус


 

CompDocs on-line

Инвестиции WebMoney

 
CompDocs
Вебмастеру
Программисту
Пользователю
Геймеру
Мабила
Новости
Отдохни
Беседка
Обои
Анонс
Партнеры
Docs.com.ru

Web-мастеру:

PHP
ASP .NET
Perl
JavaScript
CSS
HTML
Раскрутка
Сервисы

Программисту:

DirectX
OpenGL
Pascal
Алгоритмы

Пользователю:

Windows
Linux
BIOS
Обои

Посетителю:

Форум
Юмор
Рассылки
Объявления
ФизМат
Тесты
Работа


Книги с доставкой

Общие вопросы, справочная литература (97)

Для начинающих (214)

Аппаратное обеспечение: компьютеры, периферия, оргтехника (54)

Базы данных. СУБД (65)

Интернет (85)

Компьютерная безопасность. Хакинг, крэкинг, фрикинг (29)

Компьютерные сети и протоколы (45)

Операционные системы (143)

Программное обеспечение (447)

Языки и среды программирования, технологии и т.п. (323)

Прочие издания (46)


 

Источник: hakep.com

Функции API (часть I): функции вызова диалоговых окон

Скорее всего, большинство из Вас привыкли использовать простейшую функцию ShowMessage для вывода диалоговых окон на экран.
Вид: function ShowMessage(const Msg: String);
 Функция ShowMessage отображает на экране сообщение с кнопкой 'ОК'. Текст сообщения задается параметром Msg. Заголовок окна совпадает с именем выполняемого приложения.
 У этой функции есть масса минусов: нельзя поменять текст заголовка, добавить кнопки, да и в приложении на русском языке окошко с английским текстом в заголовке и на кнопке смотрится некрасиво. Какой можно сделать вывод? Функция несомненно нужная, но ее стоит заменить на функцию MessageBox, которую мы сейчас и рассмотрим.
Вид: function MessageBox(Text, Caption: PChar; Flags: LongInt): Integer
 Эта функция отображает диалоговое окно с заданными кнопками, сообщением и заголовком и позволяет проанализировать ответ пользователя. Один из плюсов этой функции - это то, что Вы можете создать заголовок и кнопки с русским текстом. Правда, надписи на кнопках будут русскими только в русифицированных версиях Windows. А теперь давайте рассмотрим параметры этой функции. Параметр Text представляет собой текст сообщения. Для длинных сообщений осуществляется автоматический перенос текста. Параметр Caption представляет собой текст заголовка окна. Параметр Flags представляет собой множество флагов, определяющих вид и поведение диалогового окна. Этот параметр может комбинироваться операцией сложения по одному из следующих групп.

Флаги кнопок, отображаемых в диалоговом окне
Флаг Значение (в скобках даны надписи в русифицированных версиях Windows)
MB_ABORTRETRYIGNORE Кнопки Abort (Стоп), Retry (Повтор) и Ignore (Пропустить).
MB_OK Кнопка OK. Этот флаг принят по умолчанию.
MB_OKCANCEL Кнопки OK и Cancel (Отмена).
MB_RETRYCANCEL Кнопки Retry (Повтор) и Cancel (Отмена).
MB_YESNO Кнопки Yes (Да) и No (Нет).
MB_YESNOCANCEL Кнопки Yes (Да), No (Нет) и Cancel (Отмена).

Флаги пиктограмм в диалоговом окне
Флаг Пиктограмма
MB_ICONEXCLAMATION,
MD_ICONWARNING
Восклицательный знак (замечание, предупреждение).
MB_ICONINFORMATION,
MB_ICONNASTERISK
Буква "I" в круге (подтверждение).
MB_ICONQUESTION Знак вопроса (ожидание ответа).
MB_ICONSTOP,
MB_ICONNERROR,
MB_ICONHAND
Знак креста на красном круге (запрет, ошибка).

Флаги, указывающие кнопку по умолчанию (которая при появлении окна находится в фокусе)
Флаг Кнопка
MB_DEFBUTTON1 Первая кнопка. Это значение принято по умолчанию.
MB_DEFBUTTON2 Вторая кнопка.
MB_DEFBUTTON3 Третья кнопка.
MB_DEFBUTTON4 Четвертая кнопка.

Флаги модальности
Флаг Пояснение
MB_APPLMODAL Пользователь должен ответить на запрос, прежде чем сможет продолжить работу с приложением. Но он может перейти в окна другого приложения. Он может также работать со всплывающими окнами данного приложения. Этот флаг принят по умолчанию.
MB_SYSTEMMODAL То же самое, что MB_APPLMODAL, но окно диалога отображается в стиле WS_EX_TOPMOST, то есть всегда остается поверх других окон, даже если пользователь перешел к другим приложениям. Используется для предупреждения о серьезных ошибках, требующих немедленного вмешательства.

Некоторые дополнительные флаги (могут задаваться оба флага)
Флаг Пояснение
MB_HELP Добавляет в окно кнопку Help (Справка), щелчок на которой или нажатие клавииши F1 генерирует событие Help.
MB_TOPMOST Помещает окно всегда сверху (в стиле WS_EX_TOPMOST).

 Есть еще некоторые флаги, которые, к примеру, могут отображать текст справа налево, но они нам не нужны. Мы лмшь рассмотрели основные флаги.
 Что возвращает функция? Нуль, если не хватает памяти для создания диалогового окна. Если же функция выполнена успешно, то возвращаемая величина свидетельствует о следующем:
Значение Численное значение Пояснение
IDABORT 3 Выбрана кнопка Abort (Стоп).
IDCANCEL 2 Выбрана кнопка Cancel (Отмена) или нажата клавиша Esc.
IDIGNORE 5 Выбрана кнопка Ignore (Пропустить).
IDNO 7 Выбрана кнопка No (Нет).
IDOK 1 Выбрана кнопка ОК.
IDRETRY 4 Выбрана кнопка Retry (Повтор).
IDYES 6 Выбрана кнопка Yes (Да).

 Пример вызова: MessageBox('Вот наше окошко', 'Окно', MB_YESNOCANCEL + MB_ICONQUESTION);
Пояснение: Это выведет окно с заголовком "Окно", текстом - "Вот наше окошко", тремя кнопками - Yes, No, Cancel и пиктограммой знака вопроса.
 Конечно же, помимо функции MessageBox существуют и другие функции: ShowMessage, ShowMessageFmt, MessageDlg, MessageDlgPos (подобна функции MessageDlg, но позволяет отображать диалоговое окно в заданном месте экрана), CreateMessageDialog (позволяет создавать диалоговоеокно окно сообщения в виде объекта формы; функция только создает окно, отображение осуществляется методом Show или ShowMessage). К сожалению, мы эти функции не сможем рассмотреть подробно, иначе рассылка стала бы похожа на небольшую книгу! Тем не менее, стоит сказать пару слов о них.
 Чтобы "добить" эту тему, давайте разберем еще кое что. Функции, описанные выше, давали пользователю только возможность нажать в диалоге ту или иную кнопку. Но имеются функции, предлагающие пользователю диалоговое окно, в котором он должен ввести в окошко редактирования некоторый текст. Давайте рассмотрим две функции. Первая функция имеет вид:
function InputBox(const ACaption, APrompt, ADefault: String): String;
 Параметр ACaption - заголовок окна, APrompt - текст сообщения, ADefault - значение по умолчанию. Если пользователь нажмет кнопку ОК, то функция вернет введенное пользователем значение, во всех других случаях будет возвращено значение ADefault. Вторая функция имеет вид:
function InputQuery(const ACaption, APrompt: String; var Value: String): Boolean;
 Смысл параметров ACaption и APrompt тот же, что в функции InputBox. Параметр Value - это строка текста в окошке редактирования. Функция возвращает True только в том случае, если пользователь вышел из диалога, нажав ОК. В остальных случаях функция вернет False.

Ссылки по теме:

  • Алгоритмы сортировки 1
  • Алгоритмы сортировки 2
  • Алгоритмы поиска данных
  • Комментарии к статье
    Ваше имя:

    Ваш e-mail:
      извещать о новых отзывах в теме
    публиковать мой e-mail
    Комментарий:

    Copyright © 2003-2004 Путяк Владислав.
    Использование материалов журнала разрешается только с указанием ссылки на первоисточники и сайт журнала - http://docs.com.ru



    @ portalus.ru