XbpPushButton - komisches Verhalten

Grafische Primitive, XbaseParts und Darstellungsfragen allgemein.

Moderator: Moderatoren

Antworten
Statler
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 108
Registriert: Di, 22. Jan 2008 9:49
Wohnort: Aachen

XbpPushButton - komisches Verhalten

Beitrag von Statler »

Hallo zusammen,

Betatigung eines Push-Buttons:

Maus ueber den Button fahren. linke Maustaste druecken, Button geht runter, linke Maustaste loslassen (muss sich ueber dem Button befinden), Button loest aus. Das funktioniert bei :pointerFocus:= .T.

Bei :pointerFocus:= .F. druecke ich irgendwo die linke Maustaste, fahre mit gedrueckter Taste ueber den Button und lasse los, der Button loest aus. Das Problem waere eigentlich rein akademisch, wenn da nicht der Doppelclick waere. In einem Browser starte ich via Doppelclick einen Dialog. Der Dialog ist aktiv, bevor die linke Maustaste wieder losgelassen wurde und der Abbruch-Button steht zufaellig unter dem Mauszeiger. Der Dialog geht dann nach loslassen der Maus sofort wieder zu.

Das Problem besteht in Version 1.9 und 2.0, ist also anscheinend eine Altlast. Gibt es dazu einen Workaround ?

Gruss

Achim
Statler
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 108
Registriert: Di, 22. Jan 2008 9:49
Wohnort: Aachen

Re: XbpPushButton - komisches Verhalten

Beitrag von Statler »

ich habe mal selber nachgedacht :D
CLASS AKaPushButton FROM XbpPushButton
HIDDEN:
VAR lStatus

PROTECTED:
METHOD init, lbUp, lbDown

ENDCLASS

METHOD AKaPushButton:init (oParent, oOwner, aPos, aSize, aPresParam, lVisible)
::lStatus:= .F.
::XbpPushButton:init (oParent, oOwner, aPos, aSize, aPresParam, lVisible)
RETURN (self)

METHOD AKaPushButton:lbUp (aPos)
IF ::lStatus
::XbpPushButton:lbUp (aPos)
ENDIF
::lStatus:= .F.
RETURN (self)

METHOD AKaPushButton:lbDown (aPos)
::XbpPushButton:lbDown (aPos)
::lStatus:= .T.
RETURN (self)
Falls es jemand brauchen kann ...

Gruss
Antworten