Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
70
Добавлен:
27.03.2015
Размер:
379.39 Кб
Скачать

Все компоненты объединены в библиотеку VCL и расположены на Палитре компонентов. Если компонент перенесен на форму, то в Инспекторе объектов можно редактировать его свойства и создавать обработчики событий.

Предком для всех классов библиотеки VCL служит класс TObject. Этот класс содержит методы, которые вы можете найти во всех его потомках.

Объект типа TObject передается в качестве параметра в обработчики событий.

Например, если вы разместите на форме кнопку, и затем сделаете на ней двойной щелчок для создания обработчика OnClick, то увидите заготовку для функции-обработчика:

void __fastcall TForm1::Button1Click(TObject *Sender)

{

<Здесь будем писать код обработчика>

}

Работа с кнопками

Кнопка является, наверное, самым распространенным элементом пользовательского интерфейса. В C++ Builder'е существует несколько видов кнопок. Самая простая кнопка - это компонент Button:

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

void __fastcall TForm1::Button1Click(TObject *Sender)

{

Close();

}

У кнопки есть много полезных свойств. Например, для того, чтобы кнопка оставалась всегда у правого края формы при изменении размеров последней, достаточно у свойства Anchors (привязки)поменять два подсвойства - подсвойствоakLeftустановить вfalse, аakRight - вtrue:

Теперь при изменении размеров формы кнопка останется «привязанной» к её правому нижнему краю.

Следующий тип кнопки - это BitBtn (вкладка Additional):

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

Для использования одной из стандартных картинок вы должны задать свойство Kind. Примеры возможных значений для этого свойства - bkCancel, bkNo, bkAbort. Вот так, например, будет выглядеть наша кнопка со свойством Kind равным bkAbort:

Обратите внимание, что надпись на кнопке (свойство Caption) при этом автоматически установилось в Abort (но его, разумеется, можно поменять).

Если же мы хотим задать нашу картинку для кнопки, то свойство Kind мы устанавливаем в bkCustom (значение по умолчанию), а нужную картинку загружаем в свойстве Glyph. После этого наша кнопка может выглядеть так:

За то, как наша картинка расположена относительно надписи на кнопке, отвечает свойство Layout. Возможные значения для него - blGlyphLeft (по умолчанию), blGlyphRight, blGlyphBottom и blGlyphTop.

Компонент Edit

Компонент Edit предназначен для ввода или вывода текста. Расположен он на вкладке Standard Палитры компонентов:

Основное его свойство - это Text. Оно позволяет читать и записывать некоторый текст в Edit. Обратите внимание, что это свойство имеет тип AnsiString, поэтому для преобразования строки в число нужно использовать функцию:

int a = StrToInt(Edit1->Text);

Кроме функции StrToInt() есть обратная к ней IntToStr(). Они переводят строку в целое число и целое число в строку соответственно. Кроме этой пары функций имеется пара StrToFloat() и FloatToStr(), котрые работают с вещественными числами, а также FloatToStrF(), позволяющая задать формат вывода числа.

После каждого изменения содержимого текста возникает событие Change, поэтому при необходимости можно написать обработчик данного события. Кроме того, часто используются такие события как KeyPress (возникает при вводе каждого символа), KeyDown и KeyUp (возникают при нажатии и отпускании клавиши). Так, например, можно ограничить пользовательский ввод только символами из некоторого набора:

void __fastcall TForm1::Edit1KeyPress(TObject *Sender, char &Key)

{

if (Key!='a' && Key!='b' && Key!='c')

{

Key=0; //Обнуляем символ, отменяя реакцию на его ввод

}

}

В этом примере пользователь сможет ввести только символы a, b и c.

Пояснения. 1. Параметр Key передается по ссылке, что и позволяет нам

изменить его.