Einzelnen Beitrag anzeigen

th_bone

Registriert seit: 16. Jun 2004
172 Beiträge
 
Delphi 2005 Professional
 
#1

Linie Zeichnen und Verschiebbar machen - Richtiger Anstatz ?

  Alt 28. Jan 2006, 10:04
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;
  Mit Zitat antworten Zitat