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

Вниз

как определить по какому из объектов был нанесен удар мышью?   Найти похожие ветки 

 
Anton :-))   (2006-03-01 07:57) [0]

Добрый день! Вопрос в следующем:
в run-time добавляется некоторое количество объектов в форму,
как определить в процессе работы программы, по какому из этих объектов был нанесен удар мышью?

//Действия, при нажатии на любую из созданных label:
procedure tform1.Label_Click(sender:tobject);
begin
 beep;
end;

//Вставляем в panel1 n-ное количество label и устанавливаем некоторые их свойства:
for i:=1 to n do
 begin
   msg_label[i]:=tlabel.Create(form1);
   panel1.InsertControl(msg_label[i]);
   msg_label[i].Caption:="Caption";
   msg_label[i].Left:=4;
   msg_label[i].Top:=2;
   msg_label[i].Height:=20;
   msg_label[i].Width:=100;
   msg_label[i].OnClick:=form1.Label_Click; //обработка удара мыши по label
 end;

Заранее спасибо!


 
ЮЮ ©   (2006-03-01 08:01) [1]

sender - это и есть тот объект.

procedure tform1.Label_Click(sender:tobject);
begin
TLabel(Sender).Caption := "Меня ударили мышью";
end;


 
ЮЮ ©   (2006-03-01 08:04) [2]

З.Ы. зачем n экземпляров, расположенных в одном и том же месте? ударить сможешь только по верхней


 
Anton :-))   (2006-03-01 08:21) [3]

Да, забыл  msg_label[i].Top домножить на какой-то коэффициент и i (индекс цикла).

Попробовал предложенный немного выше вариант, действительно все получается. Спасибо.

А как наиболее просто определить по какой имненно (по счтеу) label щелбанули? Т.е. получить порядковый номер избитой label...


 
Mikhail V ©   (2006-03-01 08:28) [4]

...
msg_label[i].Parent := Self;
msg_label[i]. Tag := i;
...
TLabel(Sender).Caption := "Меня ударили мышью " + IntToStr(Tag);


 
Anton :-))   (2006-03-01 08:38) [5]

Супер! Это как раз то, что доктор прописал! Огромное спасибо.
И с наступлением весны всех, кто не жалеет времени, помагая новичкам!



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

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

Наверх




Память: 0.48 MB
Время: 0.047 c
3-1138133335
ANB
2006-01-24 23:08
2006.03.19
Как отсортировать дерево в оракле ?


6-1132550273
vitek
2005-11-21 08:17
2006.03.19
Как перехватить сообщение по сети


15-1140939418
Тульский
2006-02-26 10:36
2006.03.19
Опрос


2-1141013273
walkernet
2006-02-27 07:07
2006.03.19
вопрос по LMD Tools 2003


6-1134137180
skiermax
2005-12-09 17:06
2006.03.19
Exchange Server 2000&MAPI