![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как сделать процедуру OnButtonClick на клонированную кнопку [D5]
Nait © (2006-01-26 13:11:00)Допустим я наклонировал 10 кнопок:
b:array[1..10] of Tbutton;
begin
for i:=1 to 10 do begin
b[i]:=Tbutton.create(button1);
b[i].parent:=form1;
end;
И теперь хочу сделать процедуру, чтобы при нажатии на любую из них, она, допустим, сдвигалась влево на 5 пикселей.
Такое вообще возможно?:)
Заранее благодарен
Digitman (2006-01-26 13:30:00) [1]
> Да, но тогда в процедуре form1.onButton1Click если я пишу
> button 1
Никто не заставляет тебя писать именно так.
Есть параметр Sender, он и определяет однозначно, какой контрол возбудил событие.
with TButton(Sender) do Сдвинуть.
Гаврила (2006-01-26 13:29:00) [2]procedure TForm1.onButton1Click(Sender: TObject);
var
Btn: TButton;
begin
Btn:=(Sender as TButton);
Btn.Left:=Btn.Left - 5
end;
begin...end (2006-01-26 13:28:00) [3]> Nait (26.01.06 13:26) [2]
> button1.left:=button1.left-5
with Sender as TButton do
Left := Left - 5
Nait (2006-01-26 13:26:00) [4]Да, но тогда в процедуре form1.onButton1Click если я пишу button1.left:=button1.left-5 то двигается именно button1, а не та кнопка, на которую я нажал. А как сделать связь с b[i] ? Что-то типа this.left-=5;
Гаврила (2006-01-26 13:15:00) [5]b[i].OnClick:=Button1Click;