Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
informatika-otvety.doc
Скачиваний:
3
Добавлен:
01.03.2025
Размер:
1.46 Mб
Скачать

Модальные формы

Помимо главной формы любое приложение Windows может содержать и другие формы, одной из которых является модальная форма. Открытие форм как модальных используется в большинстве диалоговых окон. Модальная форма приостанавливает выполнение вызвавшей ее процедуры до тех пор, пока пользователь не закроет эту форму. Модальная форма не позволяет также пользователю переключить фокус курсором мыши на другие формы данного приложения, пока форма не будет закрыта. Пользователь должен выполнить предложенные ему действия прежде, чем продолжить работу. Модальной может быть сделана любая форма, если она делается видимой методом ShowModal. Если та же самая форма делается видимой методом Show, то она не будет модальной. Методы Show и ShowModal можно применять только к невидимой в данный момент форме. Если нет уверенности, что форма в данный момент видима, то прежде чем применять эти методы, следует проверить свойство Visible формы. Например:

if (not Form2.Visible) then Form2.ShowModal;

При выполнении методов Show или ShowModal возникает событие формы onShow. Это событие возникает до того момента, как форма действительно станет видимой. Поэтому обработку события onShow можно использовать для настройки каких-либо компонентов открываемой формы. При этом в настройке можно использовать какую-то оперативную информацию, возникающую в процессе выполнения приложения. Методом Hide форму в любой момент можно сделать невидимой. В этот момент в ней возникает событие onHide. Необходимо помнить, что для выполнения методов CreateForm, Show, ShowModal, Hide и вообще для обмена любой информацией между формами модули соответствующих форм должны использовать друг друга. Например, если форма в модуле Unit1 должна управлять формой в модуле Unit2, то в оператор uses модуля Unit1 должно быть включено имя второго модуля Unit2. А если к тому же форма в модуле Unit2 должна пользова¬ться какой-то информацией, содержащейся в модуле Unit1, то в оператор uses модуля Unit2 должно быть включено имя первого модуля Unit1. В этом случае, если операторы uses в обоих модулях расположены в разделах interface, возникнут проблемы с недопустимыми круговыми ссылками и компилятор выдаст соответствующую ошибку. От недопустимых круговых ссылок можно избавиться, если разомкнуть их, поместив один или оба оператора uses в раздел implementation. Можно также не включать имена модулей приложения в операторы uses вручную, а использовать команду File | Use Unit, которая автоматизирует этот процесс и гарантирует отсутствие круговых ссылок. Закрыть форму можно методом Close. При этом в закрывающейся форме возникает последовательность событий, которые можно обрабатывать. Их назначение — проверить возможность закрытия формы и указать, что именно подразумевается под закрытием формы. Проверка возможности закрытия формы необходима, например, для того, чтобы проанализировать, сохранил ли пользователь документ, с которым он работал в данной форме и который изменял. Если не сохранил, приложение должно спросить его о необходимости сохранения и, в зависимости от ответа пользователя, сохранить документ, закрыть приложение без сохранения или вообще отменить закрытие. Поведение модальной формы определяется ее основным свойством ModalResult. Это свойство доступно только во время выполнения приложения. При открытии формы методом ShowModal сначала значение свойства ModalResult равно нулю. Как только при обработке каких-то событий на форме свойству ModalResult будет присвоено положительное значение от 1 до 8, модальная форма закроется. При этом значение ее свойства ModalResult можно будет прочитать как результат, возвращаемый методом ShowModal. Таким образом, программа, вызвавшая модальную форму, может узнать, что сделал пользователь, работая с этой формой, например, по какой кнопке он щелкнул. Требуемые значения ModalResult можно задавать в обработчиках соответствующих событий в компонентах модальной формы. Во многих больших приложениях Windows при их запуске сначала на экране появляется форма-заставка, содержащая логотип приложения и сведения о программе и ее разработчиках. Назначение этой формы чаще всего заключается в том, чтобы обеспечить начальную загрузку и настройку программы. Тогда эта форма должна закрываться не раньше, чем закончатся эти операции. Но иногда эта форма носит чисто информационный характер. В этих случаях желательно, чтобы она немедленно закрывалась при любых действиях пользователя и даже закрывалась через какое-то время без каких-либо действий со стороны пользователя. Помимо формы-заставки нередко в приложениях, особенно в тех, которые работают с базами данных, в начале работы приложения появляется форма с запросом пароля. При неверном пароле приложение закрывается, не позволяя пользователю работать с ним. Формы-заставки и формы запроса пароля могут быть реализованы множеством различных способов. Один из них состоит в использовании модальных форм. Рассмотрим последовательность действий при создании модальной формы-заставки. 1. Откройте в Delphi новое приложение (File | New Application). Пусть открывшаяся форма будет главной в приложении (вместо такой пустой формы можно взять любое разработанное ранее приложение и добавлять форму-заставку и форму запроса пароля в него). Назовите для определенности главную форму приложения FMain. 2. Добавьте в приложение новую форму (File | New Form). Пусть это будет форма-заставка с именем FL. Ее свойство BorderStyle надо сделать равным bsNone, чтобы в окне этой формы отсутствовала полоса заголовка. Можно поместить на форме какой-то рисунок (разместить компонент Image и вставить в его свойстве Picture желаемое изображение), различные надписи и т.п. В простейшем случае можно поместить в центре формы метку Label и сопроводить ее каким-либо текстом. Размер формы-заставки целесообразно задать небольшим, меньшим, чем обычные окна приложения. Свойство Position следует сделать равным poScreenCenter, чтобы форма появлялась в центре экрана. 3. Напишите обработчики событий, которые при любом действии пользователя закрывали бы форму FL. Щелкните на форме, чтобы в Инспекторе Объектов открылись относящиеся к ней страницы (если форма накрыта панелями или рисунками, то, щелкнув на них, нажимайте клавишу Esc до тех пор, пока в Инспекторе Объектов не откроются страницы, относящиеся к форме). Перейдите в Инспекторе Объектов на страницы событий, выберите событие onKeyDown и напишите для него обработчик, состоящий из одного оператора — Close. Аналогичный обработчик напишите для события onMouseDown. Если на форме имеются метки, компоненты Image и др., то выделите их все, задайте в событии onMouseDown ссылку на тот же обработчик, что и для формы, а в форме поставьте свойство KeyPreview в true, чтобы форма перехватывала все связанные с нажатием клавиш события компонентов. Теперь форма будет закрываться при нажатии пользователем любой клавиши или кнопки мыши. 4. Можно сделать так, чтобы и при отсутствии каких-то действий со стороны пользователя форма закрывалась сама, через заданный интервал времени, например 5 секунд. С этой целью добавьте на форму компонент Timer со страницы System. Это невизуальный компонент, который может отсчитывать интервалы времени. Интервал задается в свойстве компонента Interval в миллисекундах. Задайте его равным 5000. Единственное событие таймера — OnTimer, наступающее по истечении заданного интервала времени. Напишите в обработчике этого события все тот же единственный оператор Close. Теперь при любом действии и даже бездействии пользователя форма-заставка будет закрываться. По умолчанию это означает сделать ее невидимой. Однако форма-заставка не нужна после того, как она будет предъявлена пользователю в начальный момент выполнения приложения. Хранить все время в памяти эту уже ненужную форму не имеет смысла. Поэтому в форме надо предусмотреть, чтобы закрытие формы означало бы ее удаление из памяти и одновременное освобождение памяти. Для этого в событие формы-заставки OnClose вставьте оператор. Этот оператор приводит к уничтожению объекта формы и освобождению занимаемой формой памяти. 5. Проверьте, имеет ли ее свойство Visible значение false. Это важно, поскольку только невидимую форму можно открыть методом ShowModal. В главной форме свойство Visible тоже должно иметь значение false. Сохраните проект, дав файлу модуля главной формы имя Umain, а файлу модуля формы-заставки имя FLog. 6. Чтобы сослаться в модуле Umain на модуль Flog, добавьте в оператор uses модуля Umain имя модуля FLog, или напишите оператор uses FLog в разделе implementation модуля Umain, или сделайте то же самое путем, выполнения команды File | Use Unit. 7. Напишите в модуле Umain обработчик события формы OnShow, состоящий из одного оператора. Событие OnShow наступает до того, как форма действительно станет видимой. Поэтому во время обработки этого события главная форма приложения еще не видна. Оператор открывает форму FL как модальную, передает ей управление, и дальнейшее выполнение программы в модуле Umain останавливается до тех пор, пока модальная форма не будет закрыта. После закрытия модальной формы выполнение программы продолжится и главная форма станет видимой. 8. Сохраните проект, запустите приложение и проверьте его работу. Рассмотрим процедуру разработки формы запроса пароля. Реальная форма такого типа должна предлагать пользователю ввести свое имя и пароль, сравнивать введенные значения с образцами, хранящимися где-то в системе, при неправильном пароле давать возможность пользователю поправиться. Если пользователь так и не может ввести правильный пароль, форма должна закрыть приложение, не допустив к нему пользователя. При правильном пароле после закрытия формы запроса должна открыться главная форма приложения. Рассмотрим простой случай использования пароля, который непосредственно указывается в соответствующем операторе программы. При этом возможность исправления введенного пароля пользователю предоставляться не будет. 9. Добавьте к приложению новую форму. Назовите ее FPSW и сохраните ее модуль в файле с именем UPSW. Уменьшите размер формы до разумных пределов, поскольку она будет содержать всего одно окно редактирования. Установите свойство формы BorderStyle равным bsDialog, свойство Position - равным poScreenCenter. В свойстве Caption напишите «Введите пароль и нажмите Enter». Эта надпись будет служить приглашением пользователю. 10. Поместите в центре формы окно редактирования Edit, в котором пользователь будет вводить пароль. Очистите его свойство Text. Этот оператор выполняет следующее. Прежде всего, он анализирует нажатую клавишу. Если нажата клавиша Enter, то введенный текст сличается с паролем. В данном случае для упрощения непосредственно указан правильный пароль — символы 'аа'. Если введен правильный пароль, то свойству ModalResult присваивается некоторое условное число — 6 (можно было бы выбрать и любое другое допустимое число, кроме 0 и 2). Если пароль неправильный, то выполняется метод Close. В обоих случаях форма закрывается, так как задание отличного от нуля положительного значения ModalResult равносильно закрытию формы. Но при правильном пароле значение ModalResult будет равно 6, а при неправильном — 2. Это значение получается при выполнении метода Close или если пользователь нажмет кнопку системного меню в полосе заголовка окна. 11. Модуль главной формы Umain нужно дополнить операторами, показывающими пользователю форму пароля и анализирующими ответ ползователя. Для этого в модуле Umain в оператор uses нужно добавить ссылку на модуль UPSW, а в обработчике события OnShow после ранее введенного оператора FL.ShowModal добавить оператор. Этот оператор анализирует значение свойства ModalResult формы запроса пароля. Значение этого свойства возвращает функция FPSW.ShowModal. Если результат не равен 6, то был введен неправильный пароль. Тогда главная форма, а с ней вместе и приложение закрываются методом Close. При правильном пароле можно продолжать работу приложения. Оператор ShowMessage введен для того, чтобы показать, как можно использовать свойство другой формы — в данном случае текст, введенный пользователем в качестве пароля. В реальном приложении по этому паролю можно было бы определить уровень доступа пользователя к конфиденциальной информации. Затем следует уничтожение формы запроса пароля методом Free. Это необходимо сделать, чтобы освободить память. Сама по себе эта форма в момент ее закрытия не уничтожается, поскольку по умолчанию закрыть форму — значит сделать ее невидимой. Уничтожать форму до этого момента было нельзя, так как при этом уничтожилась бы содержащаяся в ней информация — введенный пароль. Описанный выше способ управления формой запроса пароля не является единственным. Он просто призван был показать, как можно обрабатывать величину ModalResult, возвращаемую методом ShowModal.

  1. Стандартные визуальные компоненты. Общие свойства.

  1. Aign- тип выравнивания текущего компонента на дочернем компоненте

OlTop- растягивается по ширине к верхней границе

olBottom-…… к нижней границе

olLeft

olRight

olClient- полностью по всему пространству родителя

  1. Color

  2. Cursor

  3. Visible- видимость компонента

  4. Enabled- доступность к компоненту

  5. Font

  6. Left, Top

Width, Height

  1. Hint-подсказка(комментарий к кнопке)

ShowHint-булевский тип, но не отображается

ParentFont (ParentColor)-булевский тип , наследование шрифта и цвета дочернего

  1. Компонент TMainMenu.

Рассмотрим способы создания и организации меню. В меню пользователь

выбирает не данные, а возможные действия. Таким образом, меню это специ-

альный механизм, позволяющий пользователю внутри вашего приложения вы-

брать какие-то действия, например, открыть файл, сохранить файл, установить

какие-то параметры и т.д.

Для создания главного меню используется компонент TMainMenu (вклад-

ка Standard). Компонент не визуальный. Пункты меню содержатся в свойст-

ве Items. Чтобы начать формирование пунктов меню достаточно дважды

щелкнуть по компоненту на форме или нажать на кнопку с многоточием в

свойстве Items компонента в инспекторе объектов. В инспекторе объектов в свойство Caption введите имя пункта меню.

Чтобы создать следующий пункт меню или подменю, установите курсор на текущий элемент меню и нажмите на правую клавишу мыши. Выберите

нужное действие, например, для создания подменю нажмите "Создать подме-

ню". стандартных шаблона для меню "Файл", "Правка" и

"Справка".

При создании меню имеется возможность вставки рядом с текстом пункта

меню пиктограммы. Для этого поместите на форму компонент

TImageList, заполните его соответствующими рисунками. Затем в

TMainMenu в свойстве Images укажите имя TImageList в программе. А

при создании подпункта меню в свойстве ImageIndex укажите индекс соот-

ветствующего изображения.

Также вы можете добавить горячие клавиши для данного пункта меню.

Для этого служит свойство Shortcut. Вы можете прямо ввести нужное соче-

тание клавиш в поле ввода этого свойства или нажав на кнопку с многоточием,

выбрать нужное сочетание из появившегося редактора выбора сочетаний кла-

виш. Для создания разделительной линии между пунктами меню достаточно

создать новый элемент и в свойство Caption ввести знак "-". Попробуйте реализовать пункт меню "Файл" Lazarus. Рисунки вы можете найти в папке установки Lazarus (подпапка Images)

При этом вместо безликих имен пунктов меню (в программе) типа MenuItem1, MenuItem2 и т.д. желательно присваивать им осмысленные имена, на-

пример MCreateModule, MCreateForm.

Для того чтобы реализовать действие пункта меню необходимо написать

соответствующий обработчик события OnClick. Находясь в редакторе меню,

достаточно просто дважды щелкнуть по этому пункту.

Еще с первой главы за мной тянется один должок. В 1.3.3. мы с вами рас-

сматривали метод наименьших квадратов, а программу мы так и не написали.

Но, как говорится, всему свое время. И вот это время наступило. Приступим к

реализации этого метода. Но сначала вкратце рассмотрим компонент TChart, который мы будем использовать в программе для вывода графиков. Основным свойством компонента является Series – наборы данных (серии), на основе которых и строятся

графики или диаграммы. Если дважды щелкнуть по компоненту, размещенному

на форме, то мы попадем в редактор серий.

Существуют разные типы Series для построения разных типов графиков

или диаграмм, например Line series – для построения линий (графиков),

Pie series – для построения круговых диаграмм и т.д. Выберите тип серии

Line series. В инспекторе объектов появится объект ChartLineSeries1

типа TLineSeries.

Создать программно объект типа TLineSeries можно оператором

Chart1LineSeries1:= TLineSeries.Create(Chart1);

Для добавления серии в TChart существует метод procedure AddSeries(ASeries: TBasicChartSeries);

Добавление точек в объект типа TLineSeries производится с помощью

функции

function AddXY(X, Y: Double): Integer;

Свойство ShowPoints: boolean позволяет показывать или не показы-

вать точки на графике.

Свойство SeriesColor: TColor позволяет указать цвет линии.

Итак, давайте начнем реализацию метода наименьших квадратов. Создайте

новый проект, поместите на форму компоненты TMainMenu, TOpenDialog и

TChart, как показано на рис. 6.90. Меню программы должно состоять из сле-

дующих пунктов:

Файл

Определение коэффициентов полинома

Графики

В свою очередь, меню "Файл" должен состоять из подпунктов "Открыть" и

"Выход". Меню "Определение коэффициентов полинома" должна содержать

пункт "Вычислить". И меню "Графики" должен содержать пункты "График

экспериментальных точек" и "Подобранная кривая", рис.6.91.

Присвойте имена меню в программе как показано на рис. 6.92.

Вставим в пункты меню рядом с их текстами пиктограммы. Для этого по-

местите на форму компонент TImageList и заполните его подходящими

значками. В свойстве Images MainMenu1 укажите имя TImageList. Затем

для каждого пункта меню укажите соответствующие индексы в свойствах

ImageIndex.

Для того чтобы понять программу вспомните реализацию метода Гаусса

решения системы линейных алгебраических уравнений, причем в варианте с

применением динамических массивов. В той программе матрицу коэффициен-

тов системы мы сначала преобразовывали в одномерный динамический массив,

поскольку передавать в качестве формального параметра в функцию или про-

цедуру можно только одномерный динамический массив.

Поэтому в программе метода наименьших квадратов в процедуре

MCalculateClick формируется одномерный динамический массив vector,

который на самом деле является матрицей коэффициентов системы. Его мы и

передаем (вместе с вектором свободных членов) в процедуру Gauss.

Файл имеет следующую структуру. Первая строка содержит количество

точек. Вторая строка содержит значения Zi

, третья строка содержит значения Pi.

Обратите внимание, что до загрузки файла с экспериментальными данны-

ми пункты меню "Вычислить", "График экспериментальных точек" и

"Подобранная кривая" необходимо сделать недоступными. После загрузки файла, пункт меню "Вычислить" надо сделать доступным, а пункты "График

экспериментальных точек" и "Подобранная кривая" по-прежнему недоступны-

ми. Только после того, как будут выполнены необходимые вычисления, пункты

"График экспериментальных точек" и "Подобранная кривая" становятся дос-

тупными.

  1. Компоненты кнопок.

  1. TButton- позволяет выполнить какие-либо действия при нажатии кнопки во время выполнения программы.

-Caption-подпись

-OnClick- главное событие

  1. TBitBtn- можно размещать картинку черезGliph:

-TBotMaр- 4 состояния

-Kind: bkOk

bkYes

bkNo

  1. TCheekBox-кнопка с независимой фиксацией

-Cheked-отметка

-Caption-название

  1. TRadioButtton- позволяет выбрать только одну опцию из нескольких

  2. TRadioGroup-группа кнопок

-Colimns-колонка

-ItemIndex-номер нажатой кнопки

-Items-строковый массив в кот хранится текст у кнопки

  1. Компоненты ввода и вывода текста.

В библиотеке визуальных компонентов Delphi существует множество компонентов, позволяющих отображать, вводить и редактировать текстовую информацию. В таблице 3.1 приведен их перечень для Delphi с краткими характеристиками и указанием основных параметров, содержащих отображаемый или вводимый текст. В этой таблице не указаны аналогичные элементы отображения и редактирования текстов, содержащихся в базах данных, так как их рассмотрение выходит за рамки данной книги. Таблица 3.1. Компоненты ввода и отображения текстовой информации

Пикто- грамма

Компонент

Страница

Описание

Label (метка)

Standard

Отображение текста, который не изменяется пользователем. Никакого оформления текста не предусмотрено, кроме цвета метки и текста. Основное свойство — Caption.

StaticText (метка с бордюром)

Additional

Подобен компоненту Label, но обеспечивает возможность задания стиля бордюра. Основное свойство — Caption.

Panel (панель)

Standard

Компонент является контейнером для группирования органов управления, но может использоваться и для отображения текста с возможностями объемного оформления. Основное свойство — Caption.

Edit (окно редактирования)

Standard

Отображение, ввод и редактирование однострочных текстов. Имеется возможность оформления объемного бордюра. Основное свойство — Text.

MaskEdit (окно маскированного редактирования)

Additional

Используется для форматирования данных или для ввода символов в соответствии с шаблоном. Основные свойства — Text иEditText.

Memo (многострочное окно редактирования)

Standard

Отображение, ввод и редактирование многострочных текстов. Имеется возможность оформления объемного бордюра. Основное свойство — Lines.

RichEdit (многострочное окно редактирования в формате RTF)

Win32

Компонент представляет собой окно редактирования в стиле Windows 95 в обогащенном формате RTF, позволяющее производить выбор атрибутов шрифта, поиск текста и многое другое. Основное свойство — Lines.

ListBox (окно списка)

Standard

Отображение стандартного окна списка Windows, позволяющего пользователю выбирать из него пункты. Основное свойство —Items.

CheckListBox (список с индикаторами)

Additional

Компонент является комбинацией свойств списка ListBox и индикаторов CheckBox в одном компоненте.

ComboBox (редактируемый список)

Standard

Объединяет функции ListBox и Edit. Пользователь может либо ввести текст, либо выбрать его из списка. Основное свойство —Items.

StringGrid (таблица строк)

Additional

Отображение текстовой информации в таблице из строк и столбцов с возможностью перемещаться по строкам и столбцам и осуществлять выбор. Основное свойство — Cells.

Ввод данных

Программа может получить исходные данные из окна ввода, поля ввода диалогового окна или из файла.

Ввод из окна ввода

Ввод данных из окна ввода осуществляется вызовом функции InputBox, воз­вращаемым значением которой является строка, введенная пользователем. В общем виде инструкция для ввода данных с использованием функции InputBox выглядит так:

Переменная := InputBox(Заголовок, Подсказка, Значение);

где

Переменная — имя переменной строкового типа, значение которой должно быть получено из окна ввода;

Заголовок — текст заголовка окна ввода;

Подсказка — текст поясняющего сообщения;

Значение — текст, находящийся в поле ввода в момент появления окна ввода на экране.

Например, в программе пересчета веса из фунтов в килограммы инструкция ввода количества фунтов может выглядеть так:

s:=InputBox('Фунты-килограммы','Введите вес в фунтах','');

Выполняется эта инструкция следующим образом:

1. На экран монитора выводится окно ввода.

2. В поле ввода вводится (набирается на клавиатуре) число.

3. Затем необходимо нажать одну из командных кнопок окна ввода:

• Щелчок на кнопке ОК присваивает переменной s значение, соответ­ствующее введенной строке

• Щелчок на кнопке Cancel присваивает переменной s предопределен­ное значение, указанное при вызове функции inputBox в качестве ее аргумента (в данном примере переменной s будет присвоено '', т. е. пустая строка)

Следует еще раз обратить внимание на то, что значение функции InputBox строкового (string) типа. Поэтому, если программе надо получить значение числового типа, то введенная строка (изображение числа) должна быть пре­образована в число при помощи соответствующей функции преобразования.

s:=InputBox('Фунты-килограммы','Введите вес в фунтах','');

funt:=StrToFloat(s);

Ввод из поля диалогового окна

Ввод данных из поля ввода диалогового окна осуществляется обращением к свойству Text этого поля. Если Edit1 — имя поля, предназначенного для ввода коэффициента при второй степени неизвестного, тогда инструкция ввода значения коэффици­ента, для представления которого в программе используется переменная а типа real, будет иметь вид:

a:=StrToFloat(Edit1.Text);

В приведенной инструкции параметр Text — это имя внутренней перемен­ной (свойства) поля ввода, которая содержит текст, находящийся в поле.

Вывод данных

Программа может вывести результат в окно сообщения, в поле вывода диа­логового окна, в файл или на принтер.

Вывод в окно сообщения

Вывод в окно сообщения осуществляется вызовом процедуры ShowMessage или функции MessageDlg.

Процедура ShowMessage выводит на экран простое диалоговое окно с текстом и одной командной кнопкой ОК. В общем виде инструкция вызова процедуры ShowMessage выглядит так:

ShowMessage(Сообщение);

где Сообщение — выражение строкового типа. Заголовок окна сообщения, выводимого про­цедурой ShowMessage, совпадает с именем исполняемого файла приложения.

Функция MessageDlg более гибкая. Она позволяет снабдить сообщение од­ним из стандартных значков Windows, например, значком "Внимание", а также задать количество и тип командных кнопок. Пример выполнения инструкции:

r:=MessageDlg('Дискриминант меньше нуля'+#13+'Уравнение не имеет действительных корней.', mtInformation, [nabOK], 0);

Функция MessageDlg возвращает результат — число, проверив значение ко­торого можно определить, выбором какой командной кнопки был завершен диалог.

В общем виде обращение к функции MessageDlg выглядит так:

Выбор:= MessageDlg(Сообщение,Тип,Кнопки,КонтекстСправки)

где

Сообщение — это текст выводимого сообщения;

Тип— это тип сообщения. Сообщение может быть информационным, пре­дупреждающим или сообщающим об ошибке. Каждому типу сообщения со­ответствует определенный значок. Задается тип сообщения именованной константой. В таблице приведены именованные константы, определяющие тип сообще­ния, выводимого функцией MessageDlg.

Именованные константы, определяющие тип сообщения

Константа Тип сообщения

mtWarning Внимание

MtError Ошибка

Mtlnformation Информация

MtConfirmation Запрос подтверждения

MtCustom Обычное сообщение

Кнопки — список, определяющий число и вид кнопок, отображаемых в окне сообщения. Список может состоять из нескольких разделенных запятыми именованных констант. Весь список заключается в квадратные скобки. Константы и соответствующий им текст на кнопках приведены в таблице:

Список именованных констант

Константа Текст на кнопке

mbУes Yes

mbNo No

mbOK OK

mbCancel Cancel

mbHelp Help

mbAbort Abort

mbRetry Retry

mbIgnore Ignore

mbAll All

Например, для того чтобы в окне сообщения появились кнопки ОК и Cancel, список кнопки должен состоять из следующих двух констант:

[mbOK, mbCancel ]

Кроме констант, приведенных в таблице, можно использовать константы:

mbOkCancel, mbYesNoCancel и mbAbortRetryIgnore. Эти константы определяют наиболее часто используемые в диалоговых окнах комбинации командных кнопок.

Контекст Справки— параметр, определяющий номер экрана справочной сис­темы, который появляется при нажатии клавиши <F1> в тот момент, когда окно сообщения находится на экране. Если использование справочной сис­темы не предусмотрено, то при вызове функции MessageDlg в качестве пара­метра контекстСправки должен быть указан ноль.

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

Именованные константы, идентифицирующие нажатую кнопку

Константа Диалог завершен нажатием кнопки

mrAbort Abort

mrYes Yes

mrOk Ok

mrRetry Retry

mrNo No

mrCancel Cancel

mrIgnore Ignore

mrAll Аll

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]