- •Работа с кнопками
- •Компонент Edit
- •2. Событие KeyPress возникает при нажатии алфавитно-
- •Текст (компоненты tLabel и tStaticText)
- •Компонент ListBox
- •Компонент ComboBox
- •Компонент CheckBox
- •Компонент RadioGroup
- •Класс tStringList
- •Компонент ImageList
- •Invalidate(); //Перерисовываем.
- •Создание главного меню
- •Работаем с контекстным меню (tPopupMenu)
- •Значок на панели задач (компонент tTrayIcon)
- •Работаем со сплиттером
- •Компонент Panel
- •Совместное использование сплиттера и Panel
- •Компонент HotKey
- •Компонент StatusBar
- •Назначение формы главной
- •Рисование на форме
- •Компонент ActionList
- •Работаем с двумя формами
- •Используем api-функции
- •Окна сообщений
- •Работаем с сетью. Клиент (класс tClientSocket)
- •Работаем с сетью. Сервер (класс tServerSocket)
- •Пересчитываем компоненты на форме
- •Форма - добавление методов
- •Форма - добавление полей
- •Форма - добавление свойств
Компонент ListBox
Компонент ListBox (список строк) расположен на вкладке Standard:
Он позволяет добавление новых строк, их удаление, поиск нужной строки, очистка всего ListBox'а и др. Строки для нашего ListBox'а хранятся в его свойстве Items. Для задания этого свойства на этапе разработки щелкните на многоточии рядом с ним в Инспекторе объектов:
Появится диалоговое окно String List Editor, в котором можно ввести элементы списка:
Если же вам надо добавить новый пункт на этапе работы программы, то надо воспользоваться методом Add упомянутого свойства Items:
ListBox1->Items->Add("New String");
Этот метод добавит новый элемент в конец списка. Если же нам надо добавить новый элемент куда-нибудь в середину, то используем метод Insert:
ListBox1->Items->Insert(1,"Roma");
Для очистки всего списка вызываем метод Clear:
ListBox1->Items->Clear();
Если нам надо удалить i-й элемент ListBox'а, то мы используем метод Delete (нумерация элементов списка идет с нуля):
ListBox1->Items->Delete(i);
Определить выделенный элемент списка позволяет свойство ItemIndex. Оно представляет из себя номер выделенного элемента. Если ни один элемент не выделен, то это свойство равно -1. Вот так, например, будет выглядеть код, который при щелчке на ListBox'е покажет в MessageBox'е номер элемента, на котором был произведен щелчок:
void __fastcall TForm1::ListBox1Click(TObject *Sender)
{
ShowMessage(IntToStr(ListBox1->ItemIndex));
}
Если вам надо, чтобы в ListBox'е пользователь имел возможность выделить сразу несколько элементов, то установите свойство MultiSelect в true (по умолчанию оно равно false).
Доступ к определенной строке можно получить через ее индекс (нумерация, как всегда, идет с нуля):
ListBox1->Items->Strings[0];
Для добавления строки служит метод Add:
ListBox1->Items->Add("Вася");
Для вставки строки в определенное место служит метод Insert:
ListBox1->Items->Insert(1,"Петя");
Свойство Count возвращает количество строк в списке:
int k = ListBox1->Items->Count;
Метод Clearпредназначен для удаления всех строк из компонента:
ListBox1->Items->Clear();
Для удаления же отдельного элемента с номером kслужит методDelete:
ListBox1->Items->Delete(k);
Для поиска определенной строки служит метод IndexOf:
int k = ListBox1->Items->IndexOf("Петя");
Этот метод берет в качестве параметра искомую строку и возвращает ее номер. Если строка не найдена, то возвращается -1.
Компонент ComboBox
Компонент ComboBox (выпадающий список) расположен на вкладке Standard Палитры Компонентов:
Этот компонент по своим свойствам очень похож на компонент ListBox. Методы и свойства он имеет почти те же самые. Самое важное из них - это свойство Items. Именно в нем и хранятся все строки ComboBox'а. Из отличных от ListBox'а свойств выделим свойство Text. Оно дает нам текст в нашем ComboBox'е (т.е. то, что пользователь непосредственно видит). Вот так, например, можно добавить напечатанный пользователем текст в ComboBox:
ComboBox1->Items->Add(ComboBox1->Text);
Из полезных свойств отметим еще свойство Style. Возможные значения для него - csDropDown (ComboBox с возможностью редактирования), csDropDownList (ComboBox без возможности редактирования, т. е. пользователь может выбирать только из существующих элементов), csSimple и другие. При значении style равным csSimple ComboBox будет выглядеть приблизительно так: