Компоненти за избор на списък

Компоненти за избор на списък - ListBox, CheckListBox и ComboBox

  • размер на шрифта намалете размера на шрифта увеличете размера на шрифта
  • Тюлен

Компоненти за избор на списък - ListBox, CheckListBox и ComboBox

Пример за компонентите, обсъждани в този раздел и предоставящи избор от списък, е показан на фигурата по-долу:

избор

Пример за компоненти за избор на списък

Компонентите ListBox и ComboBox показват списъци с низове. Те се различават един от друг основно по това, че ListBox показва само данните и позволява на потребителя да избере това, от което се нуждае от тях, а ComboBox също ви позволява да редактирате данните. Освен това формата на показване на списъците е различна. ListBox показва списъка разширен и автоматично добавя ленти за превъртане към списъка, ако всички редове не се побират в прозореца на компонента. ComboBox ви позволява да показвате списъка както в разширена форма, така и под формата на падащ списък, което обикновено е по-удобно, тъй като спестява областта на прозореца на приложението.

Основното свойство на двата компонента, съдържащо списък от низове, е Items, което има типа TStrings, разгледан по-рано. Можете да го попълните по време на проектиране, като щракнете върху бутона с многоточие до това свойство в прозореца на инспектора на обекти. По време на изпълнение можете да работите с това свойство, като използвате свойствата и методите на класа TStrings - Clear, Add и други.

Компонентът ListBox има свойство MultiSelect, което позволява на потребителя да прави множество селекции в списъка (на фигурата това свойство е зададено на true в горния среден списък). Ако MultiSelect = false (по подразбиране), тогава потребителят може да избере само един елемент от списъка. В този случай можете да разберете индекса на избранияниз от свойството ItemIndex, което е достъпно само по време на изпълнение. Ако не е избран ред, тогава ItemIndex = -1. Първоначалната стойност на ItemIndex не може да бъде зададена по време на проектиране. ItemIndex по подразбиране = -1. Това означава, че не е избран елемент от списъка. Ако искате да зададете това свойство на някаква друга стойност, т.е. задайте избора по подразбиране, който ще се показва в началото на приложението, тогава това може да се направи, например, в манипулатора на събитие OnCreate на формуляра, като въведете оператор на формуляра

Ако е разрешен множествен избор (MultiSelect = true), тогава стойността на ItemIndex съответства на елемента от списъка, който има фокус. При множествена селекция можете да проверите дали дадения елемент е избран, като проверите свойството Selected[Index: Integer] от тип Boolean.

Методът на множествен избор, когато MultiSelect = true, също се влияе от свойството ExtendedSelect. Ако ExtendedSelect = true, тогава потребителят може да избере набор от елементи, като избере един от тях, след това натисне клавиша Shift и премести курсора до друг елемент. Потребителят може да избира елементи, които не са съседни един на друг, ако задържи натиснат клавиша Ctrl, докато избира. Ако ExtendedSelect = false, тогава клавишите Shift и Ctrl не работят при избиране.

Свойството Columns определя броя на колоните, в които ще се показва списъкът, ако не се побира изцяло в прозореца на компонента ListBox (в средния горен списък на фигурата свойството Columns е 2).

Свойството Сортирани ви позволява да сортирате списъка по азбучен ред. Когато Sorted = true, новите редове се добавят към списъка не в края, а по азбучен ред.

Свойството Style, зададено на lbStandard (стойността по подразбиране), съответства на списък от низове. Други стойности на стила ви позволяват да показвате не само текст в списъка, но иИзображения.

Има още един компонент, който е много подобен на ListBox - списък с индикатори CheckListBox. Изглежда по същия начин като ListBox (долния среден списък на фигурата), но до всеки ред има индикатор, който потребителят може да превключва. Индикаторите могат да се превключват и програмно, ако списъкът се използва за показване на данни и е необходимо да се маркира някаква характеристика на всеки обект в него, например наличието на продукт с това име в склад.

Всички свойства, които характеризират компонента CheckListBox като списък, са подобни на ListBox, с изключение на свойствата, които дефинират множествен избор. Компонентът CheckListBox не се нуждае от тези свойства, тъй като може да се използва за множествен избор чрез задаване на индикатори.

Помислете сега за компонента ComboBox. Стилът на изображението на този компонент се определя от свойството Style, което може да приема следните основни стойности:

csDropDown

Падащ списък с редове с еднаква височина и поле за редактиране, което позволява на потребителя да въвежда или редактира текст (десен списък на фигурата).

csSimple

Разширен списък с редове с еднаква височина и поле за редактиране, което позволява на потребителя да въвежда или редактира текст (долен ляв списък на фигурата).

csDropDownList

Падащ списък с редове с еднаква височина, който не съдържа поле за редактиране.

Изборът на потребителя или текстът, въведен от потребителя, може да се определи от стойността на свойството Text. Ако трябва да определите индекса на елемента от списъка, избран от потребителя, тогава можете да използвате свойството ItemIndex, обсъдено в компонента ListBox. Всичко казано по-горе за ItemIndex и за настройката на неговата стойност по подразбиране е вярно и за компонента ComboBox. И заЗадаването на ComboBox на първоначалната стойност на ItemIndex е дори по-подходящо, отколкото за ListBox. Ако първоначалната стойност не е зададена, тогава в момента на стартиране на приложението потребителят няма да види една от възможните стойности на списъка в прозореца на компонента и най-вероятно няма да разбере какво да прави с този прозорец.

Ако данните са били редактирани в прозореца, тогава ItemIndex = -1. На тази база можете да определите, че е извършено редактиране.

Свойството MaxLength указва максималния брой знаци, които потребителят може да въведе в прозореца за редактиране.

Ако MaxLength = 0, тогава броят на въведените знаци не е ограничен.

Подобно на компонента ListBox, свойството Sorted ви позволява да сортирате списъка по азбучен ред. Когато Sorted = true, новите редове се добавят към списъка не в края, а по азбучен ред.