Entwickler-Ecke

Grafische Benutzeroberflächen (VCL & FireMonkey) - Bei allen Mausklicks Aktion durchführen


Stread - Do 01.04.10 10:58
Titel: Bei allen Mausklicks Aktion durchführen
Wie mache ich es wenn Zahlen aus einem Edit Feld in eine Variable speichern will wenn ich eine Maustaste drücke?
Mit der OnMouseDown Funktion? Gilt das auch für die rechte Maustaste? Kann mir das Programm dann auch sagen welche Maustaste gedrückt wurde?
Bei der mittleren Maustaste OnMouseWhelDown?


Xentar - Do 01.04.10 11:04

user profile iconStread hat folgendes geschrieben Zum zitierten Posting springen:
Wie mache ich es wenn Zahlen aus einem Edit Feld in eine Variable speichern will wenn ich eine Maustaste drücke?
Mit der OnMouseDown Funktion? Gilt das auch für die rechte Maustaste? Kann mir das Programm dann auch sagen welche Maustaste gedrückt wurde?

Wie schwer wäre es, das mal eben auszuprobieren?

Aber wie auch in deinem anderen Thread gilt: Das Ereignis wird nur ausgelöst, wenn du auf das entsprechende Objekt, wie z.B. das Formular, klickst.


Martok - Do 01.04.10 13:53

R T [http://docwiki.embarcadero.com/VCL/de/Controls.TControl.OnMouseDown] F [http://docs.embarcadero.com/products/rad_studio/delphiAndcpp2009/HelpUpdate2/EN/html/delphivclwin32/Controls_TControl_OnMouseDown.html] M [http://docs.embarcadero.com/products/rad_studio/delphiAndcpp2009/HelpUpdate2/EN/html/delphivclwin32/Controls_TMouseEvent.html]
Zitat:
In einer Ereignisbehandlungsroutine für OnMouseDown können Sie spezielle Verarbeitungen durchführen, wenn der Benutzer eine Maustaste drückt.

Die Routine kann auf das Drücken der linken, rechten oder mittleren Maustaste sowie auf das Drücken einer Sondertaste zusammen mit einer Maustaste reagieren.


Im übrigen:
user profile iconStread hat folgendes geschrieben Zum zitierten Posting springen:
Mit der OnMouseDown Funktion?

Nein, mit dem OnMouseDown Ereignis.

user profile iconXentar hat folgendes geschrieben Zum zitierten Posting springen:
Das Ereignis wird nur ausgelöst, wenn du auf das entsprechende Objekt, wie z.B. das Formular, klickst.

Stimmt, Mausereignisse kann man, anders als Tastaturereignisse, nicht einfangen. Macht auch wenig Sinn...


Stread - Do 01.04.10 14:30

Gibt es keine Möglichkeit durch Klicken mit der Maus außerhalb des Fensters eine Ereignis Stattfinden zu lassen?
Wenn nicht geht es durch drücken einer Taste? Über einen Hook oder auch einfacher? Ich will nur die Zahlen aus den Edit Feldern auslesen.
Auf einen Button drücken fällt weg, da ich die Mauskoordianten benötige.


MaPsTaR - Do 01.04.10 18:58

Hallo, ich glaube, das ist nur über einen Hook möglich.
Schau dir das mal an...
http://www.delphi-treff.de/tutorials/systemnahe-programmierung/mouse-und-tastatur-hooks/


platzwart - Do 01.04.10 18:59

Klingt irgendwie seltsam... Kannst du vlt einen Screenshot mit Kommentar erstellen?


Stread - Do 01.04.10 20:05

Was klingt seltsam?


MaPsTaR - Do 01.04.10 20:21

Ich denke mal, dass sich user profile iconplatzwart nicht sicher ist, ob sich dein Vorhaben mit den Forenregeln vereinbaren lässt.
Wer weiß, was genau du damit vor hast...


Stread - Do 01.04.10 21:32

Angst vor Keylogger oder was?

Versuch ich nun mal genauer zu beschreiben was ich meine
Ich will die Mauspositionen auf meinem Desktop,außerhalb der Form, als Koordinaten, laufend aktualisierend, angezeigt bekommen. Hab ich.
Ich habe das Fenster immer im Vordergrund so dass es andere Fenster immer überdeckt.
Nun möchte ich durch drücken der Maustaste oder einer Taste auf der Tastatur, dass die aktuelle Koordinate gespeichert wird. Bis jetzt geht das nur teilweise. Ich muss über ALt+Tab das Fenster wieder 'Aktivieren' und kann dann über die Tasten 1-9 verschiedene Koordinaten speichern.

Hoffe es ist bisschen klarer.


Martok - Fr 02.04.10 16:04

Ah, das ist doch was. Da kannst du tatsächlich entweder einen Keyboard/Maus-Hook verbauen, oder, was erstmal einfacher ist, RegisterHotKey probieren. Die Einschränkung davon hab ich jetzt so nicht im Kopf, deswegen müsstest du mal ausprobieren, obd das für deinen Zweck geht.

Diverse ScreenRecording Programme machen ja sowas, um die Aufnahme zu starten/beenden.


jaenicke - Fr 02.04.10 19:38

RegisterHotKey ist dafür schon richtig, das funktioniert damit. In dem Moment wo das ausgelöst wird kann dann die Mausposition mit GetCursorPos ausgelesen werden, fertig.