Окт
13th

Урок 7. Компонент TRadioGroup. Приложение с несколькими формами

Рубрика: Lazarus | Автор:admin

Урок из серии “Программирование для школьников в среде Lazarus”

В предыдущем уроке рассказывалось об организации ввода и вывода данных с помощью встроенных диалоговых окон InputBox, ShowMessage.

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

Кроме того  мы изучим новый компонент TRadioGroup для создания групп переключателей. Научимся применять условный оператор для анализа состояния переключателей.

Для начала вам нужно перейти на страницу Новый компонент и ознакомиться с назначением и свойствами компонента  TRadioGroup.

Чтобы повторить условный оператор if-then перейдите на станицу Повторим операторы.

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

Добавление новой формы

Компонент форма является объектом, отсутствующим на палитре компонентов. Чтобы добавить новую форму в проект, нужно выбрать команду Файл  – Создать форму или  щелкнуть кнопку Создать  форму на панели инструментов.

Кнопка Создать форму

Появиться новая пустая форма. Называться она будет Form2, а соответствующий ей файл с исходными текстами добавиться в Редактор кода на новую вкладку Unit2.

Новая вкладка в редакторе кода для новой формы

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

Для показа форм  можно использовать один из двух методов: Show или ShowModal.

Метод Show предназначен  для показа формы в обычном окне,  а ShowModal – для показа формы в модальном окне.

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

Показ формы как обычного окна

Чтобы вызвать форму в обычном окне используют ее метод Show. Он показывает форму, перемещает ее на передний план экрана и делает активной.

В примере показан вызов формы Form3 в обычном  окне после щелчка на кнопке Button1.

procedure TForm1.Button1Click(Sender: TObject);
begin
  Form2.Show;
end;

Показ формы как модального окна

Чтобы вызвать форму в модальном окне, надо использовать метод ShowMoal. Переключиться из модального окна на другие окна не удастся, пока оно не будет закрыто.

Пример показа формы Form3 в модальном окне после щелчка на кнопке Button2.

procedure TForm1.Button2Click(Sender: TObject);
begin
  Form3.ShowModal;
end;

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

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

Проект «Три формы»

Задание. Создать приложение с тремя формами: Главная, Опции и О программе. Форму Опции вызывать в обычном окне. Для вызова формы О программе использовать модальное окно.

На рисунке показаны главная форма и подформы нашего нового проекта.

Главная форма нашего примера

Форма Опции для загрузки в обычном окне

Форма О программе для загрузки в модальном окне

Ход выполнения проекта

  1. Создайте новое приложение, сохраните файлы проекта в папке «Три формы».

  2. Разместите на форме Form1  3 кнопки, измените свойства объектов в соответствии с таблицей.

    Компонент Свойство Значение
    Форма Name
    Caption
    frmGeneral
    Главная
    Кнопка 1 Caption Опции
    Кнопка 2 Caption О программе
    Кнопка 3 Caption Закрыть
  3. Создайте формуForm2. Для этого выберите в меню Файл команду Создать форму. На экране появиться новая форма Form2, в редакторе кода –  новая вкладка Unit2.

  4. Установите на форме компонент RadioGroup  для выбора цвета, надпись, поле вывода, две кнопки. Настройте свойства объектов в соответствии с таблицей.

    Компонент Свойство Значение
    Форма Name
    Caption
    frmOptions
    Опции
    RadioGroup Caption
    Items
    Цвет главной формы
    Ввести список
    Label1 Caption Заголовок главного окна
    Edit1 Text Пусто
    Button1
    Button2
    CaptionCaption ОК
    Выход

    После размещения  на форме компонента TradioGroup, входящие в него переключатели задаются перечислением их названий. Эти названия вводятся в свойство Items.

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

    Большая текстовая область окна редактора предназначена для ввода названий переключателей по одному в каждой строке. Переход в начало следующей строки осуществляется при нажатии на клавиши Shift+Enter.

    После окончания ввода списка, щелкните по кнопке ОК, и внешний вид объекта RadioGroup1 на форме сразу изменится.

  5. Создайте еще одну форму – Form3, выбрав команду Файл-Создать форму. На экране появиться новая форма Form3 а в редакторе кода –  новая вкладка Unit3.

  6. Разместите на Form3 объекты Надпись и Кнопка. Настройте свойства объектов.

    Компонент Свойство Значение
    Форма Name
    Caption
    frmAbout
    О программе
    Button1 Caption Выход
  7. Программный код для формы Главная (модуль Unit1) В модуле Unit1 в разделе Implementation необходимо записать директиву uses:

    uses Unit2, Unit3;

    Это необходимо для того чтобы модули Unit2, Unit3 форм Опции и О программе были видимы в главном модуле Unit1.

  8. Написать обработчики событий для кнопок формы Главная. Первая кнопка формы Главная (кнопка Опции) вызывает форму Опции в обычном окне с помощью метода Show.

    procedure TfrmGeneral.Button1Click(Sender: TObject);
    begin
      frmOptions.Show;
    end;
  9. Первая кнопка формы Главная  (кнопка О программе) вызывает форму О программе в модальном окне с помощью метода  ShowModal.,/p>

    procedure TfrmGeneral.Button2Click(Sender: TObject);
    begin
      frmAbout.ShowModal;
    end;
  10. Третья кнопка формы Главная (Кнопка ОК) закрывает главное окно.

    procedure TfrmGeneral.Button3Click(Sender: TObject);
    begin
      Close;
    end;
  11. Открываем программный код формы Опции (модуль Unit2).В модуле Unit2 в разделе implementation  записать директиву uses:
    uses Unit1;

    Это необходимо для того чтобы главный модуль Unit1 формы Главная был видим в этом модуле.

  12. Создать обработчик загрузки формы Опции, в который записать программный код, передающий текст заголовка главной формы в поле Edit1.

    procedure TFrmOptions.FormCreate(Sender: TObject);
    begin
      frmOptions.Edit1.text:=frmGeneral.Caption;
    end;
  13. Кнопка ОК формы Опции. По щелчку на этой кнопке будет происходить изменение цвета главной формы.

    procedure TFrmOptions.Button1Click(Sender: TObject);
    begin
    if radioGroup1.ItemIndex=0 then frmGeneral.color:=clWhite;
    if radioGroup1.ItemIndex=1 then frmGeneral.color:=clRed;
    if radioGroup1.ItemIndex=2 then frmGeneral.color:=clBlue;
    if radioGroup1.ItemIndex=3 then frmGeneral.color:=clGreen;
    end;
  14. Кнопка Закрыть формы Опции. По щелчку на этой кнопке закрывается окно Опции.

    procedure TFrmOptions.Button2Click(Sender: TObject);
    begin
      close;
    end;
  15. Переходим в программный код формы О программе (модуль Unit3).В модуле Unit3 в разделе implementation записать директиву uses.

    uses Unit1;

    Модуль Unit1 формы Главная должен был видим в этом модуле.

  16. Кнопка ОК формы О программе закрывает окно.

    procedure TfrmAbout.Button1Click(Sender: TObject);
    begin
      Close;
    end;
  17. Проект готов. Сохраните проект и проверьте его работу.


В этом уроке мы создали приложение состоящее из трех форм, использовали разные методы для вызова форм: простое окно и модальное окно.

В нашем приложении мы впервые применили компонент RadioGroup (Группа переключателей), использовали условный оператор для обработки выбора пользователя.

Следующий урок: «Оператор повторения».

Поделиться с друзьями


Оставить комментарий или два