Wieviel Speicher hast erstmal noch maximal übrig, für dein Bitmap? (der größte Wert)
Vom FastMM könnte man sich eine Memory-Map erstellen lassen, aber so reicht es auch aus.
Delphi-Quellcode:
var
M:
array[0..31]
of UInt32;
P:
array[0..31]
of Pointer;
i: UInt32;
begin
FillChar(M, SizeOf(M), 0);
FillChar(P, SizeOf(P), 0);
i := 0;
while i <= High(M)
do begin
M[i] := 4195352576;
// 4000+1 MB
repeat
Dec(M[i], 1048576);
P[i] := GetMemory(M[i]);
until (M[i] = 0)
or Assigned(P[i]);
Inc(i);
end;
for i := 0
to High(P)
do
FreeMemory(P[i]);
for i := 0
to High(P)
do
Memo1.Lines.Add((M[i] / 1048576).ToString+'
MB');
end;