Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.07.22;
Скачать: CL | DM;

Вниз

Помогите с EnumChildWindows ...   Найти похожие ветки 

 
cosinus ©   (2007-06-22 16:01) [0]

На чужой форме есть некоторая панель на которой находятся 3 CheckBox-а, которые в свою очередь должны быть включены.
Делаю так...
function TForm1.enumSetCheck(hWindow: HWND): Bool;
begin
   SendMessage(hWindow, BM_SETCHECK, Integer(true), 0);
   result:=true;
end;

procedure TForm1.WMHotKey(var Msg: TWMHotKey);
var
 wnd0,wnd1,wnd2,wnd3,wnd4:HWND;
begin
 if Msg.HotKey = id1 then
 begin
 wnd1:=findwindow("TfrmStructObject","Caption text");//main
 wnd2:=findwindowex(wnd1,0,"TPageControl",nil);//Page
 wnd3:=findwindowex(wnd2,0,"TTabSheet",nil); // Tab
 wnd4:=findwindowex(wnd3,0,"TPanel",nil);//Panel
 EnumChildWindows(wnd4,@TForm1.enumSetCheck,LongInt(Self));
 end;
end;

Не фурычит. Не подскажите, где не так?
Может не в EnumChildWindows дело, а в SendMessage?


 
Инс   (2007-06-22 16:37) [1]

Очень странный код. Компилятор его пропускает?

//1. Не метод класса TForm1
//2. Забыли параметр Param
//3. Забыли stdcall
function enumSetCheck(hWindow: HWND; Param: Longint): Bool; stdcall
begin
  SendMessage(hWindow, BM_SETCHECK, Integer(true), 0);
  result:=true;
end;

procedure TForm1.WMHotKey(var Msg: TWMHotKey);
var
wnd0,wnd1,wnd2,wnd3,wnd4:HWND;
begin
if Msg.HotKey = id1 then
begin
wnd1:=findwindow("TfrmStructObject","Caption text");//main
wnd2:=findwindowex(wnd1,0,"TPageControl",nil);//Page
wnd3:=findwindowex(wnd2,0,"TTabSheet",nil); // Tab
wnd4:=findwindowex(wnd3,0,"TPanel",nil);//Panel
EnumChildWindows(wnd4,@enumSetCheck,0);
end;
end;


Хотя, допускаю, что вы сделали так намерянно, но так как вы хотите хитро подсунуть, лучше не делайте.


 
cosinus ©   (2007-06-25 16:48) [2]

Спасибо.
Я столкнулся с еще одной проблеммой - на форме несколько панелей, как мне понять, что это нужная, если известно, что у необходимой панели есть 3 потомка - CheckBox-а(это в данном случае) да и вообще как осуществить проверку в общем случае, если известно, что потомком необходимого компонента является , например, 2 компонента TComponent?



Страницы: 1 вся ветка

Текущий архив: 2007.07.22;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.027 c
2-1182860818
ы!
2007-06-26 16:26
2007.07.22
скрытие


1-1179371263
ArchValentin
2007-05-17 07:07
2007.07.22
IdSMTP в Delphi2006


15-1182710878
FIL-23
2007-06-24 22:47
2007.07.22
сканер кода


1-1179368479
Артем К.
2007-05-17 06:21
2007.07.22
Как определить что строка удовлетворяют заданному формату?


15-1182431824
koha
2007-06-21 17:17
2007.07.22
В нашу сеть повадильсь кулхацкеры лазить