Interessant! Ich bekomme bei dem folgenden Code, der im Wesentlichen eine Essenz des oben gezeigten ist, unter D2010 einen
RangeError:
Delphi-Quellcode:
procedure Main;
var
ArraySize: Integer;
xy: TArray<TPoint>;
meta: TArray<Integer>;
pXY: PPoint;
x1: Integer;
x2: Integer;
y1: Integer;
y2: Integer;
begin
SetLength(xy, 10);
xy[0].x := 80 + 110; xy[0].y := 135 + 50;
xy[1].x := 140 + 110; xy[1].y := 130 + 50;
xy[2].x := 160 + 110; xy[2].y := 80 + 50;
xy[3].x := 180 + 110; xy[3].y := 130 + 50;
xy[4].X := 240 + 110; xy[4].y := 135 + 50;
xy[5].X := 192 + 110; xy[5].y := 165 + 50;
xy[6].X := 210 + 110; xy[6].y := 220 + 50;
xy[7].X := 160 + 110; xy[7].y := 190 + 50;
xy[8].X := 110 + 110; xy[8].y := 220 + 50;
xy[9].X := 128 + 110; xy[9].y := 165 + 50;
ArraySize := 10;
pXY := @xy[0];
meta := Pointer(pXY);
{$R+}
x1 := meta[0];
y1 := meta[1];
x2 := meta[(ArraySize * 2) - 2]; // <== ERangeError
y2 := meta[(ArraySize * 2) - 1];
Writeln(x1, y1, x2, y2);
end;