Einzelnen Beitrag anzeigen

Benutzerbild von arbu man
arbu man

Registriert seit: 3. Nov 2004
Ort: Krefeld
1.108 Beiträge
 
Delphi 7 Professional
 
#3

Re: GLScene: BaseSceneObjects

  Alt 9. Mai 2007, 11:28
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
Björn
>> http://bsnx.net <<
Virtual DP Stammtisch v1.0"iw" am 19.09.2007 - ich war dabei!
  Mit Zitat antworten Zitat