Pop-Up Menu mit Keyboard ? [erledigt]

Grafische Primitive, XbaseParts und Darstellungsfragen allgemein.

Moderator: Moderatoren

Antworten
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12903
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 44 Mal

Pop-Up Menu mit Keyboard ? [erledigt]

Beitrag von AUGE_OHR »

moin.

es gibt ja die rechte Maustaste mit einem Menu.
bei Touch muss man länger drauf bleiben damit ein Menu angezeigt wird.

nun frage ich mich wie ich das nur mit dem Keyboard aktivieren kann ?
muss ich dafür "extra" ein Tasten Code einbauen oder gibt es einen "fertigen" Tasten Kombination :?:

Code: Alles auswählen

      oMLE:RbDown  := ; 
         { |mp1, mp2, obj| oMenu:PopUp ( obj, mp1, 2 , ; 
              XBPMENU_PU_DEFAULT + XBPMENU_PU_MOUSE_RBDOWN  ) }

   // workaround : activate with F12
   CASE nEvent == xbeP_Keyboard .and. mp1 == xbeK_F12
      PostAppEvent(xbeM_RbDown,GetAbsPos(),, oMLE)
Zuletzt geändert von AUGE_OHR am Mi, 04. Apr 2018 10:44, insgesamt 1-mal geändert.
gruss by OHR
Jimmy
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9345
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 100 Mal
Danksagung erhalten: 359 Mal
Kontaktdaten:

Re: Pop-Up Menu mit Keyboard ?

Beitrag von Tom »

Du kannst oMenu:popup direkt aufrufen, wo auch immer.
Herzlich,
Tom
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12903
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 44 Mal

Re: Pop-Up Menu mit Keyboard ?

Beitrag von AUGE_OHR »

Tom hat geschrieben: Di, 03. Apr 2018 8:48 Du kannst oMenu:popup direkt aufrufen, wo auch immer.
ok ... aber trotzdem müsste "ich" was machen.

was ich meine :
angenommen man hätte ein App (ohne Source) und hätte nur die OSK Tastatur
... wie komme ich an ein rechte-Maustaste-Menu :?:
gruss by OHR
Jimmy
Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
Beiträge: 16501
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Hat sich bedankt: 111 Mal
Danksagung erhalten: 48 Mal
Kontaktdaten:

Re: Pop-Up Menu mit Keyboard ?

Beitrag von Martin Altmann »

Jimmy,
AUGE_OHR hat geschrieben: Mi, 04. Apr 2018 0:12angenommen man hätte ein App (ohne Source) und hätte nur die OSK Tastatur
... wie komme ich an ein rechte-Maustaste-Menu :?:
dann klickst Du auf Deiner osk auf die selbe Taste, wie auf Deinem normalen Keyboard, die es dort für das PopUp-Menü gibt (bei der osk unten rechts unterhalb der Entf-Taste) 8)

Viele Grüße,
Martin
:grommit:
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/

Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12903
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 44 Mal

Re: Pop-Up Menu mit Keyboard ?

Beitrag von AUGE_OHR »

Martin Altmann hat geschrieben: Mi, 04. Apr 2018 5:53 dann klickst Du auf Deiner osk auf die selbe Taste, wie auf Deinem normalen Keyboard, die es dort für das PopUp-Menü gibt (bei der osk unten rechts unterhalb der Entf-Taste) 8)
AHA :idea:
Danke =D>

aber leider funktioniert es (natürlich) nicht "so" einfach dann unter Xbase++ ... wäre ja zu einfach.
also geht es darum den Key Code raus zu finden die bei betätigen der "Context Menu Taste" erzeugt wird

Code: Alles auswählen

#include "APPEVENT.CH"

PROCEDURE MAIN
LOCAL lExit  := .F.
LOCAL nEvent, mp1, mp2,oXbp

   nEvent := xbe_None
   DO WHILE .NOT. lExit
      nEvent := AppEvent( @mp1, @mp2, @oXbp )
      DO CASE
      CASE nEvent == xbeP_Keyboard
           IF mp1 == 27   // ESC
              EXIT
           ELSE
              MSGBOX("keycode "+STR(mp1))
           ENDIF
      OTHERWISE
         oXbp:handleEvent( nEvent, mp1, mp2 )
      ENDCASE         
   ENDDO
RETURN
das Ergebnis : 65629
nun in der appevent.ch nachsehen -> xbeK_CMENU

Code: Alles auswählen

         CASE nEvent == xbeP_Keyboard .AND. mp1 == xbeK_CMENU
            nTransparency := MenuTPZ(hWnd,oDlg,PopAbsPos(oDlg) )
gruss by OHR
Jimmy
Antworten