Ich hoffe du hast recht =)
Hier ist der Code:
-ich hab nen record
-eine Imagebox
-einen Pointer auf die Bild-Rohdaten der Imagebox im RAM
-der Pointer soll 100 bzw 50 mal in das Array im record kopiert werden
Code: Alles auswählen
type
TIMGSet = packed record
Width, Height, SliceCount: integer;
PIMG_Array: Array of PWord;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
i: integer;
LPnt: Pointer;
begin
FIMGSet.Height:= 100;
FIMGSet.Width:= 100;
FIMGSet.SliceCount:= 50;
SetLength(FIMGSet.PIMG_Array, 50);
LPnt := Image1.Picture.Pixmap.RawImage.Data;
for i := 0 to 49 do
begin
FIMGSet.PIMG_Array[i] := LPnt;
end;
end;
Bereits versucht:
var LPnt als PByte oder PWord
damit zusammenhängend PWord(...); und Pointer(...); auch getestet
Move(...); erzielt auch keinen Effekt
In der Watchlist habe ich:
i -> korrekt angezeigt
FIMGSet.PIMG_Array[i-1] -> Werte laufen hübsch durch, also abfrage geht
FIMGSet.PIMG_Array
-> aber Werte ändern sich nicht, was das Ziel ist
FIMGSet.PIMG_Array[i+1]
FIMGSet.PIMG_Array[i+2]
LPnt -> korrekt