Entwickler-Ecke
Delphi Language (Object-Pascal) / CLX - Dynamischen Array erweitern ODER Hex-Probelm
Basti - Mi 11.08.04 16:03
Titel: Dynamischen Array erweitern ODER Hex-Probelm
Hallo Leute,
ich habe ein Problem, weiss aber nicht recht welches. Es geht um Wegpunkte
in einem Leveleditor, die ich über einen dynamischen Array ständig erweitern können möchte.
1. Frage: Geht das so, wie ich es hier mache?
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9:
| procedure TForm1.OnClick_WPcreate(Sender: TObject); var i:integer; begin i:=length(Wegpunkte)+1; setlength(Wegpunkte,i); Wegpunkte[i]:=TTVMesh.Create(self); Wegpunkte[i].ConnectTo(scene.CreateMeshBuilder('Wegpunkt '+IntToStr(i))); Wegpunkte[i].CreateSphere(0,2,20,20,$FFFF0000); end; |
2. Frage: Wenn ja, warum kommt dann ein Fehler:
Zitat: |
[Warnung] u_formular.pas(451): Konstantenausdruck verletzt untere Grenzen |
Das ist die Stelle wo ich den Hexadezimal Code als Farbe angebe.
Nun bin ich mir nicht sicher, ob ich den Array falsch aufbaue oder die Farbe alles kaputtmacht,
jedenfalss kann ich nur einen Wegpunkt erstellen, beim 2. geht nix mehr :(
Vielleicht kann mir jemand helfen (der vielleicht auch TrueVision3D hat).
Dankeschön
Sebastian
raziel - Mi 11.08.04 16:15
Titel: Re: Dynamischen Array erweitern ODER Hex-Probelm
Basti hat folgendes geschrieben: |
1. Frage: Geht das so, wie ich es hier mache?
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9:
| procedure TForm1.OnClick_WPcreate(Sender: TObject); var i:integer; begin i:=length(Wegpunkte)+1; setlength(Wegpunkte,i); Wegpunkte[i]:=TTVMesh.Create(self); Wegpunkte[i].ConnectTo(scene.CreateMeshBuilder('Wegpunkt '+IntToStr(i))); Wegpunkte[i].CreateSphere(0,2,20,20,$FFFF0000); end; |
|
Nein ;)
Wenn i die neue Länge des Array sein soll, dann greifst Du auf das letzte Element mit i-1 zu! Wegpunkte[i] gibt es in diesem Fall nicht!!
Basti hat folgendes geschrieben: |
2. Frage: Wenn ja, warum kommt dann ein Fehler:
Zitat: | [Warnung] u_formular.pas(451): Konstantenausdruck verletzt untere Grenzen |
Das ist die Stelle wo ich den Hexadezimal Code als Farbe angebe. |
Welcher Typ wird denn bei der Hexzahl verlangt?
raziel
maxk - Mi 11.08.04 16:16
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9:
| procedure TForm1.OnClick_WPcreate(Sender: TObject); var i:integer; begin i:=length(Wegpunkte); setlength(Wegpunkte,i+1); Wegpunkte[i]:=TTVMesh.Create(self); Wegpunkte[i].ConnectTo(scene.CreateMeshBuilder('Wegpunkt '+IntToStr(i+1))); Wegpunkte[i].CreateSphere(0,2,20,20,Integer($FFFF0000)); end; |
Das sollte eigentlich funktionieren. Hat übrigens nix mit TV3D zu tun. Das Array started bei 0, die Zählung allerding bei 1. Daher muss musst du da ein bisschen aufpassen. Das Problem in der letzten Zeile sollte eigentlich keines sein. Keine Ahnung warum, wenn du Integer davor schreibst, geht's!
Basti - Mi 11.08.04 16:28
Titel: Argg
Oh man - Ich vergesse das irgendwie IMMER. :autsch:
Wann präge ich mir mal ein, dass das mit 0 anfängt und deshalb immer 1 abgezogen werden muss...
Das ist aber auch doof - wer hat bloß die 0 erfunden? :motz:
Das Farbproblem konnte ich mit einer TV3D Umwandlung lösen: DelphiGlobals.Colorkey($FFFF0000);
Danke für eure Hilfe.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!