Danke. Die Idee ist nicht schlecht
Aber!
Ich kann "a" nicht als TNegativeArray definieren..
Denn "a" ist schon als a: TSprite (Record) definiert.
Dann schreib halt irgendeinen anderen Bezeichner hin. Da du SP verwendest schreib halt
Delphi-Quellcode:
TYPE TSprite = record
x: Integer;
y: Integer;
w: Integer;
h: Integer;
visible: Bool;
end;
TNegativeArray = class(TObject)
private
maxVal : Integer;
fdata : array of TSprite;
function getData(index : Integer) : TSprite; inline;
procedure setData(index : Integer; aData : TSprite); inline;
public
Constructor Create(aLenght : Integer);
Destructor Destroy; override;
property
Data [ index : Integer ] : Irgendwas
read getData write setData; default;
end;
implementation
Constructor TNegativeArray.Create(aLenght : Integer);
begin
inherited;
SetLength(fdata,aLength);
end;
function TNegativeArray.getData(index : Integer) : TSprite;
begin
assert(index<=0);
result := fData[abs(index)];
end;
procedure TNegativeArray.setData(index : Integer; aData : TSprite);
begin
assert(index<=0);
fData[abs(index] := aData;
end;
und verwende das ganze so
Delphi-Quellcode:
const
ID_LEFT = -1;
ID_RIGHT = -2;
var sp : TNegativeArray; // Sprite Stack
begin
sp := TNegativeArray.Create(3); // Hat Element -1, -2 _und_ 0
sp[ID_LEFT].x := 0;
....
end.
cu Ha-Jö