Aber auf sienem Screenshot ist zu erkennen, dass er Delphi7 nutzt, also sollte man auch entsrpechend antworten @faux
Aber ich kann das gut nachvollziehen, ich hab auch überlegt, ob ich ne .NET-Lösung vorschlage
@kezboard: Nachdem du mit Delphi7 arbeitest, wähle bitte nicht Delphi.NET als Sprache aus, sondern
Win32
Im Delphi7-Handbuchsatz wird das ganz einfach so gemacht, dass man sich den Punkt merkt, von dem die Linie ausgeht. Wenn man dann die Maus bewegt, wird die neue Linie gezeichnet und die alte gelöscht.
Wir brauchen folgende Variablen:
Drawing: Boolean;
Origin, MovePt: TPoint;
Im OnMouseDown der Form/PaintBox/wasauchimmer:
Delphi-Quellcode:
Drawing := true;
Canvas.MoveTo(X, Y);
Origin := Point(X, Y);
MovePt := Point(X, Y);
Im MouseUp:
Delphi-Quellcode:
Canvas.MoveTo(Origin.X, Origin.Y);
Canvas.LineTo(X, Y);
Drawing := false;
Im MouseMove:
Delphi-Quellcode:
if Drawing then
begin
Canvas.Pen.Mode := pmNotXor;
Canvas.MoveTo(Origin.X, Origin.Y);
Canvas.LineTo(MovePt.Y, MovePt.Y);
Canvas.MoveTo(Origin.X, Origin.Y);
Canvas.LineTo(X, Y);
end;
MovePt := Point(X, Y);
Canvas.Pen.Mode := pmCopy;
Julian J. Pracht