Einzelnen Beitrag anzeigen

Jikklas

Registriert seit: 4. Feb 2012
2 Beiträge
 
#1

Array als Parameter/ Zugriffsverletzung

  Alt 4. Feb 2012, 22:51
Delphi-Version: 7
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
  Mit Zitat antworten Zitat