Главная страница
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.055 c
15-1140476564
Германн
2006-02-21 02:02
2006.03.19
Потрепаться vs Прочее


15-1140619727
ArtemESC
2006-02-22 17:48
2006.03.19
ScanCode => Ascii


3-1138164463
TimScorp
2006-01-25 07:47
2006.03.19
Проверка условий в БД.


15-1140807985
Knight
2006-02-24 22:06
2006.03.19
У кого есть ссылка на прикол со средневековой "техподдержкой"?


3-1138593277
LostDelpher
2006-01-30 06:54
2006.03.19
Есть ли средство типа SQL Monitor - только для ODBC