Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi MouseMove zeichnet auf Canvas Punkte (https://www.delphipraxis.net/78852-mousemove-zeichnet-auf-canvas-punkte.html)

Skycl4w 12. Okt 2006 00:36


MouseMove zeichnet auf Canvas Punkte
 
Hallo DP

Ich hab derzeit ein Problem mit Canvas und MouseMove.

Ich möchte mit MouseMove auf einem Canvas zeichnen. Zieht man die Maus jedoch schneller, erscheinen statt durchgezogene Linien Punkte. Die Variable Zeichne wird mit MouseDown und Up geändert.

Delphi-Quellcode:
procedure TMain.imCanvasMouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
  if Zeichne = 1 then
    begin
      with imCanvas.canvas do
        begin
          moveto(x,y);
          lineto(x+1,y+1);
        end;
    end;
end;
Danke im vorraus

Sunlight7 12. Okt 2006 04:17

Re: MouseMove zeichnet auf Canvas Punkte
 
Hallo Skycl4w!

Der Ansatz war schon der Richtige, nur die Ausführung nicht ganz.
So klappt es.

Delphi-Quellcode:
procedure TMain.imCanvasMouseDown(Sender:TObject; Button:TMouseButton; Shift:TShiftState; X, Y:Integer);
begin
  Zeichne:=True;
  imCanvas.canvas.moveto(x, y);
end;

procedure TMain.imCanvasMouseMove(Sender:TObject; Shift:TShiftState; X, Y:Integer);
begin
  if Zeichne then
     imCanvas.canvas.lineto(x, y);
end

procedure TMain.imCanvasMouseUp(Sender:TObject; Button:TMouseButton; Shift:TShiftState; X, Y:Integer);
begin
  Zeichne:=False;
end;

Skycl4w 12. Okt 2006 11:37

Re: MouseMove zeichnet auf Canvas Punkte
 
*mit brett vor Stirn schlag*

klar...wenn mans sieht isses total logisch...
Danke ^^

dino 12. Okt 2006 12:04

Re: MouseMove zeichnet auf Canvas Punkte
 
stimmt habs auch ausprobiert...

das ist halt mit der "besonderen Denkweise der Programmierer" gemeint

Sunlight7 12. Okt 2006 12:09

Re: MouseMove zeichnet auf Canvas Punkte
 
Zitat:

Zitat von Skycl4w
*mit brett vor Stirn schlag*

Ich hoffe, die Kopfschmerzen halten sich in Grenzen.

Zitat:

Zitat von dino
das ist halt mit der "besonderen Denkweise der Programmierer" gemeint

Wieso?
Ist das so schwierig? :zwinker:
So ein ähnliches Beispiel steht sogar in der OH.


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:40 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz