Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2005.11.20;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.043 c
14-1130253160
LordOfRock
2005-10-25 19:12
2005.11.20
TheBAT!


2-1130670653
тт
2005-10-30 14:10
2005.11.20
Как узнать размер объекта в сантиметрах?


2-1130438398
Mr.jack
2005-10-27 22:39
2005.11.20
QReport албомный


14-1130834721
Сергей1981
2005-11-01 11:45
2005.11.20
DVD-ROM книжного вида


10-1106138303
Елена
2005-01-19 15:38
2005.11.20
Как определить позицию на листе Word





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский