![]() |
GLScene: BaseSceneObjects
hallo
wie ist es möglich genauere Informationen aus einem BaseSceneObject herauszukitzeln, da BaseSceneObjects ja z.B. Cubes darstellen und diese wiederum Eigenschaften, wie Höhe, Breite und Länge haben. Bis jetzt habe ich die Objekte in der Laufzeit mit array's bearbeitet.
Delphi-Quellcode:
Da array's auch nur variablen sind, werden sie beim nächsten start des programms nicht wiederhergestellt, sodass die Informationen, die in den array's gespeichert waren, nun verloren gegangen sind.
Cube[0] := TGLCube.Create(GLScene1);
GLScene1.Objects.AddChild(Cube[0]); Cube[0].Height := ...; kann mir jemand darauf eine antwort liefern??? danke schon mal im voraus |
DP-Maintenance
Dieses Thema wurde von "Sharky" von "Programmieren allgemein" nach "Multimedia" verschoben.
Ich verschiebe den Thread mal nach hier. |
Re: GLScene: BaseSceneObjects
Ja das Stichwort heißt TypeCast:
Delphi-Quellcode:
geht natürlich nur wenn im TGLBaseSceneObject auch ein TGLCube drin steckt... eigentlich klar.var obj: TGLBaseSceneObject; begin obj := GLScene1.Objects.AddNewChild(TGLCube); (obj as TGLCube).Width := 42; end; Das kann man aber auch mit is prüfen:
Delphi-Quellcode:
Weiterführend: Es gibt noch einen anderen Weg einen TypeCast durch zu führen mit TGLCube(obj). Wird oft beim erstellen eingesetzt:
if obj is TGLCube then begin
(obj as TGLCube).Width := 42; end;
Delphi-Quellcode:
Wenn es nur um die Eigenschaften geht kann man auch die RTTI einsetzen, das wäre in diesen Fall aber um einiges komplizierter.
mycubeinstanz := TGLCube(GLScene1.Objects.AddNewChild(TGLCube));
mfg, Björn |
Re: GLScene: BaseSceneObjects
ok, das klappt hervorragend, aber welche klasse nimmt TGLCube bei
Delphi-Quellcode:
und
if (obj is [u]TGLCube[/u]) then ...;
Delphi-Quellcode:
ein???
...then (obj as [u]TGLCube[/u]).CubeWidth := ...;
also ClassName ist es nicht. dementsprechend müsste es BaseSceneObject sein, oder? |
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:27 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 by Thomas Breitkreuz