Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Alle Child-Handles einer Form (https://www.delphipraxis.net/36169-alle-child-handles-einer-form.html)

Neutral General 16. Dez 2004 18:45


Alle Child-Handles einer Form
 
Wie bekomme ich alle möglichen Handles von einer Form ?
Kann sein das, das schon mal gefragt wurde... sowas ähnliches glaube ich, sogar schonmal von mir, gab es schonmal, aber ich finde dazu einfach nichts und ich weis das es gehen muss, denn ich hatte mal einen QT-Schnipsel, mit dem das ging. Den hab ich aber nicht mehr :(
Kann mir da vielleicht jemand direkt eine Function/procedure geben, oder mir zumindest mal helfen es selber hinzubekommen ?

Dax 16. Dez 2004 18:46

Re: Alle Child-Handles einer Form
 
Sieh dir mal MSDN-Library durchsuchenEnumChildWindows an, da findest du alle Subcontrols eines Fensters ;)

mirage228 16. Dez 2004 18:46

Re: Alle Child-Handles einer Form
 
Hi,

Du dursuchst Rekrusiv die Array property Controls[] des Forms und schaust obs ein TWinControl ist. Wenn ja, dann haste Deine Handles :)

mfG
mirage228

Edit: Ups, ist ja das WinAPI-Forum :oops: - Benutze den Tipp im Beitrag über mir falls Du es in nem anderen Programm machen willst :)

Luckie 16. Dez 2004 18:47

Re: Alle Child-Handles einer Form
 
MSDN-Library durchsuchenEnumChildWindows und das rekursiv. Bedenka aber dass nicht alle Kontrols eine Handle haben, sondern nur die von TWinControl abgeleiteten. Ein Label hat zum Beispiel keins, da es von TGraficControl abgeleitet ist.

Neutral General 16. Dez 2004 18:51

Re: Alle Child-Handles einer Form
 
Zitat:

Zitat von Luckie
MSDN-Library durchsuchenEnumChildWindows und das rekursiv. Bedenka aber dass nicht alle Kontrols eine Handle haben, sondern nur die von TWinControl abgeleiteten. Ein Label hat zum Beispiel keins, da es von TGraficControl abgeleitet ist.

Das ich EnumChildWindows brauche und das z.B Labels keine Handles haben weis ich ja :wink:
Aber ich weis weder wie man rekursiv programmiert bzw. was das überhaupt ist noch wie ich das mit EnumChildWindows machen soll :oops:

Luckie 16. Dez 2004 18:54

Re: Alle Child-Handles einer Form
 
Dann frag das nächste mal etwas genauer. Woher soll ich wissen, was du schon weißt, was du kannst und wo du Probleme hast. Aber eine Forensuche könnte auch schon helfen.

Neutral General 16. Dez 2004 18:57

Re: Alle Child-Handles einer Form
 
Zitat:

Zitat von Luckie
dann frag das näöchste mal etwas genauer. Woher soll icgh wissen, was du schon weißt, was du kannst und wo du Probleme hast. Abert eine Forensuche könnte auch schon helfen.

Ok werd ich machen :)
Aber Ich hab mich schon totgesucht...
Ich hab schon nach "EnumChildWindows" und nach "EnumChildProcs" und nach "Handles" und nach "Alle Control Handles" und und und... :wall:

Motzi 16. Dez 2004 19:41

Re: Alle Child-Handles einer Form
 
Delphi-Quellcode:
function EnumWindowsCallBack(Window: hWnd; lParam: LPARAM): Boolean; stdcall;
begin
  // mit "Window" arbeiten..

  // rekursiver Aufruf
  EnumChildWindows(Window, @EnumWindowsCallback, Integer(aThreadData));
end;

EnumChildWindows(<Handle>, @EnumWindowsCallback, <Parameter der dann als lParam in der Callback landet>)

Neutral General 18. Dez 2004 11:55

Re: Alle Child-Handles einer Form
 
@ Motzi : Tschuldigung aber ich verstehs einfach nicht :wall:
  • WAS soll ich mit den "Windows" machen ?
  • WAS soll bei aThreadData stehen ?
  • WOFÜR genau ist der letzte Parameter bei EnumChildWindows genau ?

Wäre sehr dankbar wenn ihr es mir erklären könntet. Denn ich interessiere mich eigentlich ziemlich für WinApi und Handles und so Sachen, da wäre es nützlich eine der wichtigsten Functionen dafür zu verstehen :wink: :pale:

Motzi 18. Dez 2004 14:12

Re: Alle Child-Handles einer Form
 
Zitat:

Zitat von Neutral General
WAS soll bei aThreadData stehen ?

Hoppla, das hab ich vergessen zu ändern (hab das aus bestehenden Sourcen von mir genommen und gekürzt).. stattdessen übergibst du einfach lParam...

Was du mit "Window" machen sollst.. nun, du das ist das Handle eines Child-Windows.. tu damit was immer du tun willst, füg es einer Liste hinzu oder mach sonst was damit.. ;)


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:26 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz