Простой список – TListBox
Простой список TListBox представляет собой многострочный элемент управления. По умолчанию одновременный выбор двух и более строк запрещен. Однако этот запрет можно снять, установив в true свойство:
propertyMultiSelect: Boolean;
Если многострочный выбор разрешен, то на способ выбора строк оказывает
влияние свойство:
propertyExtendedSelect: Boolean;
В состоянии true выбор осуществляется щелчком кнопки мыши при нажатой клавише Ctrl или Shift, в противном случае одновременный выбор нескольких строк производится только мышью. Общее количество выбранных пользователем строк можно узнать из свойства:
propertySelCount: Integer;
При запрете на одновременный выбор двух и более строк (MultiSelect = false)
возвращаемое значение всегда равно –1. Проверку факта выделения элемента с порядковым номером Index производит свойство:
propertySelected[Index: Integer]: Boolean;
Если элемент выделен, свойство установится в состояние true. Данное свойство доступно только во время выполнения программы.
ifListBox1.Selected[5] thenShowMessage(‘Выбран 5 элемент’);
Можно разместить элементы списка в несколько колонок, если отказаться
от нулевого значения в свойстве:
propertyColumns: Integer;
Размер отступа табуляции настраивается в свойстве:
propertyTabWidth: Integer;
Например:
Listbox1.TabWidth:=20;
fori:=0 to9 doListbox1.items.Add('A'+#9+'B'+#9+'C'); //#9 – код табуляции
За автоматическую подстройку высоты элемента отвечает свойство:
propertyIntegralHeight: Boolean;
По умолчанию оно установлено в false и допускает «обрезание» последнего
элемента списка. Внешний вид границ элемента управления определяется
свойством:
propertyBorderStyle: TBorderStyle;
У наследников класса TCustomListBox опубликован метод, позволяющий оп-
ределять индекс элемента списка по его координатам Pos:TPoint в клиентской части списка:
functionItemAtPos(Pos: TPoint; Existing: Boolean): Integer;
При отсутствии элемента списка в точке Pos возвращаемое значение определяется параметром Existing: true – результат функции равен –1, false – возвращается индекс последнего. Этот метод обычно работает в содружестве с событиями, реагирующими на манипуляции мышью.
procedureTForm1.ListBox1MouseMove(Sender: TObject; Shift: TShiftState;
X, Y: Integer);
varPos : TPoint;
sText : string;
Index : integer;
Begin
Pos.x:=X; Pos.y:=Y;
Index:=ListBox1.ItemAtPos(Pos, true);
ifIndex<>-1 thensText:=ListBox1.Items.Strings[Index];
end;
Для получения координат прямоугольника, содержащего элемент списка
Item, используйте метод, который может понадобиться в операциях прорисовки:
functionItemRect(Item: Integer): TRect;
Дата добавления: 2016-03-15; просмотров: 476;