Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.11.20;
Скачать: CL | DM;

Вниз

Создание компонентов   Найти похожие ветки 

 
JBL   (2005-10-29 16:01) [0]

Вопрос заключается не в том как создавать компоненты для делфи, а в том как ПРОГРАММНО создать компонент на форме?
К примеру приведу TCheckBox !!! Как мне их натыкать программно????


 
begin...end ©   (2005-10-29 16:04) [1]

http://delphikingdom.com/asp/viewitem.asp?catalogid=342


 
SergProger ©   (2005-10-30 01:56) [2]

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;


 
Юрий Зотов ©   (2005-10-30 05:31) [3]

> SergProger ©   (30.10.05 01:56) [2]

Переменная NB и обработчик OnDestroy - лишние.


 
SergProger ©   (2005-10-30 12:18) [4]

А ты знаешь как это сделать? Покажи мне, пожалуйста!


 
Юрий Зотов ©   (2005-10-30 13:40) [5]

> 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 14:46) [6]


> Юрий Зотов ©   (30.10.05 13:40) [5]


А как ты потом будешь к ней обращаться? Например, уже при обработке события FormClick?


 
Юрий Зотов ©   (2005-10-30 15:01) [7]

> SergProger ©   (30.10.05 14:46) [6]

При обработке OnClick - через Sender. А если действительно требуется сохранить ссылки, то введу массив, причем введу его, как поле формы. Но уж точно не буду использовать скалярную глобальную переменную.

Вопрос к Вам: а как обращаться к контролам, если "их натыкать программно" Вашим кодом?


 
JBL   (2005-10-30 20:41) [8]


> При обработке OnClick - через Sender.

а попдробнее насчёт этого можно? и желательно в примерах, чтобы можно было изменять разные всвойства компонента по ходу работы программы...


 
sniknik ©   (2005-10-30 20:55) [9]

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;


 
Юрий Зотов ©   (2005-10-30 22:17) [10]

> JBL   (30.10.05 20:41) [8]

Прочитайте статью по ссылке в посте [1] - исчезнут все вопросы по этой теме.



Страницы: 1 вся ветка

Текущий архив: 2005.11.20;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.657 c
14-1130078980
alexsis
2005-10-23 18:49
2005.11.20
Михаил Задорнов


14-1130482664
Изобретатель
2005-10-28 10:57
2005.11.20
Подсчет контрольной суммы файлов. Новая функция!


1-1130308524
AngelOfDeath
2005-10-26 10:35
2005.11.20
Усовершенствование drag&drop


4-1126874996
Stanislav
2005-09-16 16:49
2005.11.20
Как использовать CreateThread


14-1130658164
SPeller
2005-10-30 10:42
2005.11.20
Бред?