Ja das Stichwort heißt TypeCast:
Delphi-Quellcode:
var
obj: TGLBaseSceneObject;
begin
obj := GLScene1.Objects.AddNewChild(TGLCube);
(obj as TGLCube).Width := 42;
end;
geht natürlich nur wenn im TGLBaseSceneObject auch ein TGLCube drin steckt... eigentlich klar.
Das kann man aber auch mit is prüfen:
Delphi-Quellcode:
if obj is TGLCube then begin
(obj as TGLCube).Width := 42;
end;
Weiterführend: Es gibt noch einen anderen Weg einen TypeCast durch zu führen mit TGLCube(obj). Wird oft beim erstellen eingesetzt:
mycubeinstanz := TGLCube(GLScene1.Objects.AddNewChild(TGLCube));
Wenn es nur um die Eigenschaften geht kann man auch die
RTTI einsetzen, das wäre in diesen Fall aber um einiges komplizierter.
mfg, Björn