Einzelnen Beitrag anzeigen

EWeiss
(Gast)

n/a Beiträge
 
#10

AW: Codeoptimierung verursacht probleme

  Alt 20. Jan 2017, 14:22
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
  Mit Zitat antworten Zitat