hi,
ich bin der Meinung das dass geht aber finde es nicht ...
ich möchte, per Code, einen Menue Punkt aktivieren aber weiss z.Z. nicht wie
Menue Punkt direkt anspringen ? [erledigt]
Moderator: Moderatoren
- Herbert
- Der Entwickler von "Deep Thought"
- Beiträge: 1991
- Registriert: Do, 14. Aug 2008 0:22
- Wohnort: Gmunden am Traunsee, Österreich
- Danksagung erhalten: 3 Mal
- Kontaktdaten:
Re: Menue Punkt direkt anspringen ?
Du meinst so was....
viewtopic.php?f=31&t=8300&p=92993&hilit ... den#p92963
viewtopic.php?f=31&t=8300&p=92993&hilit ... den#p92963
Grüsse Herbert
Immer in Bewegung...
Immer in Bewegung...
- AUGE_OHR
- Marvin
- Beiträge: 12903
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 44 Mal
Re: Menue Punkt direkt anspringen ?
es wird zwar alles mögliche vom Menu besprochen aber der Punkt "anspringen" fehlt mir.Herbert hat geschrieben: ↑Mo, 23. Okt 2017 17:56 Du meinst so was....
viewtopic.php?f=31&t=8300&p=92993&hilit ... den#p92963
was ich suche ist so was wie :
Code: Alles auswählen
// Dummy Code funktioniert NICHT "so"
KEYBOARD CHR(xbeK_ALT)
FOR n := 1 TO j
KEYBOARD CHR(xbeK_RIGHT)
NEXT
Code: Alles auswählen
keybd_event( VK_MENU, 0, 0, 0 )
keybd_event( VK_MENU, 0, KEYEVENTF_KEYUP, 0 )
keybd_event( VK_RIGHT)
---
mit o:childFromName() bekomme ich zwar das Object ( mit dem Codeblock zum ausführen ) zurück aber ich möchte "nur" den Cursor im Menu platzieren wo die Aktion ausgelöst werden soll
gruss by OHR
Jimmy
Jimmy
- AUGE_OHR
- Marvin
- Beiträge: 12903
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 44 Mal
Re: Menue Punkt direkt anspringen ?
hm ... könnte es sein das die keybd_event API Function nicht mehr unter Windows 10 läuft
Note This function has been superseded. Use SendInput instead.
gruss by OHR
Jimmy
Jimmy
- AUGE_OHR
- Marvin
- Beiträge: 12903
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 44 Mal
Re: Menue Punkt direkt anspringen ?
also ... es gibt verschiedene Situationen
1.) SDI GUI mit Menu wobei die horizontalen Items ein Shortcut ( ~ ) haben.
2.) MDI Client Fenster können kein Menu haben !
Das Menu ist im Main Fenster d.h. alle MDI Childs können es erreichen/anfordern
2a.) GUI : wenn man es, wie unter 1.), an die o:DrawingArea des Main Dialog schickt kein Problem.
2b.) Hybrid : im CRT Fenster muss man zuerst ALT drücken und dann den Buchstaben des Hotkey
btw. im Crt Fenster muss o:useShortCuts := .T. gesetzt sein damit die Menu Tasten "wirken"
zu 1.) das ist einfach : Beispiel "~Hilfe"also eine Konstante xbeK_ALT_* an die o:DrawingArea des Main Dialog
zu 2b.) das geht nun nicht mit mehreren PostAppEvent() man muss es in den Keyboard Puffer schiebendies Beispiel verwendet VK_RIGHT zum positionieren.
die keybd_event API Function läuft übrigens (noch) unter Windows 10 16299.19
zur Verwendung in einer Hybrid Anwendung sei zu bemerken das der Code im Crt Fenster NICHT auf das Menu "wartet".
1.) SDI GUI mit Menu wobei die horizontalen Items ein Shortcut ( ~ ) haben.
2.) MDI Client Fenster können kein Menu haben !
Das Menu ist im Main Fenster d.h. alle MDI Childs können es erreichen/anfordern
2a.) GUI : wenn man es, wie unter 1.), an die o:DrawingArea des Main Dialog schickt kein Problem.
2b.) Hybrid : im CRT Fenster muss man zuerst ALT drücken und dann den Buchstaben des Hotkey
btw. im Crt Fenster muss o:useShortCuts := .T. gesetzt sein damit die Menu Tasten "wirken"
zu 1.) das ist einfach : Beispiel "~Hilfe"
Code: Alles auswählen
PostAppEvent(xbeP_Keyboard, xbeK_ALT_H,, SP_Main():DrawingArea )
zu 2b.) das geht nun nicht mit mehreren PostAppEvent() man muss es in den Keyboard Puffer schieben
Code: Alles auswählen
keybd_event( VK_MENU, 0, 0, 0 )
keybd_event( VK_MENU, 0, KEYEVENTF_KEYUP, 0 )
keybd_event( VK_RETURN, 0, 0, 0 )
keybd_event( VK_RETURN, 0, KEYEVENTF_KEYUP, 0 )
FOR n := 1 TO nCol - 1
keybd_event( VK_RIGHT, 0, 0, 0 )
keybd_event( VK_RIGHT, 0, KEYEVENTF_KEYUP, 0 )
NEXT
die keybd_event API Function läuft übrigens (noch) unter Windows 10 16299.19
zur Verwendung in einer Hybrid Anwendung sei zu bemerken das der Code im Crt Fenster NICHT auf das Menu "wartet".
gruss by OHR
Jimmy
Jimmy