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;
Mag ja sein das ich damit den Fehler behandeln könnte aber es gibt noch genug andere die nicht zu beheben sind.
Der Datentypen mismatch halt.
Siehe die anderen Beispiele weiter oben.
gruss