Материал: Мансуров. Основы программирования в среде Lazarus. 2010

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

6.3 Визуальное программирование в среде Lazarus

____________________________________________________________________

тировка и добавление элементов в список. Создайте форму, рис. 6.67.

Рис. 6.67. Форма приложения

Теперь уже установите свойство Style компонента ComboBox1 рав-

ным csDropDown. В свойстве Items введите любые данные. В обработчи-

ке OnSelect в переменной oldItemIndex мы запоминаем индекс выбран-

ного элемента. Если нажата кнопка "Изменить", то оператор

ComboBox1.Items[oldItemIndex]:= ComboBox1.Text;

изменит выбранный элемент новым содержимым. Если пользователь нажмет

кнопку "Добавить", то оператор

ComboBox1.Items.Add(ComboBox1.Text);

добавит новую запись в список.

unit Unit1;

{$mode objfpc}{$H+} interface

uses

Classes, SysUtils, FileUtil, LResources, Forms,

Controls, Graphics, Dialogs, StdCtrls;

636

Глава 6 Программирование приложений с графическим интерфейсом

____________________________________________________________________

type

{ TForm1 }

TForm1 = class(TForm)

Button1: TButton;

Button2: TButton;

ComboBox1: TComboBox;

procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure ComboBox1Select(Sender: TObject); procedure FormCreate(Sender: TObject);

private

{private declarations } public

{public declarations } end;

var

Form1: TForm1; oldItemIndex: integer;

implementation { TForm1 }

procedure TForm1.ComboBox1Select(Sender: TObject); begin

oldItemIndex:= ComboBox1.ItemIndex; end;

procedure TForm1.FormCreate(Sender: TObject); begin

ComboBox1.ItemIndex:= 0;

ComboBox1.Style:= csDropDown;

end;

637

6.3 Визуальное программирование в среде Lazarus

____________________________________________________________________

procedure TForm1.Button1Click(Sender: TObject); begin

if ComboBox1.ItemIndex = - 1 then ComboBox1.Items[oldItemIndex]:= ComboBox1.Text;

end;

procedure TForm1.Button2Click(Sender: TObject); begin

if ComboBox1.ItemIndex = - 1 then ComboBox1.Items.Add(ComboBox1.Text);

end; initialization

{$I unit1.lrs} end.

Компоненты выбора – переключатели

Эта группа компонентов реализуют такие элементы графического интер-

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

состояний и т.д. Таким образом, в этих компонентах, в отличие от таких ком-

понентов как TListBox и TComboBox, производится выбор не данных как та-

ковых, а каких-то свойств и характеристик объектов, используемых в приложе-

нии. Выбор пользователя в этих компонентах подразумевает ответ пользовате-

ля типа "Да", "Нет". Рассмотрим компонент TCheckBox.

Этот компонент реализует элемент графического интерфейса флажок.

Применяется также термин индикатор. Многие программисты говорят также просто "чек бокс". Обычно в диалоговом окне присутствуют несколько флаж-

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

638

Глава 6 Программирование приложений с графическим интерфейсом

____________________________________________________________________

Рис. 6.68. Вид компонента TCheckBox

Основные свойства компонента:

State – компонент TCheckBox может находиться в общем случае в трех состояниях:

1.Флажок выбран, в окошке компонента стоит галочка. Этому состоянию соответствует значение State=cbChecked;

2.Флажок не выбран, в окошке компонента галочка отсутствует. Этому со-

стоянию соответствует значение State=cbUnchecked;

3. Флажок выбран, в окошке компонента стоит галочка. Но само окошко и галочка серого цвета. Этому состоянию соответствует значение

State=cbGrayed; Это, так называемое, промежуточное состояние. Чаще всего применяется в тех случаях, когда тот или иной режим, та или иная оп-

ция должна быть обязательно выбрана (задействована), но так, чтобы поль-

зователь был проинформирован об этом. Очень часто это состояние исполь-

зуется в комбинации со свойством Enabled=false, т.е. данная опция ав-

томатически установлена, пользователь об этом знает, но менять эту опцию нельзя.

AllowGrayed – разрешает или не разрешает применение состояния

State=cbGrayed. Если AllowGrayed= false (значение по умолчанию), то возможны только два состояния, флажок выбран и флажок не выбран;

Checked – если Checked = true, то флажок выбран. Значение State= cbChecked. Если же Checked = false, то State равен либо cbUnchecked, либо cbGrayed;

639

6.3 Визуальное программирование в среде Lazarus

____________________________________________________________________

Caption – задает текст, связанный с флажком;

Для того чтобы определить выбран флажок или нет достаточно записать

оператор

if CheckBox1.Checked then <действия, если флажок выбран> else <действия, если флажок не выбран>;

или

case CheckBox1.State of

cbChecked: < соответствующие действия >; cbUnchecked: < соответствующие действия >; cbGrayed: < соответствующие действия >;

end;

Рассмотрим компонент, реализующий переключатель TRadioButton,

рис. 6.69. Говорят также радиокнопка или зависимый переключатель.

Рис. 6.69. Вид компонента TRadioButton

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

ций, свойств и т.д.). Поэтому необходимо использование как минимум двух компонентов TRadioButton. Свойства компонента:

640

Смотрите также:

11 Горм +
113
14
1433
1511
1632
199
204
2N4264RE
3773