Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

ControlAtPos [D5, Win2k, WinXP]


serjkp ©   (2005-09-08 16:36:00) 

Уважаемые, подскажите как быть. есть на форме куча всяких компонентов. на панелях кнопки, на тулбарах и т.д.
требуется узнать имя компонента под курсором. использую ControlAtPos получилось только узнать имя тех которые лежат непосредственно на форме.
всем спасибо...


jack128   (2005-09-08 18:11:00) [1]

Обычно подобные алгоритмы рекурсивно реализуются

function ControlAtPos(AControl: TWinControl; const Pos: TPoint; AllowDisabled,
 AllowWinControls: Boolean): TControl;
var
 Temp: TControl;
 TempPos: TPoint;
begin
 Result := AControl.ControlAtPos(Pos, AllowDisabled, AllowWinControls);
 if Result is TWinControl then
 begin
   TempPos.X := Pos.X - Result.Left;
   TempPos.Y := Pos.Y - Result.Top;
   Temp := ControlAtPos(TWinControl(Result), TempPos, AllowDisabled, AllowWinControls);
   if Assigned(Temp) then
     Result := Temp
 end;
end;


serjkp   (2005-09-08 18:01:00) [2]

пасибочки, еще получилось с FindDragTarget...


Игорь Шевченко   (2005-09-08 17:34:00) [3]

FindVCLWindow


Signate   (2005-09-08 17:08:00) [4]

Я не знаю поможет или нет, но можно узнавать hwnd под курсором, а потом в цикле искать компонент с данный hwnd и что то уже делать... например узнать имя


TUser   (2005-09-08 17:07:00) [5]

Вызови метод ControlAtPos для того контрла, который был возвращен в первый раз. И т.д.


serjkp   (2005-09-08 17:00:00) [6]

идея в голове крутится а зацепиться не могу. получается использую ControlAtPos на форме, а при переходе на компонент нужно уже на нем, но вот как этот момент реализовать не знаю.


MBo   (2005-09-08 16:47:00) [7]

А не обдумал, почему так получается?
Ты ведь используешь метод ControlAtPos какого компонента?


Наверх

Титульная страница Поиск, карта сайта Написать письмо