Bonjour, j'utilise la fonction EnumChildWindows dans une class que j'ai créé. (j'en suis au début de l'apprentissage POO)
Grace à la fonction suivante, je récupère le Handle du CommandLine AutoCAD (EnumChildWindows se trouve dans la function InitialiseAutoCAD de la même class)
function GetCommandLineHandle. La variable CommandLineHandle est de type Handle et déclaré en public dans ma class
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 procedure TOfmlArray.InitialiseAutoCAD; var pConAcadFile, DwgTemplate, ArxPath : String; begin ... EnumChildWindows(AutoCadOle.Application.HWND, @GetCommandLineHandle, 0); ... end;
Voici ma class (en bref)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 function TOfmlArray.GetCommandLineHandle(H:HWND; L: Integer): Bool; stdcall; var WText,ClassName : Array[0..255] of Char; begin GetClassName(H, ClassName, SizeOf(ClassName)); GetWindowText(H, WText, SizeOf(WText)); if (WText = 'Headlands') then begin Result := False; CommandLineHandle := H; end else Result := True; end;
Mon problème est le suivant, si j'exécute le EnumChildWindows hors de ma class, tout fonctionne nickel!
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 TOfmlArray = class ... public CommandLineHandle : HWND; vpConConfHandle : HWND; AutoCadOle : variant; function GetCommandLineHandle(H:HWND; L: Integer): Bool; stdcall; procedure DelphiMsgToAutoCAD(CadHwnd : HWND; Cmd : String); procedure StartAutoCadConfigurator; procedure HideAutoCadConfigurator; procedure InitialiseAutoCAD; constructor Creation(); end;
Dès que je l'intègre (avec la fonction qui lui est associée "GetCommandLineHandle" ) rien ne va plus, j'ai une erreur du compilateur m'indiquant "Variable requiered" et je ne sais pas pourquoi étant donné que j'ai juste adapté le tout dans ma class sans modification du code!
Partager