Главная страница
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.057 c
2-1141400208
Ded22
2006-03-03 18:36
2006.03.19
Поиск по Имени и Фамилии


2-1141566700
ctudent
2006-03-05 16:51
2006.03.19
Помогите разобраться с ошибкой!


1-1139819308
Maverick
2006-02-13 11:28
2006.03.19
Сохранение пользовательских настроек


15-1140695598
vidiv
2006-02-23 14:53
2006.03.19
Зацените работу


1-1139925539
BFG9k
2006-02-14 16:58
2006.03.19
Событие с несколькими обработчиками