Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.04.2012, 21:46   #1
chingiz
Пользователь Подтвердите свой е-майл
 
Аватар для chingiz
 
Регистрация: 21.05.2007
Сообщений: 88
По умолчанию список объектов под курсором

Всем привет. Имеется несколько объектов (TPaintBox) на (TPanel) - один над другим. Необходимо по щелчку мыши узнать сколько объектов под мышкой и список имен этих объектов. Как сделать? подскажите.
Уже Чему-то научился Но этого мало
chingiz вне форума Ответить с цитированием
Старый 20.04.2012, 22:48   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

С потолка:
Код:
var i:integer;  p:TPoint;
begin      Form2.Caption:='';
 for i:=0 to ComponentCount-1 do begin
  if not (Components[i] is TWinControl) then Continue;
  with Mouse, TWinControl(Components[i]) do begin
   p:=ClientToScreen(Point(Left,Top));
   if
    (CursorPos.X>=p.X)and(CursorPos.Y>=p.Y) and
    (CursorPos.X<=(p.X+Width))and(CursorPos.Y<=(p.Y+Height)) then
   begin
    компонент с именем Name под мышкой
   end
  end;
 end;
end;
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 21.04.2012, 20:22   #3
chingiz
Пользователь Подтвердите свой е-майл
 
Аватар для chingiz
 
Регистрация: 21.05.2007
Сообщений: 88
По умолчанию

Спасибо Stilet помогло, все работает.

Код:
var i:integer;  p:TPoint; myCursorPos: TPoint;
begin      Form2.Caption:='';
 myCursorPos:= Mouse.CursorPos; //(достаточно одного раза)
 for i:=0 to ComponentCount-1 do begin
  if not (Components[i] is TWinControl) then Continue;
  with TWinControl(Components[i]) do begin
   p:=ClientToScreen(Point(0,0)); //p:=ClientToScreen(Point(Left,Top));
   if
    (myCursorPos.X>=p.X)and(myCursorPos.Y>=p.Y) and
    (myCursorPos.X<=(p.X+Width))and(myCursorPos.Y<=(p.Y+Height)) then
   begin
    компонент с именем Name под мышкой
   end
  end;
 end;
end;
Уже Чему-то научился Но этого мало
chingiz вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
удаление строки под курсором!! daredevilok Общие вопросы C/C++ 1 11.11.2011 13:59
Определение объекта под курсором woodsnake Qt и кроссплатформенное программирование С/С++ 6 15.08.2011 13:34
Слово под курсором Vikenty Общие вопросы Delphi 4 12.04.2011 23:58
Получение слова под курсором. lazutov Win Api 4 15.08.2008 17:10
окно под курсором mrandrey Win Api 1 11.05.2007 18:30