- •Работа с кнопками
- •Компонент Edit
- •2. Событие KeyPress возникает при нажатии алфавитно-
- •Текст (компоненты tLabel и tStaticText)
- •Компонент ListBox
- •Компонент ComboBox
- •Компонент CheckBox
- •Компонент RadioGroup
- •Класс tStringList
- •Компонент ImageList
- •Invalidate(); //Перерисовываем.
- •Создание главного меню
- •Работаем с контекстным меню (tPopupMenu)
- •Значок на панели задач (компонент tTrayIcon)
- •Работаем со сплиттером
- •Компонент Panel
- •Совместное использование сплиттера и Panel
- •Компонент HotKey
- •Компонент StatusBar
- •Назначение формы главной
- •Рисование на форме
- •Компонент ActionList
- •Работаем с двумя формами
- •Используем api-функции
- •Окна сообщений
- •Работаем с сетью. Клиент (класс tClientSocket)
- •Работаем с сетью. Сервер (класс tServerSocket)
- •Пересчитываем компоненты на форме
- •Форма - добавление методов
- •Форма - добавление полей
- •Форма - добавление свойств
Компонент CheckBox
Компонент CheckBox располагается на вкладке Standard:
Этот компонент играет роль флажка и предназначен для включения/выключения некоторого параметра. Для него основное свойство - это State. Именно оно и отвечает за внешний вид нашего CheckBox'а. Это свойство может принимать одно из трех значений: cbChecked (галочка стоит), cbUnchecked (галочка не стоит) и cbGrayed (CheckBox находится в неопределенном состоянии).
Обратите внимение, что у CheckBox'а может быть именно три состояния. Третье состояние CheckBox может иметь, например, при показе стиля выделенного текста в некотором текстовом редакторе - если часть текста, например, подчеркнута, а часть нет, то логично, чтобы CheckBox имел стиль cbGrayed. Вот так будет выглядеть CheckBox с состоянием cbGrayed:
Если щелкать на компоненте, то он будет менять два своих состояния (с галочкой и без). Если же мы хотим, чтобы при щелчке он циклически менял три своих состояния, то необходимо установить его свойство AllowGrayedв true.
Состояние компонента можно получить через его свойство Checkedлогического типа. Если оно равно true, то TCheckBox отмечен, если false - то не отмечен.
За надпись, расположенную рядом с квадратиком, отвечает свойство Caption.
Основное событие для компонента CheckBox - это OnClick. Оно, естественно, возникает при щелчке. Для добавления заготовки обработчика для этого события достаточно просто сделать на CheckBox'е двойной щелчок. Вот так, например, можно в заголовок формы вывести информацию о состоянии CheckBox'а:
void __fastcall TForm1::CheckBox1Click(TObject *Sender)
{
if(CheckBox1->Checked) Form1->Caption="Включено";
else Form1->Caption="Выключено";
}
Компонент RadioGroup
Компонент RadioGroupрасположен на вкладкеStandard:
Этот компонент позволяет выбрать один вариант из нескольких. Список выбора создается в редакторе свойства Items, где текст каждой строки будет названием пункта:
Если также задать пункт, выбранный по умолчанию (свойство ItemIndex= 0), и названиеCaption– «Вариант», то на форме это будет выглядеть так:
Теперь можно в любом месте программы проверять, в каком положении находится
переключатель, и выполнять разные группы операторов :
switch(RadioGroup1->ItemIndex)
{
case 0: <действия-1> ; break;
case 1: <действия-2> ; break;
case 2: <действия-3> ; break;
}
Здесь мы не используем метод компонента OnClick(), хотя выбор действий можно выполнить и в этом обработчике.
Класс tStringList
Класс TStringList предназначен для хранения набора строк и является невизуальным. Он является непосредственным потомком классаTStrings и наследует все методы и свойства своего родителя.
В отличие от своего родителя, класс TStringList позволяет создавать свои экземпляры.
Кроме того, этот класс имеет собственные свойства и методы, самые важные из которых перечислены ниже:
Свойство Sortedлогического типа. Если установлено в true, то список автоматически сортируется, если false, то не сортируется. Пример использования:
TStringList *s=new TStringList;
s->Sorted=true;
s->Add("Роман");
s->Add("Вася");
s->Add("Петя");
ListBox1->Items->AddStrings(s); // Показываем сортированный список
delete s; // Удаляем объект
Свойство Duplicates. Свойство перечисляемого типа, если установлено в dupIgnore, то добавить повторяющуюся стороку нельзя (но при этом старые повторяющиеся строки сохраняются), dupAccept - можно добавлять повторяющиеся строки, dupError - при попытке добавить повторяющуюся строку генерируется ошибка EStringListError. Это свойство игнорируется, если список не отсортирован.
Свойство CaseSensitive. Свойство логического типа, определяющее, учитывается ли при сортировке регистр (true - учитывается, false - не учитывается).
Метод Sort. Также сортирует список:
TStringList *s=new TStringList;
s->Add("Роман");
s->Add("Вася");
s->Add("Петя");
s->Sort();
ListBox1->Items->AddStrings(s); // Показываем сортированный список
delete s; // Удаляем объект