Пример 2. Использование компонента CheckBox

 

В этом примере мы создадим приложение, позволяющее изменять начертания шрифта, которым выводится текст, путем установки соответствующих флажков. При вводе текста в поле редактирования и нажатии кнопки «Показать» введенный текст отображается в метке, при установке флажков текст становится наклонным, полужирным, подчёркнутым и перечёркнутым, а  при нажатии на кнопку «Стереть» текст стирается.

 

В приложении должно быть 2 компонента Label, один компонент Edit, 4 компонента CheckBox и  две стандартные кнопки.

 

Расположите компоненты на форме и установите для них свойства Caption и Text как показано на следующем рисунке:

 

 

Метка для отображения текста расположена ниже поля редактирования (на рисунке почти не заметна).

 

Напишите процедуры для кнопок «Показать» и «Стереть» как указано в условии задачи.

 

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

Выполните двойной щелчок на компоненте CheckBox1, после этого в окне редактора кода появится заготовка процедуры по обработке события TForm2.CheckBox1Click – щелчок по компоненту CheckBox. Между операторными скобками введём следующий текст:
 

if  CheckBox1.Checked = true 

  then Label2.Font.Style := Label2.Font.Style + [fsBold] 
  else Label2.Font.Style := Label2.Font.Style - [fsBold] ;

 

Свойство Checked компонента ChekBox определяет, является ли данный компонент включённым или выключенным. Свойство Style компонента Label определяет стиль начертания шрифта, используемого для отображения текста, и может принимать следующие значения:

-        [] – обычный;

-        [fsBold] – полужирный;

-        [fsItalic] – наклонный;

-        [fsUnderline] – подчёркнутый;

-        [fsStrikeOut] – перечёркнутый.

 

Обратите внимание! Свойство Style (как и многие другие свойства визуальных компонентов) является множеством и, следовательно, с ним можно осуществлять стандартные операции предусмотренные для множеств, например, добавления элемента в множество и исключения элемента из множества. В приведенном выше примере к текущему значению множества Label2.Font.Style добавляется или исключается элемент [fsBold] в зависимости от значения свойства Checked. Тем самым обеспечивается изменение начертания шрифта, которым отображается текст метки Label2.

 

Напишите процедуры для оставшихся компонентов CheckBox.

 

Вид приложения во время его выполнения:

 

Текст файла Unit1.pas

 

unit Unit1;

 

interface

 

uses

  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

  Dialogs, StdCtrls;

 

type

  TForm1 = class(TForm)

    Edit1: TEdit;

    Label1: TLabel;

    CheckBox1: TCheckBox;

    CheckBox2: TCheckBox;

    Label2: TLabel;

    Button1: TButton;

    Button2: TButton;

    CheckBox3: TCheckBox;

    CheckBox4: TCheckBox;

    procedure Button1Click(Sender: TObject);

    procedure CheckBox1Click(Sender: TObject);

    procedure CheckBox2Click(Sender: TObject);

    procedure CheckBox3Click(Sender: TObject);

    procedure CheckBox4Click(Sender: TObject);

    procedure Button2Click(Sender: TObject);

  private

    { Private declarations }

  public

    { Public declarations }

  end;

 

var

  Form1: TForm1;

 

  implementation

 

{$R *.dfm}

 

procedure TForm1.Button1Click(Sender: TObject);

begin

  Label2.Caption := Edit1.Text ;

end;

 

procedure TForm1.CheckBox1Click(Sender: TObject);

begin

 if  CheckBox1.Checked = true 
   then Label2.Font.Style := Label2.Font.Style + [fsBold]
   else Label2.Font.Style := Label2.Font.Style - [fsBold] ;

end;

 

procedure TForm1.CheckBox2Click(Sender: TObject);

begin

  if  CheckBox2.Checked=true 
     then Label2.Font.Style := Label2.Font.Style + [fsItalic]

     else Label2.Font.Style := Label2.Font.Style - [fsItalic] ;

end;

 

procedure TForm1.CheckBox3Click(Sender: TObject);

begin

  if  CheckBox1.Checked=true 
    then Label2.Font.Style := Label2.Font.Style + [fsUnderline] 
    else Label2.Font.Style := Label2.Font.Style - [fsUnderline] ;

end;

 

procedure TForm1.CheckBox4Click(Sender: TObject);

begin

  if  CheckBox1.Checked=true 

   then Label2.Font.Style := Label2.Font.Style + [fsStrikeOut]

   else Label2.Font.Style := Label2.Font.Style - [fsStrikeOut] ;

end;

 

procedure TForm1.Button2Click(Sender: TObject);

begin

   Label2.Caption := ' ';

end;

 

end.