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);
- Методическое пособие для самостоятельных работ «Основы интегрированной среды программирования delphi6»
- 6.100301 "Судовождение",
- 6.100302 "Эксплуатация судовых энергетических установок"
- 6.092201 "Электрические системы и комплексы транспортных средств",
- Введение
- Глава 1. Интегрированная среда Delphi. Принципы работы
- 1.1. Интегрированная среда Delphi
- 1.2. Принципы визуального программирования
- Val(Edit1.Text,k1,sign);
- Val(Edit2.Text,k2,sign);
- Val(MaskEdit1.Text,r1,sig);
- Val(МaskEdit2.Text,r2,sig);
- 1.3. Событийно-управляемые программы
- 1.4. Составление программ обработки массивов
- I :integer;
- I, j :integer;
- 1.5. Вывод на печать
- Глава 2. Общие свойства компонентов
- 2.1. Иерархия компонентов
- 2.2. Имена и собственники компонентов
- 2.3. Родительские и дочерние компоненты
- 2.4. Положение, размеры и оформление компонентов
- 2.5.Указатели мыши
- 2.3. Окно редактора с готовым изображением указателя
- 2.6. Реакция на события от мыши и клавиатуры
- 2.6.1. События от мыши
- 2.6.2. События от клавиатуры
- 2.6.3. Клавиатура в ms-dos и Windows
- 2.6.4. Фокус ввода
- 2.7. Механизм действий Action
- 2.8. Иинтерфейс Drag&Drop
- 2.9. Иинтерфейс Drag&Dock
- 2.10. Поддержка справочной службы
- 2.11. Поддержка Сом
- 2.12. Свойства разного назначения
- Глава 3. Использование компонентов общего назначения
- 3.1. Компоненты страницы Standard
- 3.1.1. TFrame - рама и шаблоны компонентов
- 6) Окно регистрации рамы в палитре компонентов
- 3.1.2. Создание шаблонов без рам
- 3.1.3. TMainMenu - главное меню формы (программы)
- 3.1.4. TPopupMenu - вспомогательное (локальное) меню
- 3.1.5. TLabel - метка для отображения текста
- 3.1.6. TEdit - ввод и отображение строки
- 3.1.7. TMemo - ввод и отображение текста
- 3.1.8. TButton - кнопка
- 3.1.9. TCheckBox - независимый переключатель
- 3.11. Компонент tCheckBox - независимый переключатель
- 3.1.10. TRadioButton - зависимые переключатели
- 3.1.11. TListBox - список выбора
- 3.1.12. TComboBox – комбинированный или раскрывающийся список выбора
- 3.1.13. TScrollBar - управление значением величины
- 3.1.14. TGroupBox - панель группирования
- 3.1.15. TRadioGroup - группа зависимых переключателей
- 3.1.16. TPanel - панель
- 3.1.17. TActionList - механизм действий
- 3.2. Компоненты страницы Аdditional
- 3.2.1. TBitBtn - кнопка с изображением
- 3.2.2. TSpeedButton - кнопка для инструментальных панелей
- 3.2.3. TMaskEdit - специальный редактор
- 3.2.4. TStringGrid - таблица строк
- 3.2.5. TDrawGrid - произвольная таблица
- 3.2.6. TImage - отображение картинок
- 3.2.7. TShape - стандартная фигура
- 3.2.8. TBevel - кромка
- 3.2.9. TScrollBox - панель с прокруткой
- 3.2.10. TСheckListBox - группа независимых переключателей
- 3.2.11. TSplitter - компонент для изменения размеров
- 3.2.12. TStaticText - метка для отображения текста
- 3.2.13. TControlBar - инструментальная панель
- 3.2.14. TApplicationEvents - обработчик сообщений Windows
- 3.2.15. TValueListEditor - специализированный редактор строк
- 3.2.16. TLabelEdit - однострочный редактор с меткой
- 3.2.17. TColorBox - список выбора цвета
- 3.2.18. TChart - построитель графиков
- 3.2.19. TActionManager - менеджер действий
- 3.2.20. TActionMainMenuBar - полоса меню для действий
- 3.2.21. TActionTollBar - полоса кнопок для действий
- 3.2.22. TCustomizeDIg - диалог настройки интерфейса
- Глава 4. Многодокументный и однодокументный интерфейсы (mdi и sdi)
- 4.1. Mdi и sdi: сравнение
- 4.2. Разработка mdi—приложений
- 4.2.1. Разработка главного и информационного окон
- 4.2.2. Использование стандартных диалоговых окон
- If OpenDialog1.Execute then
- 4.2.3. Разработка диалогового окна
- Var dlg6:tokRightDlg;
- X1,x2,x3:String;
- If b1 or b2 then
- 4.2.4. Управление окнами
- I:integer;
- I:integer;
- 4.2.5. Работа с меню
- Var tf5:tForm2;
- 4.3. Разработка sdi–приложения
- 4.3.1. Простое sdi–приложение
- I,j :byte;
- I,j :byte;
- I,j :byte;
- 4.3.2. Управление окнами в sdi–приложениях
- I :byte;
- Var I :byte; ptr6 :tForm2;
- I :byte;
- Глава 5. Реализация алгоритмов решаемых задач на Delphi
- 5.1. Традиционный подход реализации алгоритмов на Delphi
- 5.2. Объектно-ориентированный подход
- Val(Edit1.Text,k,sig);
- Val(Edit2.Text,l,sig);
- I,j :byte;
- I,j :integer;
- Inherited Create (Ni,Nj);
- Val(Edit1.Text, p, sig1);
- Val(Edit2.Text, q, sig2);
- Val(Edit3.Text, r, sig3);
- Vas :real;
- Val(Edit4.Text,n,sig);
- Глава 6. Тестирование и отладка приложений
- 6.1. Виды ошибок
- 6.2. Отладочные средства Delphi
- 6.3. Составление тестов
- Глава 7. Исключительные ситуации
- 7.1. Обработка исключительных ситуаций
- I, j, k : integer;
- I:integer;
- I, j, k : integer;
- 7.2. Обработка определенных исключительных ситуаций
- Var I,j,k :shortint; p,q :real;
- Заключение
- Литература
- Методическое пособие для самостоятельных работ «Основы интегрированной среды программирования delphi6»
- 6.100301 "Судовождение",
- 6.100302 "Эксплуатация судовых энергетических установок"
- 6.092201 "Электрические системы и комплексы транспортных средств",