Entwickler-Ecke
Grafische Benutzeroberflächen (VCL & FireMonkey) - Erkennen ob die Linke Maustaste losgelassen wurde!!
DelphiManiac - Mi 29.08.07 11:27
Titel: Erkennen ob die Linke Maustaste losgelassen wurde!!
Hallo,
gibt es irgendeine Möglichkeit sich über das loslassen der Maustaste über einer Komponente (die Kein MouseUP Event hat) informieren zu lassen?
Mein Problem: ich nutze ein TJVSpinEdit.
Ein Editfeld der Jedis mit dem man auch Floatwerte darstellen kann, in dem Editfeld rechts hat man Up/Down Buttons (kennt mitsicherheit jeder) die zu hoch/runter zählen benutzt werden.
Nun das Edifeld als solche bietet mir ja ein MouseUP Event an, aber das bringt mir nichts, da ich ja das Event für die Buttons brauche.
Also Benutzer hält die Linke Maustaste gedrückt über dem (Bsp:) Hochzählen Button und lässt sie dann (irgendwann) los ,das muss ich erkennen können.
Danke schonmal...
//EDIT: Hatte MouseDown anstatt MouseUP geschrieben
chrisw - Mi 29.08.07 11:50
Wie wärs mit dem OnMouseUP Event ?
DelphiManiac - Mi 29.08.07 11:58
Titel: Re: Erkennen ob die Linke Maustaste losgelassen wurde!!
Hi chrisw
chrisw hat folgendes geschrieben: |
Wie wärs mit dem OnMouseUP Event ? |
Ja leider gibt es kein MouseUp/Down Event für die Buttons des Editfeldes, das ist ja mein Problem:
chrisw - Mi 29.08.07 12:02
Versteh ich nicht !
Wenn ich Abfangen möchte, ob die linke Maustaste losgelassen wurde kann ich das doch im OnMouseUp abfangen !
Bsp.:
Delphi-Quelltext
1: 2: 3: 4:
| procedure Tform1.JvSpinEdit1MouseUp(....); begin if Button = mbLeft then .... end; |
DelphiManiac - Mi 29.08.07 12:11
chrisw hat folgendes geschrieben: |
Versteh ich nicht !
Wenn ich Abfangen möchte, ob die linke Maustaste losgelassen wurde kann ich das doch im OnMouseUp abfangen !
Bsp.:
Delphi-Quelltext 1: 2: 3: 4:
| procedure Tform1.JvSpinEdit1MouseUp(....); begin if Button = mbLeft then .... end; | |
Leider geht dies so nicht, da dieses Event nur ausgelöst wird, wenn die Maustaste über dem Editfeld (und nicht über dem [integriertem] Up/Down Tasten losgelassen wurde
DelphiManiac - Mi 29.08.07 13:38
Hat den keiner eine Idee, wie man das lösen könnte?
Danke euch...
chrisw - Mi 29.08.07 14:15
OnBottomClick und OnTopClick sind nicht ausreichend ?
Dann musst Du wohl eine neue Komponente ableiten.
DelphiManiac - Mi 29.08.07 14:53
chrisw hat folgendes geschrieben: |
OnBottomClick und OnTopClick sind nicht ausreichend ?
Dann musst Du wohl eine neue Komponente ableiten. |
Hi ja genau das wollte/will ich tun, habe jedoch noch nicht sonderlich viel Erfahrung in der Komponentenerstellung.
Also die Buttons haben ja irgendwann mal von TControl geerbt, und TControl hat ja ein MouseUp Event, aber dieses wird wohl nicht durchgereicht, und ist sowie ich das sehe private, wird also dann in meiner Komponente auch nicht verfübar sein,oder??
Gruß
und Danke schonmal
Jakob_Ullmann - Mi 29.08.07 16:55
Das könntest du doch auch mit GetAsyncKeystate machen:
Delphi-Quelltext
1: 2: 3: 4:
| if GetAsyncKeystate(VK_RBUTTON) => 0 then begin end; |
jaenicke - Mi 29.08.07 18:51
Wenn du dir den Quelltext der JEDI-Komponente (in JvSpin.pas) mal ansiehst, dann siehst du, dass das da bereits vorhanden ist, dass das aber nicht in die äußere Komponente weitergegeben wird. Du müsstest also die Datei kopieren, den Komponentennamen ändern und die Funktionalität dementsprechend ändern können.
DelphiManiac - Do 30.08.07 11:38
jaenicke:
Hi ja da hast du Recht so müsste ich es machen, habe leider noch nicht so viel Erfahrung was Komponentenentwicklung angeht, ich habe mir die Datei jetzt mal kopiert und umbenannt.
Da wird natürlch ganz schön viel vereerbt..., was das ganze nicht unbedingt leichter macht,
vielleicht kannst du (oder alle anderen) mir ja ein wenig helfen, bei der Implementierung.
Gruß
DelphiManiac
DelphiManiac - Do 30.08.07 11:52
Jakob_Ullmann:
Wie würde ich es denn mit GetAsyncKey lösen können?
Gruß
DelphiManiac
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!