Seite 1 von 1
XbpBrowse:Itemselected Unterscheidung möglich?
Verfasst: Fr, 07. Sep 2018 9:23
von mini990
Hallo,
kann man bei Xbpbrowse:Itemselected zwischen "Maus: Doppelklick" und "Tastatur:Enter" unterscheiden?
ich hab da in der Doku nichts gefunden...
Gruß Stefan
Re: XbpBrowse:Itemselected Unterscheidung möglich?
Verfasst: Sa, 08. Sep 2018 7:52
von AUGE_OHR
mini990 hat geschrieben: ↑Fr, 07. Sep 2018 9:23
kann man bei Xbpbrowse:Itemselected zwischen "Maus: Doppelklick" und "Tastatur:Enter" unterscheiden?
ich hab da in der Doku nichts gefunden...
Frage : wie würdest du denn das Keyboard abfragen
ein Tastendruck erzeugt genau so wie ein Maus klick einen Event und wenn man den "abfängt" dann geht er nicht an andere Controls sprich dem oBrowse.
wenn du z.b. eine inkrementelle Suche in deinem Browse schreiben willst würde ich den oBrowse:Keyboard Callback Slot mit einem Codeblock bestücken.
wenn du eine einfache Lösung suchst siehe diese Eventloop an
Code: Alles auswählen
oBrowse:itemSelected := {|uNIL1, uNIL2, self| Msgbox("select via Mouse") }
nEvent := xbeP_None
DO WHILE .NOT. lExit = .T.
nEvent := AppEvent( @mp1, @mp2, @oXbp )
DO CASE
// hier den Keyboard Event abgefangen -> nicht weiter zum Browse
// |||||||||||||
CASE nEvent == xbeP_Keyboard .AND. mp1 == xbeK_ENTER
Msgbox("select via Keyboard","forward to Browse")
// so per Keyboard das Browse aktivieren
PostAppEvent(xbeBRW_ItemSelected,,,oBrowse)
CASE nEvent == xbeP_Keyboard .AND. mp1 == xbeK_ESC
EXIT
OTHERWISE
// andere Events werden weiter geleitet
oXbp:HandleEvent( nEvent, mp1, mp2 )
ENDCASE
ENDDO
Anmerkung : man sollte nicht zu viel CASE Abfragen haben bevor man zum OTHERWISE kommt
Re: XbpBrowse:Itemselected Unterscheidung möglich?
Verfasst: So, 09. Sep 2018 9:55
von mini990
Habe mein Problem geklärt, danke.
Vorher:
Code: Alles auswählen
DO WHILE ! lExit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
IF nEvent == xbeP_Keyboard
Do Case
case mp1 = xbeK_ESC
lExit:= .T.
case mp1 = xbeK_ENTER
GE_KAL_Sicher(NIniFile)
lExit:= .T.
Endcase
Endif
ENDDO
Jetzt:
Code: Alles auswählen
DO WHILE ! lExit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
IF nEvent == xbeP_Keyboard
Do Case
case mp1 = xbeK_ESC
lExit:= .T.
case mp1 = xbeK_ENTER
GE_KAL_Sicher(NIniFile)
lExit:= .T.
Otherwise
oXbp:handleEvent( nEvent, mp1, mp2 )
Endcase
Else
oXbp:handleEvent( nEvent, mp1, mp2 )
Endif
ENDDO
Re: XbpBrowse:Itemselected Unterscheidung möglich?
Verfasst: So, 09. Sep 2018 10:50
von AUGE_OHR
mini990 hat geschrieben: ↑So, 09. Sep 2018 9:55
damit sind ja alle Keyboard Events gemeint ... was dann noch ein OTHERWISE erfordert ...
wenn du es kombinierst ist nur eine bestimme Taste gemeint