Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Über Pointer den Klassennamen bekommen? (https://www.delphipraxis.net/154456-ueber-pointer-den-klassennamen-bekommen.html)

moelski 11. Sep 2010 12:59

Delphi-Version: 2010

Über Pointer den Klassennamen bekommen?
 
Moin !

Ich habe ein TreeView in dem ich Nodes einhänge und mehrere Klassen.
Jedes Node des Tree repräsentiert quasi eine Klasseninstanz.

Nun habe ich dem Node.Data jeweils einen Pointer auf die Klasse mitgegeben.
Bsp :
Delphi-Quellcode:
ClassA := TMyClassA.Create;
Node1.data := ClassA;
ClassB := TMyClassB.Create;
Node2.data := ClassB;
Aber wie kann ich nun rückwärts die Klasse wieder rausbekommen?
Also wie komme ich über Node2.data auf TMyClassB? :gruebel:

Neutral General 11. Sep 2010 13:01

AW: Über Pointer den Klassennamen bekommen?
 
Hi,

So z.B.

Delphi-Quellcode:
TObject(Node2.data).ClassType
TObject(Node2.data).Classname
Gruß
Neutral General

moelski 11. Sep 2010 13:03

AW: Über Pointer den Klassennamen bekommen?
 
Moin Michael,

stimmt :thumb:

Danke.

himitsu 11. Sep 2010 13:05

AW: Über Pointer den Klassennamen bekommen?
 
Zitat:

Zitat von moelski (Beitrag 1048877)
Nun habe ich dem Node.Data jeweils einen Pointer auf die Klasse mitgegeben.

'nen Zeiger auf ein Objekt (die Instanz einer Klasse)

Wenn du die Variablen ClassA/ClassB sonst nicht brauchst, dann einfach so:
Delphi-Quellcode:
Node1.data := TMyClassA.Create;
// oder
Node1.data := Pointer(TMyClassA.Create);
Und den rückwärtigen Weg hatte ja schon wer genannt.


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:26 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