Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   unbekannte Anzahl von Werten als Variable speichern (https://www.delphipraxis.net/61961-unbekannte-anzahl-von-werten-als-variable-speichern.html)

Weazy 28. Jan 2006 21:24

Re: unbekannte Anzahl von Werten als Variable speichern
 
Danke, jetz komm ich weiter :-D

Elvis 28. Jan 2006 21:38

Re: unbekannte Anzahl von Werten als Variable speichern
 
Zitat:

Zitat von ibp
Delphi-Quellcode:
var meinarray:array of integer
...
setlength(meinarray,45); // meinarray geht nun von 0..44 = 45 elemente
..
meinarray[3]:=3462357; // das 4. element hat jetzt den wert 3462357
..
..und hier gibt es eine tolle suche im forum, oder du nutzt f1 in der ide

hmm... :gruebel:Why setlength is evil™
In 9 von 10 Fällen dürfte setLength auf ein tieferes Problem im Design zurückzuführen sein, IMHO. ;)

@Weazy
Magst du vllt ein paar Infos zu dem rausrücken wie Materialien und Objekte verknüpft sind und wie sie verwendet werden?
Wenn du Eigenchaften eines Materials änderst sollten doch alle Objekte diese Änderungen sehen können. Solange sie natürlich alle eine Referenz auf die gleiche Instanz des Materials besitzen. ;) (Schuss ins blaue, da nicht genug Infos... ;) )

ibp 28. Jan 2006 21:42

Re: unbekannte Anzahl von Werten als Variable speichern
 
Zitat:

Zitat von Elvis
In 9 von 10 Fällen dürfte setLength auf ein tieferes Problem im Design zurückzuführen sein, IMHO.

... das kommt darauf an! klar wenn ich die größe des arrays in kleinen schritten ändere. wenn ich aber z.b. vorher die anzahl kenne, dann ist doch alles ok!

Weazy 28. Jan 2006 21:50

Re: unbekannte Anzahl von Werten als Variable speichern
 
Jedes Objekt hat ein grundmaterial, in welchem farbe, umgebungsfarbe, glanz und eine textur gespeichert ist. Für spezielle Materialien kann jedes Objekt einer MaterialBibliothek zugewiesen werden. Jeder Materialtyp(Bump-Map, Cube-Map, Multimaterial, Glas, CG, GLSlang...) hat eine solche Bibliothek, welch wiederum mehrere Materialien enthält. So sind alle Materialien nach ihrem typ geordnet. Wenn ich nun den Namen eines Materiales ändere "finden" die Objekte es nicht mehr und weisen nur noch das Standart Material auf. Deshalb muss das Material mit dem neuen Namen nocheinmal zugewiesen werden.

PS: es funktioniert jetzt!

Elvis 28. Jan 2006 22:18

Re: unbekannte Anzahl von Werten als Variable speichern
 
Ich verstehe immer noch nicht, warum die Änderung des Namens dazu führen kann, dass es plötzlich nicht mehr benutzt wird?

Wie hast du das denn aufgebaut?
Wenn du Klassen (und damit Referenzen) benutzt, wäre das Meaterial immer noch das gleiche Material, auch wenn der Name geändert wurde.
Das Objekt würde den geänderten Namen sehen, aber es hätte immer noch die selbe Referenz auf die selbe Instanz von TMaterial.
Pseudo code:
Delphi-Quellcode:
type
  TMaterial = class
  public
    property Name : String read blabla write blabla;
  end;

  TDeinObjekt = class
  public
    property Material : TMaterial read blabla write blabla;
  end;
Irgendwie las sich das mbisher ein wenig umwegig, deshalb hake ich einfach mal nach.
Falls du Lust hast, kannst du ja erklären, wie du diese Beziehung (Objekt<->Material) gelöst hast.
Auch wenn es bereits läuft. ;)

Weazy 28. Jan 2006 23:14

Re: unbekannte Anzahl von Werten als Variable speichern
 
Die RenderProzedur sucht bei jedem Vorgang beim rendern jedes objektes das eingetragene Material. Wenn ds angegebene Material nicht gefunden wird, wird einfach das StandartMaterial verwendet. Das Spiel und der Editor laufen übrigens auf OpenGL basis.


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:19 Uhr.
Seite 2 von 2     12   

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