Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.05.11;
Скачать: CL | DM;

Вниз

Определить источник события   Найти похожие ветки 

 
arinyshka   (2008-04-14 11:15) [0]

мне нужно обработать однотипное событие Click для 15 image на форме. Собственно, нужно узнать, кто из 15 был источником события и взять его tag.  Не хочется перебирать как нибудь так:

for i:=1 to 15 do
begin
   s:="Image" +inttostr(i);
  FImage := SetPayAddFrm.FindComponent(s)as TImage;
  if Assigned(FImage) then ...

Искать источник циклом мне кажется неверным... Есть другой способ?


 
Игорь Шевченко ©   (2008-04-14 11:19) [1]


> Собственно, нужно узнать, кто из 15 был источником события


Sender очевидно


 
Palladin ©   (2008-04-14 11:19) [2]

а Sender для кого сделан?


 
arinyshka   (2008-04-14 11:21) [3]

а как проверить сендер? все равно циклом перебирать все имаги и смотреть, кто из них сендер?


 
Palladin ©   (2008-04-14 11:23) [4]

Sender это объект того компонента, по которому щелкнули мышкой, простым приведением типов ты получишь этот имаг... иди читай матчасть


 
arinyshka   (2008-04-14 11:30) [5]

FImage := (sender as TImage);
 if Assigned(FImage) then
            ImageTag:= (FImage as TImage).Tag;

Работает :) Спасибо :) Не сердитесь на глупую ;)


 
<>   (2008-04-14 11:32) [6]

Если картинки создавать в ручную, то вот так:


type
 TForm1 = class(TForm)
   Image1: TImage;
   Image2: TImage;
   procedure FormCreate(Sender: TObject);
   procedure ImageClick(Sender: TObject);
 private    { Private declarations }
 public     { Public declarations }
 end;

...

procedure TForm1.ImageClick(Sender: TObject);
begin
 Caption:=IntToStr(( Sender as TImage).tag);
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  Image1.OnClick:=ImageClick;
  Image2.OnClick:=ImageClick;
  Image1.Tag:=1;
  Image2.Tag:=2;
end;



 
Anatoly Podgoretsky ©   (2008-04-14 11:51) [7]

> arinyshka  (14.04.2008 11:30:05)  [5]

А не видать обработки, может и не надо никаких фокусов?
Может просто  (sender as TImage).действие


 
arinyshka   (2008-04-14 12:27) [8]


> А не видать обработки, может и не надо никаких фокусов?
> Может просто  (sender as TImage).действие

В смысле? Я у обретенного имага проверяю тег и хинт :). Если они меня устраивают (задаются программно в другом куске) - то одно действие, если нет - другое...
В конечном итоге по щелчку на имаге, при условии, что он не занят (хинт), я привязываю его к записи в таблице БД (тег - id картинки). Картинки тоже лежат в БД, в другой таблице...


 
Kolan ©   (2008-04-14 12:29) [9]

Удалено модератором
Примечание: Флудить завязываем


 
Kolan ©   (2008-04-14 12:30) [10]

> Картинки тоже лежат в БД, в другой таблице&#133

DBImage?


 
arinyshka   (2008-04-14 12:48) [11]

Удалено модератором



Страницы: 1 вся ветка

Текущий архив: 2008.05.11;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.017 c
15-1206724373
tesseract
2008-03-28 20:12
2008.05.11
Быстрый tiling


15-1206691067
Миша
2008-03-28 10:57
2008.05.11
Помогите разобраться с Html


4-1188108766
Bora.ru
2007-08-26 10:12
2008.05.11
Убрать значок процесса из TaskBar


15-1206720548
Галинка
2008-03-28 19:09
2008.05.11
Можно ли скопировать файл...


2-1207822060
Stepper
2008-04-10 14:07
2008.05.11
Как правельно складывать строки?