AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi Linie Zeichnen und Verschiebbar machen - Richtiger Anstatz ?
Thema durchsuchen
Ansicht
Themen-Optionen

Linie Zeichnen und Verschiebbar machen - Richtiger Anstatz ?

Ein Thema von th_bone · begonnen am 28. Jan 2006 · letzter Beitrag vom 28. Jan 2006
Antwort Antwort
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
ichbins

Registriert seit: 9. Jul 2005
Ort: Hohenaltheim
1.001 Beiträge
 
Delphi 2005 Personal
 
#2

Re: Linie Zeichnen und Verschiebbar machen - Richtiger Ansta

  Alt 28. Jan 2006, 10:58
Zitat:
if dopaint=true then begin
schreib doch einfach:
if dopaint then begin dopoint ist bereits eine boolean-Variable.

zum Thema: ich würde es so machen dass du den (komplexen?) Hintergrund in einer Bitmap-Variable hast und dann bei Mausbewegung wenn dopaint aktiviert ist das Bitmap neu auf den Canvas drawst und die Linie dann nächträglich hinzufügst.

Achtung: im onpaint-Ereigniss des Forms musst du das Bitmap auch drawen.
Michael Enßlin
Ich, der ich weiß, mir einzubilden, dass ich weiß, nichts zu wissen, weiß, dass ich nichts weiß.
Sokrates
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:16 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz