Главная страница
    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.044 c
2-1130757080
kami
2005-10-31 14:11
2005.11.20
Службы: узнать "Вход от имени"


14-1130442453
DiamondShark
2005-10-27 23:47
2005.11.20
Приближается последнее воскресенье октября.


8-1119617498
MixAnOL
2005-06-24 16:51
2005.11.20
Проигрывание музыки другим приложением


2-1130483841
Dron_
2005-10-28 11:17
2005.11.20
Удаление символов из строки


2-1130604470
Win_sido
2005-10-29 20:47
2005.11.20
Delfi 7





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский