Einzelnen Beitrag anzeigen

Benutzerbild von Nonsense
Nonsense

Registriert seit: 23. Nov 2002
389 Beiträge
 
Delphi 5 Standard
 
#10

Re: 2 Arrays definiert - im Endeffekt aber ein und das selbe

  Alt 5. Apr 2004, 20:13
Mehr als komisch, mein Contructor:
Delphi-Quellcode:
  TWorldArray = array of array of TCreature;

  TWorld = class(TObject)
  private
    FBufferArray: TWorldArray;
    FWorldArray : TWorldArray;
  public
    constructor Create(BlockNumX, BlockNumY, BlockHeight, BlockWidth: Integer);
    destructor Destroy; override;
    [...]
    procedure BufferCreature(SourceX, SourceY, TargetX, TargetY: Integer;
      BufferArray, WorldArray: TWorldArray);
    [...]
    property BufferArray: TWorldArray read FWorldArray;
    property WorldArray: TWorldArray read FWorldArray;
  end;

[...]

constructor TWorld.Create(BlockNumX, BlockNumY, BlockHeight,
  BlockWidth: Integer);
var
  i: Integer;
  j: Integer;
begin
  [ ... ]

  SetLength(FBufferArray, BlockNumX, BlockNumY);
  SetLength(FWorldArray, BlockNumX, BlockNumY);

  for i := 0 to FBlockNumX - 1 do
    for j := 0 to FBlockNumY - 1 do
    begin
      FBufferArray[i][j] := TSand.Create(i, j);
      FWorldArray[i][j] := TSand.Create(i, j);
    end;
end;
Vielleicht liegt es an der Zuweisung?
Delphi-Quellcode:
procedure TWorld.BufferCreature(SourceX, SourceY, TargetX, TargetY: Integer;
  BufferArray, WorldArray: TWorldArray);
begin
  BufferArray[TargetX][TargetY] := WorldArray[SourceX][SourceY];
end;
(Ich wollte jetzt zu 100% sicher gehen und habe die Arrays mit übergeben. Es ist natürlich klar, dass ich nur die Instanz der Klasse übergeben müsste, da ich ja per properties auf die Arrays zugreifen könnte.)
Würde bei dieser Zuweisung wirklich eine Kopie erstellt werden?
  Mit Zitat antworten Zitat