
- •Программирование для Windows
- •Литература
- •Вам необходимо знать и уметь
- •Первая программа
- •Соглашения операционной системы Windows
- •Вызовы функций Windows
- •Идентификаторы, написанные прописными буквами
- •Новые типы данных
- •Описатели
- •Венгерская нотация
- •Точка входа программы
- •Оконная процедура
- •Регистрация класса окна
- •Создание окна
- •Отображение окна
- •Цикл обработки сообщений
- •Оконная процедура
- •Обработка сообщений
- •Воспроизведение звукового файла
- •Сообщение wm_paint
- •Сообщение wm_destroy
- •Сложности программирования для Windows
- •Синхронные и асинхронные сообщения
- •Думайте о пользователе
- •Лекция3. Приступаем с изучению компонент
- •Урок 4. Класс tObjectи его потомки
- •Урок 5. Работа с кнопками
- •Урок 6. Компонент ActionList
- •Урок 7. Работаем с меню (класс tMainMenu)
- •Урок 8. Работаем с контекстным меню (класс tPopupMenu)
- •Урок 9. Компонент Edit
- •Урок 10. Работаем с двумя формами
- •Урок 11. Текст (компоненты tLabel и tStaticText)
- •Урок 12. Компонент ListBox
- •Урок 13. Компонент ComboBox
- •Урок 14. Используем api-функции
- •Урок 15. Разные MessageBox'ы
- •Урок 16. Компонент CheckBox
- •Урок 17. Компонент RadioButton
- •Урок 18. Класс tStrings
- •Урок 19. Класс tStringList
- •Урок 20. Работаем с сетью. Клиент (класс tClientSocket)
- •Урок 21. Работаем с сетью. Сервер (класс tServerSocket)
- •Урок 22. Компонент ImageList
- •Урок 23. Пересчитываем компоненты на форме
- •Урок 24. Форма - добавление методов
- •Урок 25. Форма - добавление полей
- •Урок 27. Значок на панели задач (компонент tTrayIcon)
- •Урок 28. Работаем со сплиттером
- •Урок 29. Компонент Panel
- •Урок 30. Совместное использование сплиттера и Panel'ей
- •Урок 31. Компонент HotKey
- •Урок 32. Компонент StatusBar
- •Урок 33. Установка главной формы приложения
- •Урок 34. Рисование на форме
Урок 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.