Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Книга о KOL.doc
Скачиваний:
29
Добавлен:
30.04.2019
Размер:
1.77 Mб
Скачать

3 .9. Переключатели (check box, radio box)

Окна переключателей (check box и radio box) в Windows считаются разновидностью кнопок. В объекте TControl представлено три основных разновидности переключателей. Их конструкторы:

NewCheckBox( Parent, s ) - создает оконный объект переключателя с двумя состояниями, сразу задавая для него заголовок;

NewCheckBox3State( Parent, s ) - создает оконный переключатель с тремя состояниями (отмечен, не отмечен и в неопределенном состоянии - закрашивается темно-серым цветом в стандартной цветовой схеме);

NewRadioBox( Parent, s ) - создает радио-переключатель, т.е. если на родительском объекте имеется несколько таких радио-переключателей (или радио-кнопок), то только один из них может быть в состоянии "отмечен" (checked). Существенная разница от компонента TRadioBox в VCL заключается именно в способе разбиения радио-кнопок на группы, за что там отвечало свойство RadioGroup.

Поскольку все эти переключатели являются кнопками, для них действуют все общие свойства контролов, кнопок, и, кроме того, добавляется несколько свойств, специфичных именно для переключателей:

Checked - читает или изменяет состояние переключателя. Для перевода радио-кнопки в состояние "включена" необходимо использовать метод SetRadioChecked;

SetChecked( on ) - "сквозной" метод для начальной инициализации состояния переключателя при его создании;

SetRadioChecked - метод исключительно для радио-переключателя. Устанавливает переключатель в состояние checked = true, при этом выключая текущий включенный радио-переключатель на родительском окне (если такой есть). Событие OnСlick при этом срабатывает для обоих переключателей: для включаемого и для выключаемого;

Check3 - состояние трех-позиционного переключателя (созданного конструктором NewCheckBox3State).

В MCK данные разновидности контролов представлены двумя зеркалами: TKOLCheckBox и TKOLRadioBox. При этом компонент TKOLCheckBox имеет свойство времени разработки Auto3State, которое, если установлено, сообщает MCK, что генерировать в инициализаторе формы следует код именно для тройного переключателя.

3.10. Визуальные объекты со списком элементов

Следующая большая группа объектов - это визуальные объекты, предназначенные для представления некоторого множества элементов (например, строк текста), с которыми можно работать через соответствующее общее свойство Items[ ]. Это могут быть окна для редактирования многострочного текста, для просмотра списков текстов, изображений, для представления линейки кнопок и т.п.

К общему набору свойств, методов и событий для всех таких разновидностей объектов в TControl относятся:

Count - количество элементов (строк в многострочном поле ввода - memo или rich edit, элементов в списках list box, combo box и list view, узлов верхнего уровня в дереве tree view, страниц в панелях с закладками tab control, кнопок в линейке инструментов tool bar);

Items[ i ] - доступ к тексту элемента с индексом i (работает не для всех списочных контролов, для каких-то из них - например, list view - требуется использовать специализированные свойства);

ItemData[ i ] - доступ к дополнительному числу или указателю, связанному с элементом (характерно далеко не для всех списочных контролов);

IndexOf( s ) - возвращает индекс элементов с указанным текстом, или -1, если такой элемент не найден;

SearchFor( s, i ) - аналогично функции IndexOf, отыскивает элемент, содержащий указанный текст, но поиск начинается с элемента с индексом i;

Add( s ) - добавляет в конец "списка" заданную строку (сразу об особенности применения для многострочных текстовых полей ввода: строка должна содержать символы завершения строки #13#10, иначе при последующем добавлении строк их текст будет конкатенироваться с последней строкой без перехода на новую строку);

Insert( i, s ) - вставляет новый элемент с указанным текст в заданную позицию "списка";

Delete( i ) - удаляет элемент с индексом i;

Clear - очищает список элементов (или текст в поле ввода)

CurIndex - текущий элемент в списке, так же действителен не для всех списочных контролов;

ItemSelected[ i ] - проверяет, что элемент является "выделенным" (характерно для тех списочных контролов, в которых есть понятие "выделенный элемент" или "множество выделенных элементов");

OnMeasureItem - событие, которое позволяет задать в своем обработчике размеры (высоту) элемента. Более подробно смотрите ниже в описании контролов, для которых это событие работает (list box, combo box, list view);

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