Fehler bei Array Deklaration

Für Fragen zur Programmiersprache auf welcher Lazarus aufbaut
Antworten
e445697
Beiträge: 11
Registriert: Fr 22. Jun 2012, 11:46

Fehler bei Array Deklaration

Beitrag von e445697 »

Hallo Leute,

ich brauche mal eure Hilfe. Ich habe ein multidimensionales Array deklariert und wenn ich das ausführe das Programm bekomme ich erst keinen errror.
Erst wenn ich einen String in das Array Speichern will riege ich einen error der so lautet:

Projekt project1 hat Exception-Klasse >>External:SIGSEGV<< ausgelöst. Bei Adresse 403AC1
und dann im Assemler 00403AC1 833a00 cmpl $0x0,(%edx) ist dies makkiert:


Danke im Vorraus

Hier der Quelltext dazu.

Code: Alles auswählen

  type
    TSchueler = Record
      Name: String;
    end;
    TKurs = (Kurs1, Kurs2, Kurs3, Kurs4, Kurs5, Kurs6);
    TSchulKlasse = (Klasse1);
 
var
  Form3: TForm3;
  MeineSchueler : Array[TSchulKlasse] of Array[TKurs] of Array of TSchueler;
 
implementation
 
uses
  Unit1, Unit2, Unit6;
 
{$R *.lfm}
 
{ TForm3 }
 
procedure TForm3.Button1Click(Sender: TObject);
begin
 
  {--------------------Namen in die Arrays Speichern-------------------------}
   SetLength(MeineSchueler[Klasse1, Kurs1],30);
   SetLength(MeineSchueler[Klasse1, Kurs2], 30);
   SetLength(MeineSchueler[Klasse1, Kurs3], 30);
   SetLength(MeineSchueler[Klasse1, Kurs4], 30);
   SetLength(MeineSchueler[Klasse1, Kurs5], 30);
   SetLength(MeineSchueler[Klasse1, Kurs6], 30);
 
   MeineSchueler[Klasse1, Kurs1, 1].Name := Edit1.Text;
   MeineSchueler[Klasse1, Kurs1, 2].Name := Edit2.Text;
   MeineSchueler[Klasse1, Kurs1, 3].Name := Edit3.Text;
   MeineSchueler[Klasse1, Kurs1, 4].Name := Edit4.Text;
   MeineSchueler[Klasse1, Kurs1, 5].Name := Edit5.Text;
   MeineSchueler[Klasse1, Kurs1, 6].Name := Edit6.Text;
   MeineSchueler[Klasse1, Kurs1, 7].Name := Edit7.Text;
   MeineSchueler[Klasse1, Kurs1, 8].Name := Edit8.Text;
   MeineSchueler[Klasse1, Kurs1, 9].Name := Edit9.Text;
   MeineSchueler[Klasse1, Kurs1, 10].Name := Edit10.Text;
   MeineSchueler[Klasse1, Kurs1, 11].Name := Edit11.Text;
   MeineSchueler[Klasse1, Kurs1, 12].Name := Edit12.Text;
   MeineSchueler[Klasse1, Kurs1, 13].Name := Edit13.Text;
   MeineSchueler[Klasse1, Kurs1, 14].Name := Edit14.Text;
   MeineSchueler[Klasse1, Kurs1, 15].Name := Edit15.Text;
   MeineSchueler[Klasse1, Kurs1, 16].Name := Edit16.Text;
   MeineSchueler[Klasse1, Kurs1, 17].Name := Edit17.Text;
   MeineSchueler[Klasse1, Kurs1, 18].Name := Edit18.Text;
   MeineSchueler[Klasse1, Kurs1, 19].Name := Edit19.Text;
   MeineSchueler[Klasse1, Kurs1, 20].Name := Edit20.Text;
   MeineSchueler[Klasse1, Kurs1, 21].Name := Edit21.Text;
   MeineSchueler[Klasse1, Kurs1, 22].Name := Edit22.Text;
   MeineSchueler[Klasse1, Kurs1, 23].Name := Edit23.Text;
   MeineSchueler[Klasse1, Kurs1, 24].Name := Edit24.Text;
   MeineSchueler[Klasse1, Kurs1, 25].Name := Edit25.Text;
   MeineSchueler[Klasse1, Kurs1, 26].Name := Edit26.Text;
   MeineSchueler[Klasse1, Kurs1, 27].Name := Edit27.Text;
   MeineSchueler[Klasse1, Kurs1, 28].Name := Edit28.Text;
   MeineSchueler[Klasse1, Kurs1, 29].Name := Edit29.Text;
   MeineSchueler[Klasse1, Kurs1, 30].Name := Edit30.Text;  

mse
Beiträge: 2013
Registriert: Do 16. Okt 2008, 10:22
OS, Lazarus, FPC: Linux,Windows,FreeBSD,(MSEide+MSEgui 4.6,git master FPC 3.0.4,fixes_3_0)
CPU-Target: x86,x64,ARM

Re: Fehler bei Array Deklaration

Beitrag von mse »

Der Idex von "Array of TSchueler" läuft von 0..length-1 (dynamisches Array) also:

Code: Alles auswählen

 
  MeineSchueler[Klasse1, Kurs1, 0].Name := Edit1.Text;
[...]
 MeineSchueler[Klasse1, Kurs1, 29].Name := Edit30.Text; 
 

Antworten