Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Класс Tstrings






Класс TStrings предназначен для хранения набора строк. Экземпляры этого класса нельзя создавать непосредственно - он служит в качестве базового класса для других классов.

У ListBox'а есть свойство Items типа TStrings.

Основное свойство для класса TStrings - это Strings, в котором и хранятся все строки. Доступ к определенной строке можно получить через ее индекс (нумерация идет с нуля):

ShowMessage(ListBox1-> Items-> Strings[0]);

В результате появится следующее окно:

Рис 3. Результат доступа к строке через индекс

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

ListBox1-> Items-> Add(" New String");

Этот метод добавит новый элемент в конец списка.

Для добавления нового элемента куда-нибудь в середину, следует использовать метод Insert:

ListBox1-> Items-> Insert(I, " Roma");

Для очистки всего спмска служит метод Clear.

ListBox1-> Items-> Clear();

Для удаления удалить i-го элемента ListBox'а, используем метод Delete:

ListBox1-> Items-> Delete(1);

Нумерация элементов списка идет с нуля. Приведенный пример удалит второй сверху элемент. Все следующие строки сдвинутся вверх в списке, таким образом, на месте второй строки будет третья, на месте третьей– четвертая и т.д.

Для поиска определенной строки служит метод IndexOf:

int k=ListBox1-> Items-> IndexOf(" Ira");

Этот метод берет в качестве параметра искомую строку и возвращает ее номер. Если строка не найдена, то возвращается -1.

Свойство ItemIndex позволяет определить номер выделенного элемента списка (нумерация идет с нуля). Если ни один элемент не выделен, то это свойство равно -1.

Код, который при щелчке на ListBox'е покажет в MessageBox'е номер элемента, на котором был произведен щелчок:

void __fastcall TForm1:: ListBox1Click(TObject *Sender)

{ ShowMessage(IntToStr(ListBox1-> ItemIndex)); }

Следующий код проверяет выбор пользователя. Если выбор не сделан, появляется сообщение «Вы не сделали свой выбор». Если один из элементов списка выбран, то появляется сообщение вида: «Ваш выбор … …», где вместо первого многоточия отображается номер выбранной строки, а вместо второго многоточия – текст выбранной строки.

void __fastcall TForm1:: Button1Click(TObject *Sender)

{

if (ListBox1-> ItemIndex> 0)

{ ShowMessage(" Ваш выбор " +

IntToStr(ListBox1-> ItemIndex+1)+": " +

ListBox1-> Items-> Strings[ListBox1-> ItemIndex]);

}

else

{

ListBox1-> ItemIndex=0; //выделение 1-го элемента

ListBox1-> ItemIndex=-1; //элементы не выделены

ShowMessage(" Вы не сделали свой выбор"); }

}

Рис.4 Выбор строки

На способ множественного выбора при MultiSelect = true влияет еще свойство ExtendedSelect. Если ExtendedSelect = true, то можно выделить интервал элементов, выделив один из них, затем нажав клавишу Shift и переведя курсор к другому элементу.

Рис. 5 Множественный выбор строк

Если допускается множественный выбор (MultiSelect = true), то значение ItemIndex соответствует тому элементу списка, который находится в фокусе. При множественном выборе можно проверить, выбран ли данный элемент, по свойству Selected[int Index] типа bool (1-true, 0-false), например:

ListBox1-> Selected[1] // выделен ли 1-ый элемент списка в ListBox’е

Следующий код отображает сообщения вида " Выбрана строка.,.: обо всех выбранных строках:

for (int i=0; i < ListBoxl-> Items-> Count; i++)

if (ListBoxl--> Selected[i])

ShowMessage (" Выбрана строка " + IntToStr (i+1)' + ": " +

ListBoxl-> Items-> Strings [i]);

Удаление выбранных элементов в TListBox

for(int i = ListBox1-> Items-> Count-1; i > = 0; i--) if(ListBox1-> Selected[i]) ListBox1-> Items-> Delete(i);

Свойство Columns определяет число столбцов, в которых будет отображаться список. По умолчанию Columns=0.

Если Columns=1, то появляется горизонтальная линейка прокрутки, с помощью которой можно просмотреть невидимые строки.

 

Рис. 6 Результат удаления строки по индексу

Если свойство Columns > 1, то появляется то количество столбцов, состоящих из строк, которое указано в свойстве.

Рис. 7 Количество столбцов - 2

Свойство Sorted позволяет упорядочить список по алфавиту. При Sorted=true новые строки в список добавляются не в конец, а по алфавиту.

void __fastcall TForm1:: Button1Click(TObject *Sender)

{

ListBox1-> Items-> Add(" Волнушка");

}

Рис. 8 Вставка строки с одновременной сортировкой

Свойство AutoComplete, если установить его в true, позволяет пользователю быстро находить строку списка, нажимая клавишу, соответствующую ее первому символу.

Нажаты клавиши Shift+О

Рис.9 Выбор строки по её первому символу

Свойство Style, установленное в IbStandard (значение по умолчанию) соответствует списку строк. Другие значения Style позволяют отображать в списке не только текст, но и изображения.

Свойства BevelEdges, BevelInner, BevelKind, BevelOuter, BouderStyle, Color, Ctl3D влияют на внешний вид (наличие границ, их вид, стиль, цвет фона и др.).

SelCount п оказывет количество выделенных строк в списке

Selected[Index] у казывает, выделена или нет, строка с номером Index.

Exchange(Index1, Index2) м еняет местами две строки с номерами Index1 и Index2.

LoadFromFile(FileName) з аполняет список строками из файла с именем FileName.

SaveToFile(FileName) сохраняет строки списка в файле с именем FileName.






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.