![]() Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Простой список – TListBox
Простой список TListBox представляет собой многострочный элемент управления. По умолчанию одновременный выбор двух и более строк запрещен. Однако этот запрет можно снять, установив в true свойство: property MultiSelect: Boolean;
Если многострочный выбор разрешен, то на способ выбора строк оказывает влияние свойство: property ExtendedSelect: Boolean;
В состоянии true выбор осуществляется щелчком кнопки мыши при нажатой клавише Ctrl или Shift, в противном случае одновременный выбор нескольких строк производится только мышью. Общее количество выбранных пользователем строк можно узнать из свойства: property SelCount: Integer;
При запрете на одновременный выбор двух и более строк (MultiSelect = false) возвращаемое значение всегда равно –1. Проверку факта выделения элемента с порядковым номером Index производит свойство: property Selected[Index: Integer]: Boolean;
Если элемент выделен, свойство установится в состояние true. Данное свойство доступно только во время выполнения программы. if ListBox1.Selected[5] then ShowMessage(‘Выбран 5 элемент’);
Можно разместить элементы списка в несколько колонок, если отказаться от нулевого значения в свойстве: property Columns: Integer;
Размер отступа табуляции настраивается в свойстве: property TabWidth: Integer;
Например:
Listbox1.TabWidth: =20; for i: =0 to 9 do Listbox1.items.Add('A'+#9+'B'+#9+'C'); //#9 – код табуляции
За автоматическую подстройку высоты элемента отвечает свойство: property IntegralHeight: Boolean;
По умолчанию оно установлено в false и допускает «обрезание» последнего элемента списка. Внешний вид границ элемента управления определяется свойством: property BorderStyle: TBorderStyle;
У наследников класса TCustomListBox опубликован метод, позволяющий оп- ределять индекс элемента списка по его координатам Pos: TPoint в клиентской части списка: function ItemAtPos(Pos: TPoint; Existing: Boolean): Integer;
При отсутствии элемента списка в точке Pos возвращаемое значение определяется параметром Existing: true – результат функции равен –1, false – возвращается индекс последнего. Этот метод обычно работает в содружестве с событиями, реагирующими на манипуляции мышью. procedure TForm1.ListBox1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); var Pos: TPoint; sText: string; Index: integer; Begin Pos.x: =X; Pos.y: =Y; Index: =ListBox1.ItemAtPos(Pos, true); if Index< > -1 then sText: =ListBox1.Items.Strings[Index]; end;
Для получения координат прямоугольника, содержащего элемент списка Item, используйте метод, который может понадобиться в операциях прорисовки: function ItemRect(Item: Integer): TRect;
|