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

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

SysTreeview [D5, Win95/98]


Marser ©   (2004-06-30 00:27:00) 

Как работается с представителями этого класса?
Ежели я правильно понял WinSight, то посредством событий группы lb_
Однако никакой реакции не наблюдается. Хендл определен верно, группа WM_ проходит.
lb_ ли?


Marser   (2004-07-05 01:16:00) [1]

Проблема решена! Прокрутку на i корневых пунктов я выполнил таким образом:

procedure TForm1.Button1Click(Sender: TObject);
var
 ht:HTREEITEM;
 i:byte;
begin
 WinExec('control.exe mmsys.cpl,@1',SW_SHOWNORMAL);
 sleep(50);
 h:=FindWindowEx(FindWindowEx(FindWindow(nil,'Свойства: Звук'),0,
 nil,'Звуковое сопровождение событий'),
 0,'SysTreeView32',nil);
 sleep(50);
 ht:=TreeView_GetNextItem(h,TreeView_GetSelection(h),TVGN_NEXT);
 for i:=1 to CB1.ItemIndex do
 ht:=TreeView_GetNextItem(h,ht,TVGN_NEXT);
 TreeView_SelectItem(h,ht);
end;

Кривовато и работает, по видимому, только в Win98, но работает! Для других ОС, правда, перенастроить не составит особого труда. И в чужой процес лезть не пришлось :-) А то от примеров Рихтера иногда мурашки по коже. У VMcL на "ламерском" сайте, конечно, с этим попроще...


Marser   (2004-07-04 19:55:00) [2]

Задание то же, что и http://www.delphimaster.ru/cgi-bin/forum.pl?id=1088269863&n=7


Marser   (2004-07-03 00:45:00) [3]

up
Или предложение MBO и без иных варинтов?


Marser   (2004-07-01 20:39:00) [4]


> (HTREEITEM) hitem;

Вот именно с этой хренью и возникает проблема. Чтение исходников ничего не даёт. Как заполнить эту структуру, если она не описана?


VMcL   (2004-07-01 20:16:00) [5]

>>Marser ©   (01.07.04 19:53) [6]

С TVM_SELECTITEM должно получиться и без внедрения, если знаешь
LPARAM) lParam      // = (LPARAM) (HTREEITEM) hitem;

Внедрение делается, если нужно передавать адрес данных, например, адрес строки-заголовка.


Marser   (2004-07-01 19:53:00) [6]


> MBo ©   (01.07.04 09:40) [5]
> >В чужой конечно.
> Тогда для получения большей части информации (а именно,
> для сообщений, которые требуют передачи адреса (структуры,
> строки)) придется внедряться в чужой процесс. Пример для
> SysListView есть у Рихтера

Ой мляя...
Значит просто так с TVM_SELECTITEM не поработаешь?


MBo   (2004-07-01 09:40:00) [7]

>В чужой конечно.
Тогда для получения большей части информации (а именно, для сообщений, которые требуют передачи адреса (структуры, строки)) придется внедряться в чужой процесс. Пример для SysListView есть у Рихтера


Marser   (2004-06-30 21:01:00) [8]


> MBo ©   (30.06.04 08:39) [3]
> небольшое уточнение - SysTreeview в твоей программе или
> в чужой?

В чужой конечно.


MBo   (2004-06-30 08:39:00) [9]

небольшое уточнение - SysTreeview в твоей программе или в чужой?


Marser   (2004-06-30 00:36:00) [10]

Значицца, TVM_... Будем искать.
Спасибо!


Игорь Шевченко   (2004-06-30 00:32:00) [11]

F1: TreeView Messages, TVM_xxxxxxxxx


Наверх

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