Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi GLscene - InheritsFrom(tclass) (https://www.delphipraxis.net/62377-glscene-inheritsfrom-tclass.html)

Weazy 3. Feb 2006 15:43


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:
cube1.position:=cube2.position;
cube1.material:=cube2.material;
...usw
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.

Delphi-Quellcode:
cube1.InheritsFrom(cube2);
Wie könnte ich das Problem lösen oder gibt es noch andere Methoden?

Vielen Dank!

shmia 3. Feb 2006 15:50

Re: GLscene - InheritsFrom(tclass)
 
Objekte, die von TPersistent abgeleitet wurden, haben die Methode Assign (und AssignTo).
Delphi-Quellcode:
cube1.Assign(cube2);
Falls das nicht klappt ist cube1 kein Objekt oder die Klasse ist schlecht designt.

Weazy 3. Feb 2006 16:07

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...

shmia 3. Feb 2006 16:20

Re: GLscene - InheritsFrom(tclass)
 
Zitat:

Zitat von Weazy
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...

InheritsFrom hat eine ganz andere Bedeutung, als du hier annimmst.
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;

Weazy 3. Feb 2006 16:26

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