Add ListBox1ItemsAdd("Roman") Примердля ListBox'а. Для вставки строки в определенное место служит метод Insert
Скачать 0.59 Mb.
|
C++ Builder. Урок 16. Компонент CheckBoxКомпонент CheckBox распологается на вкладке Standard Палитры компонентов. Этот компонет предназначен для включения/выключения некоторого параметра. Например, на форме можно расположить CheckBox для отметки того, получены деньги за некоторый заказ или нет, или, например, для включения/выключения звуков в настройках некоторой программы. Расположите этот компонент на форме. Для него основное свойство - это State. Именно оно и отвечает за внешний вид нашего CheckBox'а. Это свойство может принимать одно из трех значений: cbChecked (галочка стоит), cbUnchecked (галочка не стоит) и cbGrayed (CheckBox находится в неопределенном состоянии). Обратите внимение, что у CheckBox'а может быть именно три состояния. Третье состояние CheckBox может иметь, например, при показе стиля выделенного текста в некотором текстовом редакторе - если часть текста, например, подчеркнута, а часть нет, то логично, чтобы CheckBox имел стиль cbGrayed. Если щелкать на компоненте, то он будет менять два своих состояния (с галочкой и без). Если же мы хотим, чтобы при щелчке он циклически менял три своих состояния, то необходимо установить его свойство AllowGrayed в true. Состояние компонента можно получить через его свойство Checked логического типа. Если оно равно true, то TCheckBox отмечен, если false - то не отмечен. За надпись, расположенную рядом с квадратиком, отвечает свойство Caption. Основное событие для компонента CheckBox - это OnClick. Оно, естественно, возникает при щелчке. Для добавления заготовки обработчика для этого события достаточно просто сделать на CheckBox'е двойной щелчок. Вот так, например, можно в заголовок формы вывести информацию о состоянии CheckBox'а: void __fastcall TForm1::CheckBox1Click(TObject *Sender) { if(CheckBox1->Checked) { Form1->Caption="cheched"; } else { Form1->Caption="uncheched"; } } C++ Builder. Урок 17. Компонент RadioButtonКомпонент RadioButton расположен на вкладке Standard Палитры компонентов. Этот компонент предназначен для выбора между несколькими взаимоисключающими вариантами. Давайте для примера создадим форму с двумя группами радиокнопок на ней. В первой группе будет две радиокнопки. Эта группа будет отвечать за выбор противника в некотрой воображаемой компьютерной игре (человек или компьютер). Во второй группе будет три радиокнопки. Она будет отвечать за уровень сложности игры (легкий, нормальный и сложный). Сначала расположите на форме 2 радиокнопки. Свойство Caption для них установите в "человек" и "компьютер". Для создания второй группы расположите на форме компонет GroupBox с вкладки Standard Палитры компонентов. Для свойства Caption компонета GroupBox установите значение "Уровень". Внутри этого компонента расположите три радиокнопки. Измените их свойство Caption на "легкий", "нормальный" и "сложный" соответственно. Расположите их именно на компоненте GroupBox. То, что вы их расположили правильно, можно заметить по окну Object TreeView. Если вы их расположили неправильно, то просто перетащите их мышкой в нужное место окна Object TreeView. Теперь добавим код, который будет менять заголовок окна в зависимости от выбранных радиокнопок. Для этого ледаем двойной щелчок на первой радиокнопке и в полученной заготовке пишем следующиий код: 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) C++ Builder. Урок 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. Наверх C++ Builder. Урок 19. Класс TStringList Класс TStringList предназначен для хранения набора строк. Он является непосредственным потомком класса TStrings. Как потомок, он наследует все методы и свойства своего родителя. В отличие от своего родителя класс TStringList позволяет создавать свои экземпляры. Кроме того, этот класс имеет собственные свойства и методы, самые важные из которых перечислены ниже: Свойство Sorted логического типа. Если установлено в true, то список автоматически сортируется, если false, то не сортируется. Пример использования: TStringList *s=new TStringList; s->Sorted=true; s->Add("Roman"); s->Add("Igor"); s->Add("Olga"); //Показываемсписокв ListBox'е. ListBox1->Items->AddStrings(s); В ListBox выведется отсортированный список ("Igor", "Olga", "Roman"). Свойство Duplicates. Свойство перечисляемого типа, если установлено в dupIgnore, то добавить повторяющуюся стороку нельзя (но при этом старые повторяющиеся строки сохраняются), dupAccept - можно добавлять повторяющиеся строки, dupError - при попытке добавить повторяющуюся строку генерируется ошибка EStringListError. Это свойство игнорируется, если список не отсортирован. Свойство CaseSensitive. Свойство логического типа, определяющее, учитывается ли при сортировке регистр (true - учитывается, false - не учитывается). Метод Sort. Сортирует список. Пример использования: TStringList *s=new TStringList; s->Add("Roman"); s->Add("Igor"); s->Add("Olga"); s->Sort(); //Показываем список в ListBox'е. ListBox1->Items->AddStrings(s); В ListBox выведется отсортированный список ("Igor", "Olga", "Roman"). |