Hallo,
Bin bei meiner Programmierung auf der Suche
nach einer speicherplatzsparenden Array-Variante.
Mein Array im untenstehendes Code
führt bei einer Arraydimension [1..512, 1..512, 1..100]
zumZulaufen desd Arbeitsspeichers.
Error:= 'zu wenig Arbeitsspeicher';
Codebeispiel:
Delphi-Quellcode:
TEB_Pix = class(TObject)
private
FPix: integer;
procedure SetPix(const Value: integer);
function getPix: integer;
protected
public
published
property Pix: integer read getPix write SetPix;
end;
TEB_Grauwert = class(TObject)
private
FGrauwert: word;
procedure SetGrauwert(const Value: word);
function GetGrauwert: word;
protected
public
published
property Grauwert: word read GetGrauwert write SetGrauwert;
end;
TEB_PixMatrix = array of array of TEB_Pix; // 512 x 512
TEB_GrauMatrix = array of array of array of TEB_Grauwert; // 512 x 512 x 100
TEB_Buffer = array of Byte;
{ TEB_Bild }
TEB_Bild = class(TObject)
private
...
FPixMatrix: TEB_PixMatrix;
FGrauMatrix: TEB_GrauMatrix;
...
...
function GetGrauMatrix(Xind, Yind, Zind: integer): TEB_Grauwert;
function GetPixMatrix(Xind, Yind: integer): TEB_Pix;
procedure SetGrauMatrix(Xind, Yind, Zind: integer;
const Value: TEB_Grauwert);
procedure SetPixMatrix(Xind, Yind: integer; const Value: TEB_Pix);
protected
public
property PixMatrix[Xind, Yind: integer]: TEB_Pix read GetPixMatrix write
SetPixMatrix;
property GrauMatrix[Xind, Yind, Zind: integer]: TEB_Grauwert read
GetGrauMatrix write
SetGrauMatrix;
...
published
...
end;
var
Bild: TEB_Bild;
Hat nicht jemand eine Idee ?!
Danke im Voraus
EB
PS:
WinXP prof
2GB
RAM
2GB Page