Я уже писал о динамическом создании компонентов для Delphi (часть 1, часть 2) и для C#, вот теперь дошел черед и до C Builder.
Сейчас рассмотрим простой код для создания одного компонента:
Описание:
TButton *new_btn; Объявляем переменную в виде ссылки.
new_btn = new TButton (Form1); Создаем начинку.
new_btn->Parent = Panel1; Указываем родительский компонент
new_btn->Top = 5; Задаем отступ сверху.
new_btn->Left = 5; Задаем отступ слева.
Выше приведен минимальный список параметров для отображения.
new_btn->Caption = "одна кнопа"; Текст на кнопе.
Код для создания массива компонентов:
Описание:
TButton *array_btn[5]; Создаем массив, который будет хранить информацию о наших кнопках
Далее по аналогии с первым примером:
array_btn = new TButton (Form1);
array_btn->Parent = Panel1;
array_btn->Top = 5 (24 * i);
array_btn->Left = 80;
array_btn->Caption = IntToStr(i) "-я кнопа";
Удаление элементов происходит с помощью процедуры Free().
Для одного элемента:
Для массива:
Любой из элементов массива может быть освобожден отдельно от остальных.
Вот так это выглядит:
Скачать пример для CodeGear C Builder 2007:
[attachment=3]
md5:29C63131F6A168D4338275E3136D5B78
Как видите все просто. По возникающим вопросам, желательно дублировать как комментарий к совету, так и личным сообщение мне.С уважением, Сургай Владимир.
Сейчас рассмотрим простой код для создания одного компонента:
//---------------------------------------------------------------------------
#include
#pragma hdrstop
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma link "cspin"
#pragma resource "*.dfm"
TForm1 *Form1;
TButton *new_btn;
TButton *array_btn[5];
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
new_btn = new TButton (Form1);
new_btn->Parent = Panel1;
new_btn->Top = 5;
new_btn->Left = 5;
new_btn->Caption = "одна кнопа";
}
#include
#pragma hdrstop
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma link "cspin"
#pragma resource "*.dfm"
TForm1 *Form1;
TButton *new_btn;
TButton *array_btn[5];
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
new_btn = new TButton (Form1);
new_btn->Parent = Panel1;
new_btn->Top = 5;
new_btn->Left = 5;
new_btn->Caption = "одна кнопа";
}
Описание:
TButton *new_btn; Объявляем переменную в виде ссылки.
new_btn = new TButton (Form1); Создаем начинку.
new_btn->Parent = Panel1; Указываем родительский компонент
new_btn->Top = 5; Задаем отступ сверху.
new_btn->Left = 5; Задаем отступ слева.
Выше приведен минимальный список параметров для отображения.
new_btn->Caption = "одна кнопа"; Текст на кнопе.
Код для создания массива компонентов:
//---------------------------------------------------------------------------
#include
#pragma hdrstop
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma link "cspin"
#pragma resource "*.dfm"
TForm1 *Form1;
TButton *new_btn;
TButton *array_btn[5];
//---------------------------------------------------------------------------
* * *
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
for(int i = 0; i < 5; i )
{
array_btn[i] = new TButton (Form1);
array_btn[i]->Parent = Panel1;
array_btn[i]->Top = 5 (24 * i);
array_btn[i]->Left = 80;
array_btn[i]->Caption = IntToStr(i) "-я кнопа";
}
#include
#pragma hdrstop
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma link "cspin"
#pragma resource "*.dfm"
TForm1 *Form1;
TButton *new_btn;
TButton *array_btn[5];
//---------------------------------------------------------------------------
* * *
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
for(int i = 0; i < 5; i )
{
array_btn[i] = new TButton (Form1);
array_btn[i]->Parent = Panel1;
array_btn[i]->Top = 5 (24 * i);
array_btn[i]->Left = 80;
array_btn[i]->Caption = IntToStr(i) "-я кнопа";
}
Описание:
TButton *array_btn[5]; Создаем массив, который будет хранить информацию о наших кнопках
Далее по аналогии с первым примером:
array_btn = new TButton (Form1);
array_btn->Parent = Panel1;
array_btn->Top = 5 (24 * i);
array_btn->Left = 80;
array_btn->Caption = IntToStr(i) "-я кнопа";
Удаление элементов происходит с помощью процедуры Free().
Для одного элемента:
new_btn->Free();
Для массива:
for(int i=0;i<5;i )array_btn[i]->Free();
Любой из элементов массива может быть освобожден отдельно от остальных.
Вот так это выглядит:
Скачать пример для CodeGear C Builder 2007:
[attachment=3]
md5:29C63131F6A168D4338275E3136D5B78
Как видите все просто. По возникающим вопросам, желательно дублировать как комментарий к совету, так и личным сообщение мне.С уважением, Сургай Владимир.