Autor Beitrag
setec
Hält's aus hier
Beiträge: 7



BeitragVerfasst: Mo 14.07.03 20:04 
HI, kann sein das ich nach den falschen Stichwörtern gesucht habe, aber ich hab nen Problem.


Ich interesse mich für alle "Felder" eines Programmes. Das Handle habe ich, jetzt fehlen mir nur die "Felder" Also alle edits, Buttons, labels,....

Würde mich sehr über eine Funktion (Api Routine sollte reichen, nen komplettes BEispiel wäre aber auch ok :lol: )


Gruß Jörg
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Di 15.07.03 03:22 
Cruiser23
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 191

WinXP
D7 Prof.
BeitragVerfasst: Fr 18.07.03 09:19 

_________________
Du steckst immer in der Sch****, das einzige, was sich ändert, ist die Tiefe!
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Fr 18.07.03 13:05 
@Cruiser:
Zitat:

Der Funktionsaufruf FindWindow liefert das Handle
(vom Typ HWND) auf das gesuchte Fenster,
dabei wird nicht nach "Kinder"-Fenstern gesucht.

Das ist der Kommentart aus dem Code von dem Link den du gepostet hast. Aber er will ja alle ChildWindows eines gegebenen Fensters.
Gast
Gast
Erhaltene Danke: 1



BeitragVerfasst: Sa 19.07.03 21:12 
Nachtragend:

TLabel hat kein Fenster-Handle!

Schau dir X-Spy oder mein EDA an (Link/Download auf meiner Seite).
Cruiser23
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 191

WinXP
D7 Prof.
BeitragVerfasst: Sa 19.07.03 21:26 
Von www.swissdelphicente...printcode.php?id=327 kopiert:

ausblenden volle Höhe Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
V) EnumChildWindows 

Syntax:} 

EnumerateChildWindows(hWnd: HWND;{a handle to a top-level window} 
                      lParam: LPARAM): {a 32-bit application-defined value} 
                      BOOL; stdcall{returns TRUE or FALSE} 


{ Description : 

 The EnumChildWindows function enumerates the child windows that belong to the 
 specified parent window by passing the handle of each child window, in turn, 
 to an application-defined callback function. 
 EnumChildWindows continues until the last child window is enumerated or 
 the callback function returns False. 

 Die EnumChildWindows Funktion zählt alle zu einem Fenster gehörenden Child-Fenster 
 auf und übergibt jeweils das Handle einer Callback Funktion. 
 EnumChildWindows endet, wenn das letzte Child-Fenster aufgezählt wurde 
 oder die Callback-Funktion False zurückgibt. 

 Here is an example that lists the controls on a TPrintDialog 
 Hier ein Beispiel, um alle Controls auf eines TPrintDialogs anzuzeigen 

}
 

function EnumProc(wnd: HWND; Lines: TStrings): BOOL; stdcall
var 
  buf, Caption: array[0..255of char; 
begin 
  Result := True; 
  GetClassName(wnd, buf, SizeOf(buf) - 1); 
  SendMessage(wnd, WM_GETTEXT, 256, Integer(@Caption)); 
  Lines.Add(Format('ID: %d, ClassName: %s, Caption: %s'
           [GetDlgCtrlID(wnd), buf, Caption])); 
end

procedure TForm1.PrintDialog1Show(Sender: TObject); 
begin 
  Memo1.Clear; 
  EnumChildWindows(printdialog1.Handle, @EnumProc, Integer(memo1.Lines)); 
end;

_________________
Du steckst immer in der Sch****, das einzige, was sich ändert, ist die Tiefe!