![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
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