Суббота, 21.09.2019, 10:52
Главная | Регистрация | Вход Приветствую Вас Гость | RSS


Меню сайта


Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0


Тестування онлайн
тестування онлайн 


Социальные закладк

Флажки.  Переключатели

Во время работы с различными программами пользователю достаточно часто приходится делать выбор определенных элементов или настроек с предложенных в диалоговом окне. На уроке мы ознакомимся с компонентами RadioButton (переключатель:англ.  radio  button  - круглая  кнопка) и ChedcBox (флажок: англ. Checkbox - коробка для проверки), которые позволяют делать выбор различных возможностей и режимов работы

Напомним:

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

Итак,   в  группе  флажков  метка  может  быть  установлена:

  •  либо  на  одном  из них, 
  • либо  на  нескольких, 
  • либо  ни  на  одном. 

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

Итак,  из  группы  переключателей  может  быть  выбран  только один.

Переключатель  и  флажок  имеют  большинство  свойств,  которые  мы  рассматривали  для  формы,  поля,  кнопки  и  надписи,  и  еще  некоторые,  среди которых  рассмотрим  свойство  Checked  (англ.  checked -  выбранный).  Оно может  принимать  одно  из  двух  значений  True или  False и  определяет,  установлена  метка  в  данном  объекте  или  нет  (выбран  этот  объект  или  нет).  Поэтому  значение  этого  свойства  можно  использовать  в  команде  ветвления вместо логического выражения

Рассмотрим компонент флажок.

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

Свойства флажка Caption, Top, Left, Name, Color, Enabled, Visible, Font, Width, Height аналогичные соответствующих свойств надписи.

  • В частности, значения свойств Width и Height флажка определяются длиной текста справа от флажка и размером шрифта, которым выведено этот текст.

  • Свойство Checked флажка может принимать одно из двух значений:
  1. true -  отметку флажка установлено, флажок выбрано
  2. false отметку флажка не установлено, флажок не выбрано

Если на форме расположено несколько флажков, то среди них можно:

  • выбрать один;
  • или несколько;
  • не выбрать или выбрать все.

Рассмотрим, как можно использовать флажки для реализации ветвления.

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

  • Исходные значения свойств формы (можно создать процедуру Form1Create, содержащую эти команды):

Form1.Caption – флажки;
Form1.Color – clDefault;
Form1.Width - 325 ;
Form1.Height – 240;

CheckBox1.Checked -  false;

CheckBox2.Checked  -  false;
CheckBox 3.Checked -  false.

  • В проекте используем событие onClick кнопки Button1

Разместим на форме 2-е кнопки и три флажка. При размещении флажков на форме для каждого из них по умолчанию значение свойства Checked устанавливается false.

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

procedure TForm1.Button1Click(Sender: TObject);

begin

If CheckBox1.Checked Then Form1.Caption:= 'заголовок изменен';

If CheckBox2.Checked Then Form1.Color := clYellow;

If CheckBox3.Checked Then

         begin

          Form1.Height := Form1.Height + 100 ;

          Form1.Width := Form1.Width + 100 ;

         end;
end; 

procedure TForm1.Button2Click(Sender: TObject);

begin

Form1.Caption := 'флажки';

Form1.Color:= clDefault;

Form1.Width := 325;

Form1.Height:=240;

CheckBox1.Checked:= false;

CheckBox2.Checked:= false;

CheckBox3.Checked:= false;

end;     

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

 

Рассмотрим,  как  можно  использовать  переключатели  для  реализации ветвления в проекте.

Пример 2.  Нужно  в  ходе  исполнения  проекта  изменять  значение только  одного  из  таких  свойств  формы:  либо  заголовок,  либо  цвет,  либо размеры.
Для этого разместим на форме 2-е кнопки и  три  переключателя.

Исходные значения свойств формы (можно создать процедуру Form1Create, содержащую эти команды):
Form1.Caption – переключатели;
Form1.Color – clDefault;
Form1.Width - 325 ;
Form1.Height – 240;
RadioButton1.Checked  -  false;

RadioButton2.Checked  -  false;
RadioButton3.Checked -  false.

  • При  размещении  переключателей  на форме  для  каждого  из  них  по  умолчанию  устанавливается  значение  свойства  Checked  -  False.

  • В проекте используем событие onClick кнопки Button1

Создадим  процедуру  для  обработки  события  OnClick  кнопки  и  в  ее  текст поместим такую команду:

procedure TForm1.Button1Click(Sender: TObject);
begin

If  RadioButton1.Checked  Then     {равнозначно такой записи условия : RadioButton1.Checked  = true}
                          Form1.Caption:= 'Заголовок изменен'
Else If RadioButton2.Checked  Then     Form1.Color:= clTeal
Else
     begin
      Form1.Width := Form1.Width + 100 ;
      Form1.Height := Form1.Height + 100;
     end;
end;

Начинаться  выполнение  этой  команды  будет  с  определения  значения свойства RadioButtonl.Checked:

  • Если  при  наступлении  события  OnClick  кнопки  выбранным  будет  первый  переключатель,  то  RadioButtonl.Checked  =  true.  Поэтому  выполнится  команда  изменения  заголовка  формы,  а  другие  части  всей  этой  команды выполняться не будут.
     
  • Если  при  наступлении  события  OnClick  кнопки  выбранным  будет  второй  переключатель,  то  RadioButtonl.Checked  =  false.  Поэтому  будут  выполняться  команды  после  первого  ключевого  слова  Else,  то  есть  внутренняя  команда  ветвления.  Во  время  ее  выполнения  определяется  значение свойства  RadioButton2.Checked.  Поскольку  выбран  второй  переключатель, то  это  значение  равно  true.  Поэтому  выполнится  команда  изменения  цвета формы, а другие части команды выполняться не будут.
     
  • Если  же  при  наступлении  события  OnClick  кнопки  выбранным  будет третий  переключатель,  то  RadioButtonl.Checked  =  false.  Поэтому  будут  выполняться  команды  после  первого  ключевого  слова  Else,  то  есть  внутренняя команда  ветвления.  При  ее  выполнении  определяется  значение  свойства RadioButton2.Checked.  Поскольку  второй  переключатель  не  выбран,  то  его значение  false.  Тогда  будут  выполняться  команды  после  второго  ключевого слова Else, то есть две команды изменения размеров формы.
     
  • Если  перед  запуском  проекта  на  выполнение  ни  у  одного  переключателя не  изменять  значение  свойства  Checkedустановленное  по  умолчанию то при запуске проекта ни один из них не будет выбранным. Если и во время исполнения проекта не выбрать ни один из переключателей и выбрать кнопку,  то  изменятся  размеры  формы 

Проверка - вариант1.

  Чтобы  этого  не  произошло,  нужно:

  1.   либо обязательно  выбирать  один  из  переключателей.

До  запуска  проекта  изменим  в  первом  переключателе  значение  этого  свойства  на  True. После  этого  на  форме  он  будет  выглядеть  выбранным.  Таким  он будет и после запуска проекта на исполнение.

В   процедуру  для  обработки  события  Button2Click  кнопки  добавим  команды значения свойства Checked для переключателей

procedure TForm1.Button2Click(Sender: TObject);

begin

Form1.Caption := 'переключатели';

Form1.Color:= clDefault;

Form1.Width := 325;

Form1.Height:=240;

RadioButton1.Checked:= true;

RadioButton2.Checked:= false;

RadioButton3.Checked:= false;

end;

Проверка - вариант 2.

2.  либо  после  второго  ключевого слова Else вставить еще одну команду ветвления:

Проверка - вариант 3

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

procedure TForm1.Button1Click(Sender: TObject);
begin

If  RadioButtonl .Checked Then Forml .Caption := 'Заголовок изменен'

            Else If RadioButton2.Checked Then Forml .Color := clTeal

Else If RadioButton3.Checked Then

begin
      Form1.Width := Form1.Width + 100 ;
      Form1.Height := Form1.Height + 100;

end;

end;

 

Из рассмотренных выше примеров можно сделать такие выводы:

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

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

•  флажки  используются  тогда,  когда  может  быть  выбран  либо  один,  либо несколько, либо не выбран ни один вариант действий из нескольких возможных;

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

 

Пример . Использование события onChange компонентов CheckBox и RadioButton

Интерфейс проекта

Программный код проекта

Переключатели - программный код, вариант 1

procedure TForm1.RadioButton1Change(Sender: TObject);
begin
form1.caption:='переключатели_onChange';
end;

procedure TForm1.RadioButton2Change(Sender: TObject);
begin
form1.color:=clOlive;
end;

procedure TForm1.RadioButton3Change(Sender: TObject);
begin
Form1.Width := Form1.Width + 100 ;
Form1.Height := Form1.Height + 100;
end;

procedure TForm1.RadioButton4Change(Sender: TObject);
begin
Form1.Caption := '
флажки _переключатели _ onChange';
Form1.Color:= clDefault;
Form1.Width := 325;
Form1.Height:=240;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin

 Form1.Caption := 'флажки _переключатели _on Change';
Form1.Color:= clDefault;
Form1.Width := 325 ;
Form1.Height:= 240;
end;

Переключатели - программный код, вариант 2

procedure TForm1.RadioButton1Change(Sender: TObject);
begin
  if RadioButton1.Checked then form1.Caption:='переключатели_onChange' else form1.Caption:='флажки_переключатели_onChange' ;
end;
procedure
TForm1.RadioButton2Change(Sender: TObject);
begin
   if RadioButton2.Checked then form1.color:=clOlive else Form1.Color:= clDefault;
 end;

procedure TForm1.RadioButton3Change(Sender: TObject);
begin
  if RadioButton3.Checked  then     begin
      Form1.Width := Form1.Width + 100 ;
      Form1.Height := Form1.Height + 100;
                                                           end
                                            else          begin
      Form1.Width := Form1.Width - 100 ;
      Form1.Height := Form1.Height - 100;
                                                         end;
 end;

procedure TForm1.RadioButton4Change(Sender: TObject);
begin
     Form1.Caption := 'флажки _переключатели _on Change';
     Form1.Color:= clDefault;
     Form1.Width := 325;
      Form1.Height:=240;
end;         

Флажки - программный код

procedure TForm1.CheckBox1Change(Sender: TObject);
begin

     if CheckBox1.Checked then form1.color:=clred else Form1.Color:= clDefault;
end;

procedure TForm1.CheckBox2Change(Sender: TObject);
begin
if CheckBox2.Checked then form1.color:=clblue else Form1.Color:= clDefault;
end;

procedure TForm1.CheckBox3Change(Sender: TObject);
begin

  if CheckBox3.Checked then form1.color:=clgreen else Form1.Color:= clDefault;
end;

procedure TForm1.CheckBox4Change(Sender: TObject);
begin
Form1.Caption := '
флажки _переключатели _ onChange';
Form1.Color:= clDefault;
Form1.Width := 325;
Form1.Height:=240;
CheckBox1.Checked:=false;
CheckBox2.Checked:=false;
CheckBox3.Checked:=false;
CheckBox4.Checked:=false;
end;

Вывод. Событие onChange целесообразно использовать для единичных применений компонентов

Компоненты  CheckGroup , RadioGroup. Примеры 

Форма входа
Поиск
Календарь
«  Сентябрь 2019  »
ПнВтСрЧтПтСбВс
      1
2345678
9101112131415
16171819202122
23242526272829
30
Архив записей
Друзья сайта
  • Официальный блог
  • Сообщество uCoz
  • FAQ по системе
  • Инструкции для uCoz

  • Рейтинг@Mail.ru
    Copyright MyCorp © 2019
    Конструктор сайтов - uCoz