Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции.doc
Скачиваний:
25
Добавлен:
14.02.2015
Размер:
641.54 Кб
Скачать

Урок 17. Компонент RadioButton

Компонент RadioButton расположен на вкладке Standard Палитры компонентов:

Этот компонент предназначен для выбора между несколькими взаимоисключающими вариантами. Давайте для примера создадим форму с двумя группами радиокнопок на ней. В первой группе будет две радиокнопки. Эта группа будет отвечать за выбор противника в некотрой воображаемой компьютерной игре (человек или компьютер). Во второй группе будет три радиокнопки. Она будет отвечать за уровень сложности игры (легкий, нормальный и сложный).

Сначала расположите на форме 2 радиокнопки. Свойство Captionдля них установите в "человек" и "компьютер". Для создания второй группы расположите на форме компонетGroupBoxс вкладкиStandardПалитры компонентов:

Для свойства CaptionкомпонетаGroupBoxустановите значение "Уровень". Внутри этого компонента расположите три радиокнопки. Измените их свойствоCaptionна "легкий", "нормальный" и "сложный" соответственно. Расположите их именно на компонентеGroupBox. То, что вы их расположили правильно, можно заметить по окнуObjectTreeView:

Если вы их расположили неправильно, то просто перетащите их мышкой в нужное место окна ObjectTreeView.

Теперь добавим код, который будет менять заголовок окна в зависимости от выбранных радиокнопок. Для этого ледаем двойной щелчок на первой радиокнопке и в полученной заготовке пишем следующиий код:

void __fastcall TForm1::RadioButton1Click(TObject *Sender)

{

String s1, s2;

if(RadioButton1->Checked){

s1="Человек";

}

if(RadioButton2->Checked){

s1="Компьютер";

}

if(RadioButton3->Checked){

s2="легкий";

}

if(RadioButton4->Checked){

s2="нормальный";

}

if(RadioButton5->Checked){

s2="сложный";

}

Form1->Caption=s1+" | "+s2;

}

Смысл кода понятен - в две переменные s1 иs2 мы записываем строки в зависимости от того, какая радиокнопка выбрана, после чего записываемs1 иs2 в заголовок формы.

Этот код без изменений надо внести в обработчики щелчка каждой радиокнопки (вообще говоря правильнее было поступать не так, а сделать отдельную функцию и вызывать ее в обработчике щелчка каждой радиокнопки).

Теперь при запуске программы форма будет получать соответствующий заголовок после выбора той или иной радиокнопки:

Вот еще несколько свойство компонента RadioButton:

Свойство Checked. Определяет, выбрана ли соответствующая радиокнопка (т. е. есть точка рядом с ней). Это свойство может быть установлено вtrueтолько для одной радиокнопки в группе.

Свойство Alignment. Определяет, где появляется надпись относительно радиокнопки - слева (taLeftJustify), справа (taRightJustify)

Урок 18. Класс tStrings

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

У многих компонентов есть стойсто типа TStrings. Например, у ListBox'а есть свойство Items типа TStrings (см. урок 12).

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

ListBox1->Items->Strings[0]; //Пример для ListBox'а.

Для добавления строки служит метод Add:

ListBox1->Items->Add("Roman"); //Пример для ListBox'а.

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

ListBox1->Items->Insert(1,"Ira");

В этом примере (он, как и все примеры в этом уроке, написан для ListBox'а) мы добавляем во второе место строку "Ira" (помните, что нумерация идет с нуля).

Свойство Count. Возвращает количество строк. Пример использования:

k=ListBox1->Items->Count;

Метод Clear предназначен для удаления всех строк из компонента. Вот пример его использования:

ListBox1->Items->Clear();

Для удаления же отдельного элемента с номером i служит метод Delete:

ListBox1->Items->Delete(1);

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

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

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