Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Создание компонентов [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


Наверх

Титульная страница Поиск, карта сайта Написать письмо