Delphi 6 -программирование



 

18.1.10. TListBox - список выбора

Компонент класса TListBox представляет собой стандартный для Windows список выбора, с помощью которого пользователь может выбрать один или несколько элементов выбора. В компоненте

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

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

property AutoComplete: Boolean;

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

type TBorderStyle = bsNone..-bsSingle; property Border-Style: TBorderStyle;

Определяет стиль рамки: bsNone - нет рамки; bssingle - рамка толщиной 1 пиксель

property Canvas: TCanvas; property Columns: Longing;

Канва для программной прорисовки элементов Определяет количество колонок элементов в списке

property Count: Integer;

Содержит количество строк в компоненте

property ExtendedSelect: Boolean;

Если ExtendedSelect =True и MultiSelect==True, выбор элемента без одновременного нажатия Crtl или Alt отменяет предыдущий выбор

property IntegralHeight:Boolean;  

Если IntegralHeight=True и Style<>lb0wner-DrawVariabe, в списке показывается целое число элементов

property ItemHeight: Integer; 

Определяет высоту элемента в пикселях для Style=lbOwnerDrawFixed

property Itemlndex: Integer;  

 

Содержит индекс сфокусированного элемента. Если MultiSelect=False, совпадает с индексом выделенного элемента

property Items: TStrings; 

Содержит набор строк, показываемых в компоненте

property MultiSelect: Boolean;

Разрешает/отменяет выбор нескольких элементов 

property SelCount: Integer;

Содержит количество выбранных элементов

property Selected[X: Integer] : Boolean;

Содержит признак выбора для элемента с индексом х (первый элемент имеет индекс 0)

property Sorted: Boolean; 

Разрешает/отменяет сортировку строк в алфавитном порядке

type TListBoxStyle =

(IbStandard, IbOwnerDrawFixed, IbOwnerDrawVariable) ;

property Style: TListBoxStyle; 

Определяет способ прорисовки элементов:

IbStandard - элементы рисует Windows; ibOwnerDrawFixed - рисует программа, все элементы имеют одинаковую высоту, определяемую свойством ItemHeight;IbOwnerDrawVariable -рисует программа, элементы имеют разную высоту

property TabWidth: Integer;

Задает ширину табуляционного пробела

property Toplndex: Integer;

Индекс первого видимого в окне элемента

 Создание элементов (опций) списка компонента реализуется с помощью методов его свойства Items - Add, Append, Insert млм LoadFromFile (CM. П. 16.3.1).

Для компонента определены два события, связанные с программной прорисовкой элементов списка:

type

TOwnerDrawState = set of (odSelecred, odGrayed, odDisabied, odChecked, odFocused) ;

TDrawItemEvent = procedure(Control: TWinControl; Index: Integer; Rect: TRect; State: TOwnerDrawState) of object-property OnDrawItem: TDrawItemEvent;

type

TMeasureItemEvent = procedure(Control: TWinControl; Integer;

var Height: Integer) of object/property OnMeasureItem: TMeasureItemEvent;

Первое событие возникает в момент, когда программа должна нарисовать очередной элемент. Обработчик события получает ссылку на список выбора control, индекс изображаемого элемента index, границы элемента Rect и его состояние State. Прорисовка ведется с помощью свойства Canvas.

Примечание

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

В следующем примере в каждом элементе рисуется растровое изображение и текст.

procedure TFor.gif" >

Начало Вперед