![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
EnumChildWindow
Sigetta © (2004-12-08 10:42:00)Привет.
EnumChildWindow в W98 работает нормально, в 2000 выдает ошибку.
В 2000 ее нет или она по другому вызывается/именуется?
Спасибо.
Leonid Troyanovsky (2004-12-08 11:55:00) [1]
> Sigetta © (08.12.04 10:58) [2]
> procedure WNDENUMPROC(var LParam : Integer);
> begin
> FMain.Tag:=FMain.Tag+1;
> // LParam:=LParam;
> end;
Кроме того, что посоветовал Игорь (кстати, там д.б. функция
function EnumWindowsProc(whd: HWND;
alparam: LParam): Bool; stdcall; ),
могу посоветовать никогда не использовать в регулярных
процедурах такие вещи как FMain (а еще лучше - навсегда
забыть о ее существовании).
Для EnumProc есть пользовательский параметр, если надо
можно привести тип (хоть к TFMain).
--
С уважением, LVT.
Игорь Шевченко (2004-12-08 11:05:00) [2]
> procedure WNDENUMPROC(var LParam : Integer);
заменить на
procedure WNDENUMPROC(Wnd: HWND; LParam : Integer); stdcall;
С уважением,
Sigetta (2004-12-08 10:58:00) [3]procedure WNDENUMPROC(var LParam : Integer);
begin
FMain.Tag:=FMain.Tag+1;
// LParam:=LParam;
end;
procedure TFMain.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
var
LParam : Integer;
begin
LParam:=0;
FMain.Tag:=0;
EnumChildWindows(FMain.Handle,@WNDENUMPROC, LParam);
// If FCount=0 Then
if (FMain.Tag=3) or (FCount=0) then
Begin
FDM.VOst.Filtered:=False;
FDM.SVOst.Filtered:=False;
FDM.Rasx.Filtered:=False;
FDM.Prix.Filtered:=False;
End;
CanClose:=(FMain.Tag=3) or (FCount=0);
end;
Игорь Шевченко (2004-12-08 10:50:00) [4]Работает нормально.
Код в студию.