Главная страница
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.013 c
2-1253197239
d@vinchi
2009-09-17 18:20
2009.11.08
Обновление данных в DbGrid в реальном времени?


2-1253527819
Димон
2009-09-21 14:10
2009.11.08
Экслюзивное открытие файла


15-1252557641
test
2009-09-10 08:40
2009.11.08
Обратная совместимость


15-1251905091
TStas
2009-09-02 19:24
2009.11.08
"Мои документы" на другом диске


2-1253086545
Роман
2009-09-16 11:35
2009.11.08
как работать с файлом мс прожект