Files |  Tutorials |  Articles |  Links |  Home |  Team |  Forum |  Wiki |  Impressum

Aktuelle Zeit: Fr Jul 18, 2025 11:55

Foren-Übersicht » Programmierung » Allgemein
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 5 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Array und Record... Problem
BeitragVerfasst: Do Feb 19, 2004 17:48 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Okt 27, 2003 17:46
Beiträge: 788
Hi! erstmal die Codeteile :)
Code:
  1.   Tco = record
  2.   x,y,z: single;
  3.   draw_zaun, draw_pfosten: boolean;
  4.   end;
  5.  
  6.   Tzaun = record
  7.   zaunp1,zaunp2,zaunp3,zaunp4: Tcoord;
  8.   zaun_a: array of Tco;
  9.   end;
Code:
  1. zaun: array of Tzaun;
Code:
  1. PROCEDURE TMapfunk.Set_next_Zaun(x1,y1,z1: single;zaun_reihe,zaun_teil:integer; draw_z, draw_p:boolean);
  2. BEGIN
  3. setlength(zaun, 2);
  4. setlength(zaun[zaun_reihe].zaun_a, 1);
  5. zaun[zaun_reihe].zaun_a[zaun_teil].X := x1;
  6. zaun[zaun_reihe].zaun_a[zaun_teil].y := y1;
  7. zaun[zaun_reihe].zaun_a[zaun_teil].z := z1;
  8. zaun[zaun_reihe].zaun_a[zaun_teil].draw_zaun := draw_z;
  9. zaun[zaun_reihe].zaun_a[zaun_teil].draw_pfosten := draw_p;
  10. END;


So... ich möchte in den in einen array in einem record in einem array speichern. Irgendwie gelingt es mir nicht...

Bild


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Feb 19, 2004 18:00 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 23, 2002 19:27
Beiträge: 5812
Programmiersprache: C++
Die Fehlermeldung lässt auf eine Verletzung deiner Array-Grenzen schliessen. Da du aber nicht gesagt hast welche Parameter du an deine Funktionen übergibts kann man dir wohl kaum helfen.
Stell also einfach sicher das du nicht auf irgendwelche Elemente ausserhalb deines Arrays zugreifst. Dazu gibts neben den passenden Compileroptionen den überaus nützlichen Debugger.

P.S. : Bin mir ziemlich sicher das entweder zaun_reihe oder zaun_teil ausserhalb der Grenzen deiner Arrays liegen.

_________________
www.SaschaWillems.de | GitHub | Twitter | GPU Datenbanken (Vulkan, GL, GLES)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Feb 19, 2004 18:05 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Okt 27, 2003 17:46
Beiträge: 788
MapFunk.set_next_zaun(119,15,739,0,0,False,True);
MapFunk.Set_next_Zaun(112,14,793,0,1,True,True);

so setze ich es... mein Prob ist seltsam... ich greife auch nicht mehr danach darauf zu... (hab ich abgeschaltet) die array Grenzen können doch so garnicht verletzt werden oder? ich gehe bei "zaun" nur bis 0 und bei "zaun_a" nur bis 1 ...


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Feb 19, 2004 18:28 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 23, 2002 19:27
Beiträge: 5812
Programmiersprache: C++
Da ist doch schon dein Problem gelöst. Array-Indices beginnen in Delphi bei Null. Zaun_a ist bei dir ein Element groß, nämlich .zaun_a[0], aber dein zweiter Funktionsaufruf greift auf .zaun_a[1] zu.

Normalerweise sollte man sowas aber nach kurzem Debuggen recht schnell rausgefunden haben, zumal Delphic hier zu dem Thema doch ein sehr gutes Tutorial verfasst hat...

_________________
www.SaschaWillems.de | GitHub | Twitter | GPU Datenbanken (Vulkan, GL, GLES)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Feb 19, 2004 18:58 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Okt 27, 2003 17:46
Beiträge: 788
Ahhh. HZab Zaun und Zaun_a vertauscht :(

Danke geht jetzt


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 5 Beiträge ] 
Foren-Übersicht » Programmierung » Allgemein


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 6 Gäste


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.008s | 16 Queries | GZIP : On ]