![]() |
Die Klasse eines Objektes ermitteln
Hallo,
ich speicher in der Data-Eigenschaft der TTreeView Objekte. Es können immer nur zwei Arten von Objekte sein. Wie prüfe ich nun, von welchem Typ das angeklickte Item ist? Ich könnte zwar prüfen, ob das Item weitere Kinder hat, aber das ist ja nicht der Sinn von OOP. Ich habe es so probiert
Delphi-Quellcode:
aber das gibt eine AV.
if (TObject(TreeView2.Selected.Data) is TArtikel) then
begin Parent:=TKategorie(TreeView2.Selected.Parent.Data); end else begin Parent:=TKategorie(TreeView2.Selected.Data); end; Ich hoffe ihr könnt mir helfen.... - natürlich könnt ihr das Danke im Voraus |
Re: Die Klasse eines Objektes ermitteln
Eigentlich sollte es richtig sein,
deßhalb frage ich mal: Bist du dir sicher, dasß in .Data wirklich eine Klasse steckt? Und wo tritt die AV genau auf? |
Re: Die Klasse eines Objektes ermitteln
Hallo,
in Data sind Objekte abgelegt, auf die ich auch die ganze Zeit schon zugreife. Das funktioniert also. So speicher ich das Objekt in Data
Delphi-Quellcode:
Ja, die AV tritt dort auf. Ich habe alles andere auskommentiert und auch noch einen Breakpoint gesetzt. Nur wieso... ich habe in Data auf jeden Fall ein Objekt. TArtikel oder TKategorie...
Item:=TreeView2.Items.AddChild(Parent, Kategorie.Artikel[j].ArtikelName);
Item.Data:=Pointer(Kategorie.Artikel[k]); //Artikel[k] liefert TArtikel zurück |
Re: Die Klasse eines Objektes ermitteln
Delphi-Quellcode:
Oben j und unten k?
Item:=TreeView2.Items.AddChild(Parent, Kategorie.Artikel[j].ArtikelName);
Item.Data:=Pointer(Kategorie.Artikel[k]); //Artikel[k] liefert TArtikel zurück
Delphi-Quellcode:
Und Selected ist nicht nil? Und Selected.Parent auch nicht?
if (TObject(TreeView2.Selected.Data) is TArtikel) then
begin Parent:=TKategorie(TreeView2.Selected.Parent.Data); end else begin Parent:=TKategorie(TreeView2.Selected.Data); end; |
Re: Die Klasse eines Objektes ermitteln
Steinigt mich...
In den Kategorie-Items war kein Objekt drin, sondern nur in den Artikel-Items.... Tut mir leid. Vielen Dank - funktioniert |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:01 Uhr. |
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