Einzelnen Beitrag anzeigen

Vulthan

Registriert seit: 14. Dez 2009
3 Beiträge
 
#1

einen Record-Array aus anderer Unit benutzen

  Alt 14. Dez 2009, 20:04
Hallo Leute,
habe vor 2 jahren mal mehr schlecht als recht Delphi 5 gelernt und versuche nun nach eineiger Zeit Pause wieder einzusteigen.
Ich habe das Problem, dass ich einen applikationsfehler bekomme, ich aber nicht verstehe warum.

Hier der Quellcode:
__________________________________________________ _____

Unit Eingabemodul;

interface

uses
{Standart-units}, Rasse, Basis, Kultur, Profes;

Type
TForm1 = class(TForm)
{Die ganze Form halt}
procedure Beenden1Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Formactivate(Sender: TObject);
PRIVATE
{private-Daklarationen}
PUBLIC
{public-Deklarationen}
end;

Rassen = TRasse;
var
Form1 : TForm1;
Rassena : ARRAY OF Rassen;
i : INTEGER;

implementation

{$R *.dfm}

procedure TForm1.Formactivate(Sender: TObject);
begin
i := 1;
end;

procedure TForm1.Beenden1Click(Sender: TObject);
begin
close;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
Rassena[i].Name := Edit1.Text; {--> Dort passiert der Fehler!}
Rassena[i].Modi.Lep := STRTOINT(Edit2.Text);
Rassena[i].Modi.Aup := STRTOINT(Edit3.Text);
Rassena[i].Modi.Asp := STRTOINT(Edit4.Text);
Rassena[i].Modi.MR := STRTOINT(Edit5.Text);
Rassena[i].Gross.Min := STRTOINT(Edit6.Text);
Rassena[i].Gross.Zahl := STRTOINT(Edit7.Text);
Rassena[i].Gross.Wuerfel := STRTOINT(Edit8.Text);
Rassena[i].Alter.Min := STRTOINT(Edit9.Text);
Rassena[i].Alter.Zahl := STRTOINT(Edit10.Text);
Rassena[i].Alter.Wuerfel := STRTOINT(Edit11.Text);
Listbox1.Items.Add(Rassena[i].Name);
INC(i);
end;

end.
__________________________________________________ ____
Das war die eine Unit, jetzt folgt die andere


__________________________________________________ ___

unit Rasse;

interface

uses Basis, Kultur, Profes;

Type
TGross = RECORD
Min : INTEGER;
Zahl: INTEGER;
Wuerfel: INTEGER;
end;

TAlter = RECORD
Min : INTEGER;
Zahl: INTEGER;
Wuerfel : INTEGER;
end;

TRasse = RECORD
Name : STRING;
Modi : TModi; {--> ist in Unit Basis deklariert}
Gross : TGross;
Alter : TAlter;
SFS : ARRAY OF TSF; {--> ist in Unit Basis deklariert}
Talent : TTalent; {--> ist in Unit Basis deklariert}
EKultu : ARRAY OF TKultur; {--> ist in Unit Basis deklariert}
MKultu : ARRAY OF TKultur; {--> ist in Unit Basis deklariert}
end;

implementation

end.
__________________________________________________ __________________

Ich denke es ist ein simpler Verknüpfungsfehler zwischen den Unit, den Kompilieren tu er ja.
Vielleicht muss ich TRasse irgendwie public setzen??
Ich finde den Fehler einfach nicht.

Schon mal Danke an alle
  Mit Zitat antworten Zitat