[Gelöst] Tastaturereignisse abfangen - geht das?

15. Mai 2008 10:35

Moin moin,

mich quälen mal wieder Grundsatzfragen (ich lern ja noch ^^).

Kann ich in Navision ohne irgendwelche Umwege Tastaturerignisse abfangen, z.B. erkennen ob die Eingabetaste gedrückt wurde, ein Buchstabe etc. ?

MfG

Carsten
Zuletzt geändert von CaddyM am 15. Mai 2008 17:01, insgesamt 1-mal geändert.

15. Mai 2008 14:54

Ohne Umwege geht dies nicht...

Einfachster Trick ist (sofern du nur ganz bestimmte Tasten abfangen möchtest), dass du einen MenuButton erstellst, welcher für jede abzufangene Taste ein MenuItem enthält.
Dort kannst du dann einen Shortcut-Key definieren.

Wenn dieser MenuButton nicht sichtbar sein soll, dann kannst du den auch hinter einen anderen Button legen.
Ausblenden bringt leider nichts, da dann auch die Shortcuts nicht mehr reagieren.

Hinweis:
Wenn du damit bezweckst, Strg+C zu verhindern: Netter Versuch, aber bringt nichts, da der Anwender die Funktion immer noch über das Menü (Bearbeiten -> Kopieren) oder über die rechte Maustaste aufrufen könnte.

15. Mai 2008 17:00

Hallo,

nein, meine Idee wäre eigentlich eher gewesen, dass ich besser auf die Eingabetaste reagieren kann und nicht jedesmal den Focus auf das entsprechende Teil zu schieben, was dann bitteschön zu reagieren hat :wink:

Egal - auch ein "Nein" ist mal ne Antwort, vielen Dank ^^ - vielliecht kommt das ja noch irgendwie mit einer Folgeversion.

Gruß

Carsten

15. Mai 2008 19:54

CaddyM hat geschrieben:[...] meine Idee wäre eigentlich eher gewesen, dass ich besser auf die Eingabetaste reagieren kann [...]

Auch hier könntest du einen (versteckten?) MenuButton nehmen und dort ein MenuItem mit dem Shortcut Key "Return" erstellen.
Im Trigger "OnPush()" reagierst du dann entsprechend auf das Ereignis.

Wenn du die Reaktion je nach aktivem Feld abhängig machen willst, dann müsstest du hinter jeder Textbox, ... eine Zeile Programmcode einfügen:

OnActivateField()
ActiveFieldNo := FIELDNO(DasAktuelleFeld);


Nun könntest du in deinem MenuItem die Integer-Variable ActiveFieldNo abfragen und individuell darauf reagieren.