![]() |
Delphi-Version: 5
Paint nachprogrammieren
Guten Morgen liebe Delphi Gemeinde,
Ich brauch mal wieder die Hilfe von euch. Ich bin dabei ein Paint Programm zu schreiben bin auch ganz gut dabei und komme immer besser klar. Mein Problem: Er malt schon wenn ich die maus bewege möchte das aber nur mit Linksklick haben. //Ist das dann nur die procedure auf onClick umschreiben? Er Startet ausserdem bei den Koordinaten (0,0) Sprich oben links der Paintbox. Wichtiger wäre das erste Problem.
Delphi-Quellcode:
unit Unit1;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls, cxGraphics, cxLookAndFeels, cxLookAndFeelPainters, Menus, ImgList, StdCtrls, cxButtons; type TForm1 = class(TForm) Zeichenflaeche: TPaintBox; Panel: TPanel; FarbeBTN: TcxButton; cxButton1: TcxButton; cxImageList1: TcxImageList; procedure ZeichenflaechePaint(Sender: TObject); procedure ZeichenflaecheMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); procedure ZeichenflaecheMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); private { Private-Deklarationen } Draw : boolean; BeginP : TPoint; public { Public-Deklarationen } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.ZeichenflaechePaint(Sender: TObject); begin Zeichenflaeche.Canvas.Brush.Color := clWhite; Zeichenflaeche.Canvas.FillRect(Zeichenflaeche.ClientRect); end; procedure TForm1.ZeichenflaecheMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin draw := true; BeginP.X := X; BeginP.Y := Y; end; procedure TForm1.ZeichenflaecheMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); var pt: TPoint; begin if draw then begin pt := Mouse.CursorPos; Zeichenflaeche.Canvas.lineTo(x,y); end; end; end. |
AW: Paint nachprogrammieren
Delphi-Quellcode:
Wo hast Du das den her kopiert?
procedure TForm1.ZeichenflaecheMouseMove(Sender: TObject;
Shift: TShiftState; X, Y: Integer); var pt: TPoint; begin if draw then begin pt := Mouse.CursorPos; // Was ist mit pt? Zeichenflaeche.Canvas.lineTo(x,y); // Ach jetzt doch X & Y end; end; Schreib doch einfach noch die MouseUp Routine und setze draw auf false. Vielleicht liest Du mal das ein oder andere tutorial? |
AW: Paint nachprogrammieren
Du kannst dir den
![]() ![]() |
AW: Paint nachprogrammieren
Wann soll er anfangen zu malen? - Hast du richtig erkannt, im MouseDown!
Wann soll er aufhören zu malen? - Ja? Beim Mal-Start solltest du auch den Startpunkt setzen:
Delphi-Quellcode:
Und beim Malen dann einfach nur noch eine Linie bis dort hin:
procedure TForm1.ZeichenflaecheMouseDown(
Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin draw := true; Zeichenflaeche.Canvas.MoveTo( X, Y ); end;
Delphi-Quellcode:
procedure TForm1.ZeichenflaecheMouseMove(
Sender: TObject; Shift: TShiftState; X, Y: Integer); begin if draw then begin Zeichenflaeche.Canvas.LineTo( X, Y ); end; end; |
AW: Paint nachprogrammieren
Ahh jetzt funktioniert es so wie ich es mir vorgestellt habe.
Danke! Gibt es eine Farbkomponente? Ich hab in meinem Buch was von ColorDialog gelesen aber nix gefunden.. Unter welchen Reiter find ich die? |
AW: Paint nachprogrammieren
Zitat:
|
AW: Paint nachprogrammieren
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:59 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 by Thomas Breitkreuz