Beispiel..
SetRect(pr^[pData^.rdh.nCount], M, J, I, J + 1);
nCount ist DWORD die Übergabe muss aber Integer sein.
Es kracht wenn die Werte minus enthalten
Das
SetRect(pr^[Integer(pData^.rdh.nCount)]
bringt nichts.
Das ist der Grund warum ich keine Bereichs Prüfung einschalte.
gruss
Wenn du das ein bisschen entzerren würdest, wäre dir auch klarer woher der Fehler kommt.
Delphi-Quellcode:
var
KlugbenanntesRect: TRect;
RectCount: DWORD;
...
begin
SetRect(KlugbenanntesRect, M, J, I, J + 1);
RectCount := pData^.rdh.nCount;
if (RectCount > 0) and (RectCount < Length(pr^)) then
begin
pr^[RectCount] := KlugbenanntesRect;
end;
end;