Hi,
ich möchte eine Linie zeichen, die anschließend wenn man sie anklickt verschiebbar ist...
die Linie zeichen ist soweit kein problem - aber nun meine Frage
wie geht man am besten vor, um die Linie durck anklicken bewegbar zu machen ?
Ich könnte jetzt natürlich prüfen ob der mouseclick auf der position der Linie stattfindet, diese dann löschen und anhand der Bewegung der Mouse neu zeichnen...
aber ich Frage mich ob es hierzu nicht elegantere Lösungen oder Komponenten zur Lösung für so ein Problem gibt..
Danke für Tips
Ralf
P.S: hier mein Ansatz zum Liniezeichen
Delphi-Quellcode:
var
Form1: TForm1;
x1, y1, x2, y2 : longint;
dopaint : boolean;
implementation
{$R *.dfm}
procedure TForm1.PaintBox1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
x1:=x; x2:=x;
y1:=y; y2:=y;
dopaint:=true;
end;
procedure TForm1.PaintBox1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
if dopaint=true then begin
// alte Linie löschen
canvas.MoveTo(x1,y1);
Canvas.LineTo(x2,y2);
x2:=x; y2:=y;
// neue Linie zeichnen
canvas.MoveTo(x1,y1);
Canvas.LineTo(x,y);
end;
end;
procedure TForm1.PaintBox1MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
dopaint:=false;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
canvas.Pen.Mode:=pmNotXor;
end;