Pop-Up Menu mit Keyboard ? [erledigt]

Grafische Primitive, XbaseParts und Darstellungsfragen allgemein.

Moderator: Moderatoren

Antworten
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 11426
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg

Pop-Up Menu mit Keyboard ? [erledigt]

Beitrag von AUGE_OHR » Di, 03. Apr 2018 6:53

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: 7290
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Kontaktdaten:

Re: Pop-Up Menu mit Keyboard ?

Beitrag von Tom » Di, 03. Apr 2018 8:48

Du kannst oMenu:popup direkt aufrufen, wo auch immer.
Herzlich,
Tom

Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 11426
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg

Re: Pop-Up Menu mit Keyboard ?

Beitrag von AUGE_OHR » Mi, 04. Apr 2018 0:12

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: 14503
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Kontaktdaten:

Re: Pop-Up Menu mit Keyboard ?

Beitrag von Martin Altmann » Mi, 04. Apr 2018 5:53

Jimmy,
AUGE_OHR hat geschrieben:
Mi, 04. Apr 2018 0:12
angenommen 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
stellv. Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.

Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 11426
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg

Re: Pop-Up Menu mit Keyboard ?

Beitrag von AUGE_OHR » Mi, 04. Apr 2018 10:43

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