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

Вниз

Динамически создать три формы и для каждой свою кнопку   Найти похожие ветки 

 
Сергей   (2009-09-18 18:45) [0]

Господа,
нужно динамически создавать три формы с кнопками. Как вызвать обработчик динамически созданной кнопки?


 
{RASkov} ©   (2009-09-18 19:13) [1]

Перечитай свой вопрос и представь как на него можно ответить... без мата.


 
clickmaker ©   (2009-09-18 19:17) [2]

> Как вызвать обработчик динамически созданной кнопки?

как любой метод


 
Сергей   (2009-09-18 19:34) [3]

Но у ведь у кнопки еще нет имени (например button1)  Как мне к ней обратиться к ней из другой функции.


 
{RASkov} ©   (2009-09-18 19:38) [4]

> [3] Сергей   (18.09.09 19:34)

button1 - это не имя кнопки, а имя переменной(поля)...

Что ты уже сделал в своей задаче?


 
Сергей   (2009-09-18 19:55) [5]

procedure TForm1.Button5Click(Sender: TObject);
begin
NewForm(Form1);
NewButton(?????);
end;

function NewForm(Form1:TForm):TForm;
var F:TForm;
begin
 F:=TForm.Create(Form1);
 //formnumber:= formnumber+1; ?????
 //F.Name:="NewForm" + IntToStr(formnumber);
 F.Top:=20;
 F.Left:=10;
 F.Width:=40;
 F.Height:=50;
 F.Visible:=true;
 NewForm:=F;
end;

function NewButton(?????):TButton;
var B:TButton;
begin
 B:=TButton.Create(????);
 B.Name:="Button ????;
 B.Top:=20;
 B.Left:=10;
 B.Width:=10;
 B.Height:=20;
 B.Visible:=true;
 B.Parent:=?????(form);
 NewButton:=B;
end;


 
Жорж   (2009-09-18 19:57) [6]

Видимо, автор имеет ввиду, что не знает, как присвоить обработчик динамически созданной кнопке
это делается приблизительно так:

type
  TMyForm = class(TForm)
...
 public
 procedure ButtonClick(Sender: TObject);
 end;

...

procedure TMyForm.ButtonClick(Sender: TObject);
begin
 //Sender as TButton  - это указатель на кнопку
end;
...
var MyForm: TMyForm;
 

var
 B: TButton;

B:=TButton.Create(self);
B.OnClick:=MyForm.ButtonClick;


 
{RASkov} ©   (2009-09-18 20:20) [7]

> [5] Сергей   (18.09.09 19:55)
> NewButton(?????);

дык у тебя function NewForm(Form1:TForm):TForm; - функция, а используешь ее как процедуру, почему?
вот твой код:
procedure TForm1.Button5Click(Sender: TObject);
begin
 NewButton(NewForm(Form1));
end;

но если честно общее мнение по коду(по всему коду из [5]) - переделать.


 
Сергей   (2009-09-18 20:31) [8]

Согласен, но как? Может есть ссылка для моего случая?


 
{RASkov} ©   (2009-09-18 20:41) [9]

> [8] Сергей   (18.09.09 20:31)

поищи в яндексе или гугле "жизнь и смерть в run time" или прямо на королевстве это ищи
прямой ссылки у меня нет.


 
Сергей   (2009-09-18 20:45) [10]

ок. спасибо.



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

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

Наверх




Память: 0.49 MB
Время: 0.018 c
15-1252446580
Германн
2009-09-09 01:49
2009.11.08
Не могу понять установку компонент в Д2007.


2-1253899875
tassa
2009-09-25 21:31
2009.11.08
Построение графика


9-1183543161
Dib@zol
2007-07-04 13:59
2009.11.08
Скринсейверы


2-1253690592
QAZ
2009-09-23 11:23
2009.11.08
Аналог writeln


11-1207590818
MTsv DN
2008-04-07 21:53
2009.11.08
Перехват инфы из консольки