![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Динамически создать три формы и для каждой свою кнопку [D7]
Сергей © (2009-09-18 18:45:00)Господа,
нужно динамически создавать три формы с кнопками. Как вызвать обработчик динамически созданной кнопки?
Сергей (2009-09-18 20:45:00) [1]ок. спасибо.
{RASkov} (2009-09-18 20:41:00) [2]> [8] Сергей (18.09.09 20:31)
поищи в яндексе или гугле "жизнь и смерть в run time" или прямо на королевстве это ищи
прямой ссылки у меня нет.
Сергей (2009-09-18 20:31:00) [3]Согласен, но как? Может есть ссылка для моего случая?
{RASkov} (2009-09-18 20:20:00) [4]> [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 19:57:00) [5]Видимо, автор имеет ввиду, что не знает, как присвоить обработчик динамически созданной кнопке
это делается приблизительно так:
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;
Сергей (2009-09-18 19:55:00) [6]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;
{RASkov} (2009-09-18 19:38:00) [7]> [3] Сергей (18.09.09 19:34)
button1 - это не имя кнопки, а имя переменной(поля)...
Что ты уже сделал в своей задаче?
Сергей (2009-09-18 19:34:00) [8]Но у ведь у кнопки еще нет имени (например button1) Как мне к ней обратиться к ней из другой функции.
clickmaker (2009-09-18 19:17:00) [9]> Как вызвать обработчик динамически созданной кнопки?
как любой метод
{RASkov} (2009-09-18 19:13:00) [10]Перечитай свой вопрос и представь как на него можно ответить... без мата.