![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Создание компонентов [D7, WinXP]
JBL © (2005-10-29 16:01:00)Вопрос заключается не в том как создавать компоненты для делфи, а в том как ПРОГРАММНО создать компонент на форме?
К примеру приведу TCheckBox !!! Как мне их натыкать программно????
Юрий Зотов (2005-10-30 22:17:00) [1]> JBL (30.10.05 20:41) [8]
Прочитайте статью по ссылке в посте [1] - исчезнут все вопросы по этой теме.
sniknik (2005-10-30 20:55:00) [2]procedure TForm1.ButtonClick(Sender: TObject);
begin
TButton(Sender).Font.Style:= [fsBold];
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
with TButton.Create(Self) do
begin
Parent := Self;
SetBounds(100, 100, Width, Height);
Caption := 'New Button';
OnClick:= ButtonClick;
end
end;
JBL (2005-10-30 20:41:00) [3]
> При обработке OnClick - через Sender.
а попдробнее насчёт этого можно? и желательно в примерах, чтобы можно было изменять разные всвойства компонента по ходу работы программы...
Юрий Зотов (2005-10-30 15:01:00) [4]> SergProger © (30.10.05 14:46) [6]
При обработке OnClick - через Sender. А если действительно требуется сохранить ссылки, то введу массив, причем введу его, как поле формы. Но уж точно не буду использовать скалярную глобальную переменную.
Вопрос к Вам: а как обращаться к контролам, если "их натыкать программно" Вашим кодом?
SergProger (2005-10-30 14:46:00) [5]
> Юрий Зотов © (30.10.05 13:40) [5]
А как ты потом будешь к ней обращаться? Например, уже при обработке события FormClick?
Юрий Зотов (2005-10-30 13:40:00) [6]> SergProger © (30.10.05 12:18) [4]
Переменная NB не нужна, потому что существует with:
procedure TForm1.FormCreate(Sender: TObject);
begin
with TButton.Create(Self) do
begin
Parent := Self;
SetBounds(100, 100, Width, Height);
Caption := 'New Button';
end
end;
А обработчик OnDestroy не нужен, потому что владельцем (Owner) кнопки мы сделали форму, поэтому при уничтожении формы она уничтожит кнопку сама, без нашего участия.
SergProger (2005-10-30 12:18:00) [7]А ты знаешь как это сделать? Покажи мне, пожалуйста!
Юрий Зотов (2005-10-30 05:31:00) [8]> SergProger © (30.10.05 01:56) [2]
Переменная NB и обработчик OnDestroy - лишние.
SergProger (2005-10-30 01:56:00) [9]var
Form1: TForm1;
NB: TButton;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
begin
NB:=TButton.Create(Self);
NB.Parent:=Self;
NB.Left:=100;
NB.Top:=100;
NB.Caption:='New Button';
end;
procedure TForm1.FormDestroy(Sender: TObject);
begin
NB.Free;
end;
begin...end (2005-10-29 16:04:00) [10]http://delphikingdom.com/asp/viewitem.asp?catalogid=342