ich hab folgendes Problem:
Ich erzeuge immo 60 Instanzen vom Object TFeld und lade diese in eine Objectlist um sie später ordentlich verwalten zu können.
Die Objectlist gibt mir auch per Count die korrekte Anzahl der Instanzen von TFeld wieder.
Wenn ich aber per Index aus der Felderliste auf ein Object zugreifen will, übergibt die Liste ein NIL, was dann einen SigSev auslöst.
Hier der Code für TFeld
Code: Alles auswählen
type
{ TFeld }
TFeld = class(TObject)
type TFeldArr = Array[0..5] of TPoint;
private
FLand : boolean;
FWasser : boolean;
FFluss : boolean;
FStrasse : boolean;
FStadt : boolean;
FWald : boolean;
FSumpf : boolean;
public
P0, P1, P2, P3, P4, P5 : Tpoint;
X0X, X0Y: Integer;
constructor Create(MyArr:TFeldArr);
Destructor Free;
property Land: Boolean read FLand write FLand;
property Wasser : Boolean read FWasser write FWasser;
property Fluss : Boolean read FFluss write FFluss;
property Strasse : Boolean read FStrasse write FStrasse;
property Stadt : Boolean read FStadt write FStadt;
property Wald : Boolean read FWald write FWald;
property Sumpf : Boolean read FSumpf write FSumpf;
end;
implementation
{ TFeld }
constructor TFeld.Create(MyArr:TFeldArr);
begin
FLand := True;
FWasser := False;
FFluss := False;
FStrasse := False;
FStadt := False;
FWald := False;
FSumpf := False;
//Werteübergabe
P0 := MyArr[0];
P1 := MyArr[1];
P2 := MyArr[2];
P3 := MyArr[3];
P4 := MyArr[4];
P5 := MyArr[5];
X0X := P0.x;
end;
destructor TFeld.Free;
begin
end;
Code: Alles auswählen
Polygon(FHex);
Feld.Create(FHex);
TFelderListe.Add(Feld);
Code: Alles auswählen
var
TempFeld : TFeld;
.
.
.
For I:= 0 To TFelderliste.count -1 do
begin
TempFeld := TFelderliste.Items[I] as TFeld; //Mit Laufzeitprüfung; <-----------------------hier gibts nur NIL!!!!!!!!!!
begin
TestMemo.Lines.Add(IntToStr(i));
If TempFeld.Land= True then TestMemo.Lines.Add('Land JA') ;
end;
end;