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

Урок 23. Пересчитываем компоненты на форме

На этом уроке мы с вами посмотрим, как можно перечислить все элементы на форме. Это может оказаться полезным для разных задач - например, вы хотите одновременно изменить положение всех элементов формы просто определить, есть ли среди элементов элемент с определенными свойствами.

Для нашей задачи мы будем использовать свойство Controlsформы. Это свойство представляет из себя набор всех дочерних элементов формы - кнопок,edit'ов,label'ов и т. п. Каждый элемент этого набора имеет типTControl(родительский тип для всех элементов).

Вот пример кода, который сдвигает все элементы на форме к левому краю формы:

void __fastcall TForm1::Button1Click(TObject *Sender)

{

//Переменная для элемента формы

TControl*child;

for (int i = 0; i < Form1->ControlCount; i++){

//Берем очередной элемент

child=Form1->Controls[i];

//Сдвигаем очередной элемент

child->Left=10;

}

}

Как вы видите, мы получаем i-элемент на форме просто указав его индекс:

...

Form1->Controls[i];

...

Нумерация при этом, как и следовало ожидать, идет с нуля. Для получения же общего количества элементов мы используем свойство ControlCount:

...

i < Form1->ControlCount;

...

Урок 24. Форма - добавление методов

У формы могут быть собственные методы. Для их быстрого добавления сделайте следующие действия:

В дереве классов (оно располагается слева от окна кода) выберите нужный класс формы и щелкните на нем правой кнопкой мыши для показа контекстного меню. В контекстном меню выберите NewMethod:

В появившемся диалоговом окне AddMethodзадайте имя метода, возможные параметры, тип возвращаемого значения, модификаторы доступа (private,publicи т. п.) и другие характеристики:

Нажимите на OKдля закрытия окна или наApplyдля добавления еще одного метода.Созданная нами заготовка для метода появится в дереве классов:

Все. Теперь ослось только написать код метода в созданной заготовке.

Урок 25. Форма - добавление полей

Поля - это внутрение переменные класса. Для добавления поля надо щелкнуть правой кнопкой мыши на имени формы в дереве классов (слева от окна кода) и в появившемся контекстном меню выбрать New Field:

В появивщемся окне Add Field задаем имя поля, тип и область видимости:

При необходимости не закрывая это окно можно добавить несколько переменных (полей) как в класс одной формы, так и в несколько. Для этого надо нажать на кнопку Apply. При этом в классе сразу создастся переменная заданного типа с заданным именем и в диалоговом окне можно будет задавать следующую переменную.

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

Урок 26. Форма - добавление свойств

Для добавления свойства щелкаем на классе правой кнопкой мыши и появившемся контекстном меню выбираем NewProperty:

Появится окно AddProperty. В этом окне в можете задать свойство разным способом. При любом способе мы задаем имя свойства и его тип.

Способ первый - можно создать свойство, привязанное к определенному полю. Например, к полю num, заданному на прошлом уроке. Для этого мы должны в нашем диалоговом окне выбрать название поляnumвcombobox'ахReadsиWrites():

После нажатья на OKнаше свойство появится на в дереве классов:

Второй способ - не использовать для нашего свойства готовое поле, а позволить C++Builder'у автоматически создать новое. Для этого мы после задания имени и типа нового свойства должны поставить галочкуcreatefield:

После нажатия на OKновое свойство и соответствующее ему поле появятся в классе нашей формы:

__published:

int FData; // User declarations

public:

...

__property int Data = { read=FData, write=FData };