Ähm du solltest keine Dyn. Arrays als Output einer Funktion verwenden, da u.a. z.b. noch die Laenge gespeichert wird. (Genau müsste ich da jetzt auch erstmal nachschauen)
Du kannst eher sowas nehmen:
Delphi-Quellcode:
type
TMyPixels = array[0..4096*4096-1] of Cardinal;
PMyPixels = ^TMyPixels;
var
Pixels: PPixels;
CreateDIBSection(....,Pixels,....);
Pixels[0]...
Außerdem solltest du in deinem Code mal die globalen Variablen entfernen. Und zu guter letzt: Lies dir nochmal meinen 2. Post mit meinem Beispiel KOMPLETT durch, da solltest die Lösung finden.
Ubrigens hast du da noch mehr Fehler im Code. Bei:
Delphi-Quellcode:
nSize := bm.bmWidth * bm.bmHeight;
for IntI := 0 to nSize do
fehlt mit Sicherheit ein -1
und statt einem "array of cardinal" bietet sich wohl auch ein "array of TRGBQuad" oder eine eigene Definition an.