Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
методическое пособие для самостоятельных работ.doc
Скачиваний:
22
Добавлен:
16.11.2019
Размер:
2.89 Mб
Скачать

If OpenDialog1.Execute then

Ffile1:=OpenDialog1.FileName;

end;

Ffile1 – глобальная переменная типа String, объявление которой необходимо записать в раздел переменных модуля, соответствующего главной форме (в нашем случае Okno1).

Для проверки результатов открытия файлов включим в меню Help подпункт Inspeсt Dialog со следующей реализацией:

procedure TForm1.InspectDialog1Click(Sender: TObject);

begin

if length(Ffile1)=0 then ShowMessage('No File')

else ShowMessage(Ffile1);

end;

Окно OpenDialog имеет две кнопки закрытия Открыть (Open) и Отмена (Cancel). Если окно закрыто нажатием кнопки Open, то переменная OpenDialog1.Execute имеет значение True; если нажатием Cancel, то False. В первом случае свойство Filename получит выбранное значение, во втором – сохраняет прежнее (может быть пустое) значение. После выполнения диалога имя открытого файла имеется в переменной OpenDialog1.Filename и может использоваться в программе. В нашем примере имя файла сохранено и в переменной Ffile1.

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

4.2.3. Разработка диалогового окна

В предыдущем параграфе было рассмотрено использование стандартного диалогового окна. В этом пункте рассмотрим создание собственного диалогового окна. Используем там два новых элемента управления: кнопки выбора (CheckBox) и радиокнопки (RadioButton). Оба они предназначены для определения, прежде всего, режимов работы программы. Отличие заключается в следующем. Радиокнопки предназначены для выбора из взаимоисключающих возможностей, для кнопок выбора такого ограничения нет. Другими словами, если имеем n (n>1) кнопок, то в случае радиокнопок должна быть нажата одна и только одна кнопка. В случае кнопок выбора можно выбрать от 0 до n кнопок. Название “радиокнопка”, говорят, связано с тем, что на многих радиоприемниках выбор диапазона волн осуществляется нажатием одной-единственной кнопки. Радиокнопки обычно объединяют в группу (RadioGroup), если таких групп несколько, то из каждой группы выбирают одну кнопку.

Для создания диалогового окна используем стандартное окно из галереи. Вспомним, как мы включили в свое приложение окно About! Поступим точно так же, выберем из меню Delphi последовательно Tools, Repository, Dialogs, Standard Dialog. Имеется два варианта окна Standard Dialog. Они отличаются только расположением кнопок ОК и Cancel (внизу или справа), поэтому можно выбрать любой. Окно Standard Dialog – это класс типа TOKRightDlg. Свойство FormStyle диалогового окна должно иметь значение fsMDIChild, что означает дочернее окно. На диалоговое окно занесем следующие компоненты:

  • две кнопки выбора (CheckBox);

  • группу радиокнопок (RadioGroup);

  • метку (Label);

  • строку редактирования (Edit).

В диалоговом окне уже имеются две кнопки нажатия ОК и Cancel.

Рассмотрим это подробнее. Начнем с кнопок выбора. Дадим им названия (свойство Caption) “Случай 1” и “Случай 2”. Их именами (свойство Name) по умолчанию являются CheckBox1 и 2. Не будем их менять, по этим именам можно ссылаться на них в программах. Обратим внимание на свойство “Checked”: если оно имеет значение True, то эта кнопка считается нажатой при запуске программы. Проверяя в программе значение этого свойства, можно определить, какие кнопки выбраны.

Группе радиокнопок дадим название “Выбор варианта”; именем оставим RadioGroup1. Названия и количество самих радиокнопок определяется свойством Items. Это свойство имеет три точки и для выбора значений откроем диалоговое окно, в котором набираем названия кнопок, каждое в отдельную строку. В нашем случае “Вариант 1” и “Вариант 2” (2 строки). Свойство Columns задает количество столбцов радиокнопок внутри группы, по умолчанию оно имеет значение 1, что нас устраивает. При большом количестве кнопок в группе можно предусмотреть их расположение в нескольких столбцах. Свойство ItemIndex задает номер кнопки, выбранной при запуске программы, нумерация кнопок начинается с нуля. Значение -1 означает, что ни одна кнопка не отмечена. Выберем значение 1, что означает “точку” в нижней кнопке. Проверяя в программе значение этого свойства, можно определить, какая кнопка выбрана.

Метка и строка редактирования ничем не отличаются от рассмотренных в первой главе.

На этом оформление диалогового окна завершено, приступим к реализации работы с ним. Необходимо решить следующие задачи:

  • вызов диалогового окна с установкой начальных значений его компонент (последние могут и не совпадать с установленными в ходе проектирования),

  • работа с диалоговым окном,

  • закрытие диалогового окна и передача значений его компонент в вызывающую программу.

В Delphi все окна могут создаваться

  • автоматически при запуске приложения;

  • по запросу в ходе выполнения приложения.

По умолчанию все окна создаются автоматически. Часто это нецелесообразно, потому что созданные окна, даже если они невидимы, расходуют ресурсы ЭВМ, при сложных окнах они могут быть значительными. Поэтому рекомендуют создать автоматически при запуске программы главное окно.

Для вывода формы из числа автоматически создаваемых войдем в меню Delphi, выберем пункт Project, затем Options и активизируем там окно Forms (обычно оно уже активизировано). Окно Forms показано на рис. 4.3.(а). В левой колонке приведен перечень автоматически создаваемых форм (Auto-create forms). В правой колонке перечень форм, создаваемых в ходе выполнения программы по запросу пользователя (Available forms). Выделяем мышью форму OKRightDlg и нажмем на символ >. В результате эта форма переходит в правую колонку.рис.4.3.(б).

Приступим к программированию создания диалогового окна. Создаем в пункте меню File новый подпункт New Dialog (Как его создать – см. выше!). Его реализация:

procedure TForm1.NewDialog1Click(Sender: TObject);