Autor Beitrag
Xion
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
EE-Maler
Beiträge: 1952
Erhaltene Danke: 128

Windows XP
Delphi (2005, SmartInspect), SQL, Lua, Java (Eclipse), C++ (Visual Studio 2010, Qt Creator), Python (Blender), Prolog (SWIProlog), Haskell (ghci)
BeitragVerfasst: Do 14.08.08 11:49 
Hi,

über den Winspector lasse ich mir den Aufbau einer andren Anwendung zeigen. Leider gibt es für mich an einer Stelle ein Problem:
auf einer Form sind 3 Panels, alle ohne Namen und als Klasse TPanel.

Auf einem dieser Panels ist ein Button und auf einem andren sind 2 Edits die ich ansprechen möchte (bei den Edits ist das Problem ähnlich, woher kriege ich raus, welches Edit welches ist?)
Ich habe es mit einem mehrmaligen Aufruf von FindWindowEx versucht, aber es funktioniert nicht. hB ist immer das gleiche Handle.

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
          while (hbtn<>0or(hA<>0do
            begin
              hB:=FindWindowEx(h, 0'TPanel'nil);
              if hBtn=0 then
                hBtn:=FindWindowEx(h, 0'TButton''Herunterladen && Konvertieren');
              if hA=0 then
                begin
                 hA:=FindWindowEx(hB,0,'TEdit',nil); //Edit1
                 hB:=FindWindowEx(hB,0,'TEdit',nil); //Edit2
                end;
             end;

h=Handle der Form

hB ist in diesem Fall immer identisch, obwohl es 3 Panels gibt.

Kann mir da jemand weiterhelfen?

Danke im Vorraus,
Xion
Einloggen, um Attachments anzusehen!
_________________
a broken heart is like a broken window - it'll never heal
In einem gut regierten Land ist Armut eine Schande, in einem schlecht regierten Reichtum. (Konfuzius)
SvenAbeln
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 334
Erhaltene Danke: 3



BeitragVerfasst: Do 14.08.08 12:17 
Zitat:

ausblenden Delphi-Quelltext
1:
hB:=FindWindowEx(h, 0'TPanel'nil);					

hB ist in diesem Fall immer identisch, obwohl es 3 Panels gibt.


Du suchst mit FindWindowEx immer nach dem ersten TPanel in dem Fenster, daher bekommst du immer wieder das identische Ergebnis. Über den zweiten Parameter kannst du aber angeben, nach welchem Handle er mit der Suche beginnen soll.

ausblenden Delphi-Quelltext
1:
2:
3:
hPanel1:=FindWindowEx(h, 0'TPanel'nil);
hPanel2:=FindWindowEx(h, hPanel1, 'TPanel'nil);
hPanel3:=FindWindowEx(h, hPanel2, 'TPanel'nil);
Xion Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
EE-Maler
Beiträge: 1952
Erhaltene Danke: 128

Windows XP
Delphi (2005, SmartInspect), SQL, Lua, Java (Eclipse), C++ (Visual Studio 2010, Qt Creator), Python (Blender), Prolog (SWIProlog), Haskell (ghci)
BeitragVerfasst: Do 14.08.08 12:51 
aah, prima, danke :) :D :zustimm:

wenn ichs jetzt die Delphi-Hilfe nochmal lese, verstehe ichs auch :lol: ist leider auf Englisch bei D2005

_________________
a broken heart is like a broken window - it'll never heal
In einem gut regierten Land ist Armut eine Schande, in einem schlecht regierten Reichtum. (Konfuzius)