Hallo,
ein Array of PGPPoint dürfte eigentlich nicht funktionieren. Die Funktion erwartet ja einen Pointer auf ein Array mit Punkten, nicht einen Pointer auf ein Array mit Pointern.
das einfachste ist übrigens folgendes:
Delphi-Quellcode:
procedure TMainForm.Draw;
const
ALPHA = 100;
var
Graphics: TGPGraphics;
GdiPen: TGPPen;
points: Array of TGPPoint;
PenR, PenG, PenB: Integer;
Count: Integer;
begin
PenR := GetRValue(clGray);
PenG := GetGValue(clGray);
PenB := GetBValue(clGray);
Graphics := TGPGraphics.Create(TChart(Sender).Canvas.Handle);
GdiPen := TGPPen.Create(MakeColor(Alpha, penR, PenG, PenB));
SetLength(Points, 4);
points[0].X := xBegin;
points[0].Y := y;
points[1].X := xEnd;
points[1].Y := y;
points[2].X := xEnd+xDelay;
points[2].Y := y-yDelay;
points[3].X := xBegin+xDelay;
points[3].Y := y-yDelay;
Count := 4;
Graphics.DrawPolygon(GdiPen, points, Count);
end;
Ich hab gerade kein Delphi zur Hand, um das zu überprüfen, aber da ein dynamisches Array ein Zeiger ist, müsste das gehen.
Gruß
xaromz