Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Beim Click eines Buttons OnMouseDown ausführen (https://www.delphipraxis.net/186411-beim-click-eines-buttons-onmousedown-ausfuehren.html)

GroZ 1. Sep 2015 13:28

Delphi-Version: 7

Beim Click eines Buttons OnMouseDown ausführen
 
Moin,

Ich möchte wie bei MS Paint eine Linie zeichnen. Sprich wenn ich den Button Clicke er eine Anweisung ausführt die im Event OnMouseDown steht. Wie geht das?

TiGü 1. Sep 2015 13:34

AW: Beim Click eines Buttons OnMouseDown ausführen
 
Was hast du denn bisher an Quelltext?

baumina 1. Sep 2015 13:38

AW: Beim Click eines Buttons OnMouseDown ausführen
 
Beim Paint wüsste ich keinen Button, der gleich eine Linie zeichnet, denn um eine Linie zu zeichnen wirst du sicherlich auf die Position des Mauszeigers verweisen, der sich bei einem Buttonklick höchstwahrscheinlich auf dem Button befindet. Deswegen befürchte ich dass da ein kleiner Denkfehler besteht.

GroZ 1. Sep 2015 13:39

AW: Beim Click eines Buttons OnMouseDown ausführen
 
naja zu dem thema nix. Brauch ich dafür ne Schleife ?
Delphi-Quellcode:
if Button3Click do
oder gibs dafür ne andere Methode?

GroZ 1. Sep 2015 13:40

AW: Beim Click eines Buttons OnMouseDown ausführen
 
Zitat:

Zitat von baumina (Beitrag 1314250)
Beim Paint wüsste ich keinen Button, der gleich eine Linie zeichnet, denn um eine Linie zu zeichnen wirst du sicherlich auf die Position des Mauszeigers verweisen, der sich bei einem Buttonklick höchstwahrscheinlich auf dem Button befindet. Deswegen befürchte ich dass da ein kleiner Denkfehler besteht.

Nein ich meine das wenn ich den Button clicke > und dann auf die Zeichenfläche gehe das er dann weiß dass er eine Linie zeichnen muss. Mir gehts nur darum das er weiß wenn ich den button drücke er dann nicht mehr frei hand zeichnet sondern eine linie
Hoffe es ist einigermaßen verständlich

mkinzler 1. Sep 2015 13:42

AW: Beim Click eines Buttons OnMouseDown ausführen
 
Rufe die Methode doch dort auf

Delphi-Quellcode:
FormMouseDown( self, TMouseButton.mbLeft, [], Mouse.CursorPos.X, Mouse.CursorPos.Y);

TiGü 1. Sep 2015 13:45

AW: Beim Click eines Buttons OnMouseDown ausführen
 
Zitat:

Zitat von GroZ (Beitrag 1314252)
Mir gehts nur darum das er weiß wenn ich den button drücke er dann nicht mehr frei hand zeichnet sondern eine linie

Wer ist denn "er"?
Versuche dir nicht nur vorzustellen was du möchtest, sondern auch das wie!

Nehme mal einen Stift in die Hand und ein Blatt Papier.
Woher weißt du jetzt, dass du eine Linie mit dem Stift auf dem Papier malen kannst?
Steht in deinen Gehirn jetzt irgendwo die Information "Habe Stift ausgewählt/in der Hand", ja oder nein?

baumina 1. Sep 2015 13:50

AW: Beim Click eines Buttons OnMouseDown ausführen
 
Du kannst dafür statt einem normalen Button z.B. einen Speedbutton verwenden. Ein Speedbutton kann als gedrückt (down) oder nicht gedrückt dargestellt werden. In dem MouseDown kannst du dann auf SpeedButton.Down abfragen.

GroZ 1. Sep 2015 13:54

AW: Beim Click eines Buttons OnMouseDown ausführen
 
Zitat:

Zitat von baumina (Beitrag 1314259)
Du kannst dafür statt einem normalen Button z.B. einen Speedbutton verwenden. Ein Speedbutton kann als gedrückt (down) oder nicht gedrückt dargestellt werden. In dem MouseDown kannst du dann auf SpeedButton.Down abfragen.

Sehr gut danke :)

Jumpy 1. Sep 2015 14:00

AW: Beim Click eines Buttons OnMouseDown ausführen
 
Besser erscheint es mir aber zusätzlich dazu einen Speedbutton zu verwenden einfach sich zu merken welches Zeichenwerkzeug (Freihand,Linie,Ellipse,Auswahlrechteck,...) gerade aktiv ist. Sprich beim drücken des Buttons das Werkzeug festlegen. Nicht, dass du immer in einer Schleife alle Werkzeugbuttons durchgehst um zu sehen, welcher gerade "down" ist.


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:34 Uhr.
Seite 1 von 2  1 2      

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