Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Array als Parameter/ Zugriffsverletzung (https://www.delphipraxis.net/166261-array-als-parameter-zugriffsverletzung.html)

Jikklas 4. Feb 2012 22:51

Delphi-Version: 7

Array als Parameter/ Zugriffsverletzung
 
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

himitsu 4. Feb 2012 22:59

AW: Array als Parameter/ Zugriffsverletzung
 
Zitat:

Delphi-Quellcode:
BrownProp1.Create(1, 1, brownprop1_pos);

Das Array ist OK, aber so als Frage:
Wie erstellt man ein Objekt?

Jikklas 5. Feb 2012 00:03

AW: Array als Parameter/ Zugriffsverletzung
 
Zitat:

Zitat von himitsu (Beitrag 1149288)
Das Array ist OK, aber so als Frage:
Wie erstellt man ein Objekt?

Wenn du so fragst, dann hab ichs wahrscheinlich falsch gemacht :D
Wie müsste ichs denn machen?

Edit: Bin grad von selbst drauf gekommen :D danke für den Hinweis.
es muss heißen

BrownProp1:= TProperty.Create(1, 1, brownprop1_pos);

himitsu 5. Feb 2012 00:21

AW: Array als Parameter/ Zugriffsverletzung
 
:thumb:

ach ja, welcome


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:49 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz