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

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

TreeView в чужом приложении [D7, Win2k]


DelphiNew ©   (2004-07-08 13:31:00) 

Уважаемые мастера помогите с таким вопросом: в дочернем окне чужого приложения есть компонент TreeView мне нужно зная название элемента в этом компоненте выделить его. Как можно это сделать, какая информация мне для этого понадобится, есть ли компонеты для работы с чужими приложениями из своего.
P.S Приложение написано на Delphi


bar   (2004-07-09 11:09:00) [1]

По имени окна и его классу (класс TTreeView в делфи). Правда имена часто пустыми бывают толко классы. Узнать конкретные имена можно например с помощью Spy++ (Highlight). Зная имя ищешь с помощью
EnumChildWindows,FindWindowEx

Компонентов для работы с чужими приложениями встречал но не то что дебе нуно. "Работа" - слово большое убить чужое приложение тоже "работа".
Для выделения определенного элемента требуется Handle окна TreeView и идентификатор элемента .  
Зная это можно использовать функции
TreeView_... из модуля CommCtrl

Смотри как это сделано в ComCtrls.
Например выделение элемента зная его ItemId

var
 Item: TTVItem;
begin
   with Item do
   begin
     mask := TVIF_STATE;
     hItem := ItemId;
     stateMask := TVIS_EXPANDED;
   end;
   TreeView_SetItem(Handle, Item);
end;

Как узнать ItemId? Это ВОПРОС.


DelphiNew   (2004-07-09 08:39:00) [2]

Ладно как найти окно понятно, а как найти этот компонент и выделить в нём определённый элемент, ведь SetFocus передаёт просто фокус компоненту


YuRock   (2004-07-08 20:05:00) [3]

Для этого есть много функций

Чтобы выделить: SetFocus;

Чтобы найти: FindWindowEx, GetWindow, EnumChildWindows...


Наверх

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