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. Для компонента определены два события, связанные с программной прорисовкой элементов списка:

Type

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

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

Type

TMeasureItemEvent = procedure(Control: TWinControl; Integer;

varHeight: Integer) of object/propertyOnMeasureItem: TMeasureItemEvent;

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

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

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

procedureTFormI.ListBoxIDrawItem(Control: TWinControl;

Index: Integer; Rect: TRect; State: TOwnerDrawState);

Var

Bitmap: TBitmap;// Временная переменная для растра

Offset: Integer;

// Расстояние от растра до текста

Begin

{Свойство Canvas имеет не только список ListBox, но и форма, на которую он помещен! Поэтому нужно явно указать канву. Преобразуем тип и указываем канву:}








Дата добавления: 2016-03-04; просмотров: 1329;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.005 сек.