Einzelnen Beitrag anzeigen

Benutzerbild von MyRealName
MyRealName

Registriert seit: 19. Okt 2003
Ort: Heilbronn
675 Beiträge
 
Delphi 10.4 Sydney
 
#1

Code Umstellung von D7 auf D11.3

  Alt 15. Nov 2023, 07:27
Hallo,

wir stellen gerade ältere Anwendungen um, die compilieren unter D7 und laufen seit Jahren reibungslos.
Nun unter D11.3 kriegen wir Bereichsüberschreitungen im folgenden Fall:

Man hat ein Array, 32 Einträge, es ist als Array of TColor definiert.
Jetzt wird das untypisiert übergeben, zum so

Code:
const TMyColors: Array of TColor;

procedure Foo(const Colors; Count: Integer)
begin
  For i := 0 To Pred(Count) Do
    TMyColors(Colors)[i] := clBlack;
end;
Der erste Eintrag geht noch, beim nächsten crasht es. Wir haben es jetzt so gelöst, das wir das jetzt mal typisiert übergeben, aber es wäre interessant zu wissen, warum es nicht mehr geht.

Das zweite Problem war, dass man (wenn auch vllt. fälschlicherweise) einem Word ein Longint zuweist, das unter Delphi 7 ging, der obere Beweich dann halt abgeschnitten wird. Unter 11.3 crasht es :O
  Mit Zitat antworten Zitat