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

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

Как программно создать обработчик события OnClick [D7, WinXP]


kilop ©   (2007-02-11 20:06:00) 

Я программно создаю TImage, как программно создать обработчик события OnClick для TImage?


RASkov   (2007-02-11 20:31:00) [1]

> for i:=1 to 10 do
> Begin
> Im[i]:=TImage.Create(self);
> Im[i].Tag:=i;
> Im[i].OnClick:=ImageClick;
> Im[3].OnClick(Im[i]);
> end;

ух... поправлю

for i:=1 to 10 do
Begin
Im[i]:=TImage.Create(self);
Im[i].Tag:=i;
Im[i].OnClick:=ImageClick;
ImageClick(Im[i]);
end;

procedure ImageClick(Sender: TObject);
begin
ShowMessage(IntToStr(TImage(Sender).Tag));
end;


RASkov   (2007-02-11 20:25:00) [2]

> Im[i].OnClick:=ImageClick(i);
> end;
>
> Короче надо параметр передать!!!

Кроме как Sender'а ты туда ничего не передашь.

for i:=1 to 10 do
Begin
Im[i]:=TImage.Create(self);
Im[i].Tag:=i;
Im[i].OnClick:=ImageClick;
Im[3].OnClick(Im[i]);
end;

procedure ImageClick(Sender: TObject);
begin
 ShowMessage(IntToStr(TImage(Sender).Tag));
end;


kilop   (2007-02-11 20:24:00) [3]

Спасибо!!!!!!!!!!!!!!!!!!!!!!!!!!!!!


trubin   (2007-02-11 20:23:00) [4]


> Как в Sender я узнаю что это нужная мне TImage?


ifSender = Im[i] then
...


kilop   (2007-02-11 20:22:00) [5]

Как в Sender я узнаю что это нужная мне TImage?


trubin   (2007-02-11 20:22:00) [6]

В "Королевстве Дельфи" есть статья "Жизнь и смерть в режиме run-time", читай, там все подробно описано.


kilop   (2007-02-11 20:19:00) [7]

Мне надо типо того
for i:=1 to 10 do
Begin
 Im[i]:=TImage.Create(self);
 Im[i].OnClick:=ImageClick(i);
end;


Короче надо параметр передать!!!


trubin   (2007-02-11 20:19:00) [8]


> MyImageClick - метод класса.

Это будет процедурный тип TNotifyEvent, в его параметре "Sender" будет передан нужный тебе TImage


kilop   (2007-02-11 20:13:00) [9]

А если я много создам TImage то как я узнаю на какую я нажал?


RASkov   (2007-02-11 20:12:00) [10]

> Я программно создаю

var Im: TImage;
....
Im:=TImage.Create(self);
Im.OnClick:=MyImageClick;
MyImageClick - метод класса.


RASkov   (2007-02-11 20:11:00) [11]

Image1.OnClick:=MyImageClick;
MyImageClick - метод класса.


Наверх

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