Einzelnen Beitrag anzeigen

Benutzerbild von EccoBravo
EccoBravo

Registriert seit: 19. Okt 2004
Ort: Neuruppin
524 Beiträge
 
Delphi 2007 Architect
 
#1

su. nach speichersparender Array-Variante

  Alt 15. Okt 2009, 10:57
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
Wahre Aussage :=
Katzen, die bellen sind keine Kaninchen.

Der Kreisverkehr ist eine spezielle Form der Einbahnstraße
  Mit Zitat antworten Zitat