Zitat von
Flo.Hoe:
@Flocke: Die Methode die du mir gegeben hast setzt den Bezugspunkt nicht auf die Form, sondern auf einen Festen Punkt auf dem "Monitor". So kommt es dazu, dass die Zeichnungen sich verschieben, wenn die Form verschoben wird.
Dann probiere die Varianten OffsetWindowOrgEx bzw. OffsetViewportOrgEx, die verschieben den Ursprung und setzen ihn nicht komplett neu. Außerdem solltest du diese Aktion später wieder rückgängig machen, also etwa so:
Delphi-Quellcode:
var
pt: TPoint;
begin
OffsetWindowOrgEx(Canvas.Handle, DeltaX, DeltaY, pt);
try
// Zeichnen auf Canvas
finally
SetWindowOrgEx(Canvas.Handle, pt.X, pt.Y, nil);
end;
end;
Nachtrag: Siehe auch unter
Coordinate Space and Transformation Functions, da finden sich alle
API-Funktionen, die damit zu tun haben.