Урок 16 Пользовательские функции.Программное создание на форме различных визуальных и невизуальных компонентов.
April 2, 2006
в колонках играет Johny Clegg & Savuka-Scatterlings Of Africa
Здраствуйте, сегодняшний урок очень важный и он вам поможет перейти на новый этап в программированиии на С++ Builder. Теперь вы будете не просто менять свойства тех или иных компонентов, но и научитесь их программно вставлять на форму.
Начнём с простого примера.Программными средствами мы создадим крнпку, при нажатии на которую будет появляться сообщение.
Создадим новый проект.два раза кликнем по форме и вобработчике событий формы onCreate напишем следующий код:
void __fastcall TForm1::FormCreate(TObject *Sender)
{
TButton *But1 = new TButton(this);//Эту строку можно заменить на TButton *But1;But1=new TButton (this);
But1->Parent=this;//это св-во указывает на то , где будет располагаться наша кнопка, потом можно будет указать Form1 или Panel1 ну и т.д.
But1->Name="Button1";//даём нашей кнопке имя
But1->Caption="МОя кнопка!";//меняем надпись на кнопке
//здесь можно менять любые св-ва, которые принадлежат TButton, то есть обычной кнопке, которую мы раньше просто перетаскивали с панели компонентов
But1->OnClick=SuperClick;//при событии onClick нашей созданной кнопки , будет выполняться функция SuperClick
}
Теперь создадим функцию SuperClick , которая будет вызываться при нажатии на кнопку.
void __fastcall TForm1::SuperClick(TObject *Sender)
{
TButton *tmp =(TButton*)Sender;// переменной(tmp) типа TButton присваиваем кнопку, которая вызвала эту функцию
//Теперь, всё, что мы будем творить с tmp, будет происходить и с нашей кнопкой
tmp->Caption="ого!";//меняем надпись на кнопке
//тут можно поменять любые св-ва кнопки
ShowMessage(tmp->Name);//показывает сообщение с именем кнопки, которая вызвала событие SuperClick
}
теперь функцию SuperClick надо объявить в файле Unit1.h, иначе компилятор будет выдавать ошибку
void __fastcall SuperClick(TObject *Sender);
Вот что должно получится.
А файл unit1.cpp, должен выглядеть так:
В следующем уроке я продолжу эту тему....
Если есть вопросы по этому материалу или вопросы в принципе, пишите на мыло,
ответы постараюсь выложить в последующих уроках.
Author of article - MA F*CKA CREW 2006
www.builderhelper.3dn.ru
builder.helper@rambler.ru