Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как сделать процедуру 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;


Наверх

Титульная страница Поиск, карта сайта Написать письмо