Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Aus Handle das TObject bekommen und damit arbeiten (https://www.delphipraxis.net/6141-aus-handle-das-tobject-bekommen-und-damit-arbeiten.html)

Biohazard 1. Jul 2003 08:09


Aus Handle das TObject bekommen und damit arbeiten
 
Hallo,

Wie schaffe ich es aus dem Handle das Object zu bekommen?
Mit findobject() geht es nicht ( Fehlermeldung sagt, dass QObjectH und Cardinal inkompatibel sind).

Geht das auch mit Handles die nicht aus meinem Prog sind.

Ich wollte dann eigentlich auf die Eigenschaften dieses Objects zugreifen. z.B. von einem Datensteuerungs-Element DataSource und Dateset herausbekommen.

sakura 1. Jul 2003 08:19

Wie soll das gehen? Die Klasse TObject besitzt doch gar kein Handle. Das Handle haben doch erst die Klassen, welche von TWinControl abgeleitet sind.

...:cat:...

Biohazard 1. Jul 2003 08:50

Achso.
Aber ist es denn irgendwie möglich über das handle an die Eigenschaften(die man auch im Objektinspektor sieht) heranzukommen.
Und das auch für handles außerhalb meines Progs.

jbg 1. Jul 2003 11:34

Re: Aus Handle das TObject bekommen und damit arbeiten
 
Zitat:

Zitat von Biohazard
QObjectH

Vorerst: Du benutzt die VisualCLX.
Um das HWND (das die Windows-Funktionen brauchen) zu bekommen musst du die Funktion QWidget_winid(MyComponent.Handle) aufrufen.

Zitat:

Geht das auch mit Handles die nicht aus meinem Prog sind.
Da würde nur gehen, wenn beide Programme mit ein und derselben Programmiersprache und der ein und derselben Version der Klassenbibliothek geschrieben sind und dann auch nur sehr umständlich, da das andere Objekt in einem anderen Adressraum liegt.


Zitat:

Ich wollte dann eigentlich auf die Eigenschaften dieses Objects zugreifen. z.B. von einem Datensteuerungs-Element DataSource und Dateset herausbekommen.
Das geht nur, wenn du selbst dafür sorgst, dass die Komponente diese Information preis gibt. Hier musst du bei zwei Prozessen wieder auf das Adressraum Problem achten. (-> ReadProcessMemory/WriteProcessMemory)

So Standardsachen wie Caption, Left, Top, Width und Height kann man über die WinAPI ermitteln. Jedoch spezielle Eigenschaften wie Tag, DataSource und Hint nicht. Diese sind von Delphi eingeführt und Windows kennt diese somit nicht.


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:04 Uhr.

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