Hallo erstmal,
ich habe folgendes Problem: Ich will einen Array als Parameter übergeben, bekomme aber eine Zugriffsverletzung als Fehlermeldung. Ich habe für den Array einen Typen erstellt und den Array als Konstante dieses Typs deklariert.
Diesen benutze ich dann als Parameter.
Hier der Teil des Codes, der das Problem verursacht:
Delphi-Quellcode:
unit Unit1;
interface
uses
{...}, Unit2;
type
TForm1 =
class(TForm)
{...}
private
{...}
BrownProp1: TProperty;
{...}
procedure SetupTypes;
public
{...}
end;
const
{...}
brownprop1_pos: TPosition = (256/225, 0, 22/15);
var
Form1: TForm1;
implementation
{...}
procedure TForm1.SetupTypes;
begin
{...}
//der folgende Aufruf macht Probleme:
BrownProp1.Create(1, 1, brownprop1_pos);
end;
{...}
end.
die 2te
Unit des Programms:
Delphi-Quellcode:
unit Unit2;
interface
uses
{...};
type
TPosition =
Array [0..2]
of GLFloat;
type
TSpace =
class(TObject)
private
FNumber: Integer;
FPositionCoord: TPosition;
FHeight: GLFloat;
FWidth: GLFloat;
FEdge: Integer;
public
constructor Create(Num, EdgeNum: Integer; H, W: GLFloat;
const Pos: TPosition);
end;
type
TProperty =
class(TSpace)
private
FOwner:
String;
FHouses, FHotels: Integer;
public
constructor Create(Num, EdgeNum: Integer;
const Pos: TPosition);
end;
implementation
{$O-}
constructor TSpace.Create(Num, EdgeNum: Integer; H, W: GLFloat;
const Pos: TPOsition);
begin
inherited Create;
FNumber:= Num;
FEdge:= EdgeNum;
FHeight:= H;
FWidth:= W;
FPositionCoord:= Pos;
end;
constructor TProperty.Create(Num, EdgeNum: Integer;
const Pos: TPosition);
begin
inherited Create(Num, EdgeNum, 8/15, 74/225, Pos);
FOwner:= '
none';
FHouses:= 0;
FHotels:= 0;
end;
end.
Danke schonmal im Voraus