![]() |
GLscene - InheritsFrom(tclass)
Hi, ich hoffe hier kennt jemand glscene!
Ich habe einen tglcube und lade einen tglcube aus einer Datei. Nun möchte ich alle Parameter des würfels aus der Datei auf den Würfel in der Szene übertragen. Ich könnte das z.B so machen:
Delphi-Quellcode:
Diese Methode ist mir etwas zu plump. Ich habe herausgefunden , das man auf einen tglcube die funktion InheritsFrom(tclass) verwenden kann. Leider funktioniert es so nicht, da tglcube keine tclass ist.
cube1.position:=cube2.position;
cube1.material:=cube2.material; ...usw
Delphi-Quellcode:
Wie könnte ich das Problem lösen oder gibt es noch andere Methoden?
cube1.InheritsFrom(cube2);
Vielen Dank! |
Re: GLscene - InheritsFrom(tclass)
Objekte, die von TPersistent abgeleitet wurden, haben die Methode Assign (und AssignTo).
Delphi-Quellcode:
Falls das nicht klappt ist cube1 kein Objekt oder die Klasse ist schlecht designt.
cube1.Assign(cube2);
|
Re: GLscene - InheritsFrom(tclass)
das klappt irgendwie nicht. Ich glaube nicht das glscene schlampig geprogt ist, aber irgendwie müsste es doch auch mit InheritsFrom gehen, die werden die funktion doch nicht für nichts gemacht haben...
|
Re: GLscene - InheritsFrom(tclass)
Zitat:
Die Klassenmethode gibt nur True oder False zurück und zeigt an, ob eine Klasse von einer anderen abgeleitet ist. Du möchtest die Werte von cube1 auf cube2 kopieren. Und dazu wurde Assign erfunden. Nur der Soucrecode kann Aufkunft geben, ob Assign entsprechend überschrieben wurde oder nicht. Hier ein kleines Beispiel für Assign:
Delphi-Quellcode:
// die Werte von Source werden auf "self" kopiert
procedure TFieldDef.Assign(Source: TPersistent); var I: Integer; S: TFieldDef; begin if Source is TFieldDef then begin if Collection <> nil then Collection.BeginUpdate; try S := TFieldDef(Source); {FieldNo is defaulted} Name := S.Name; DataType := S.DataType; // kopiere den Datentyp Size := S.Size; // kopiere size .... Precision := S.Precision; Attributes := S.Attributes; |
Re: GLscene - InheritsFrom(tclass)
ich habs, ich verwendete ein tgclcustomsceneobject um assgin anzuwenden. Stattdessen verwendet ich nun dierekt tglcube und nun funktioniert es! Vielen Dank!
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:16 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