Globalny (w ramach formy) Short-Cut

Globalny (w ramach formy) Short-Cut
TO
  • Rejestracja:prawie 20 lat
  • Ostatnio:ponad 4 lata
0

Jakoś nie umem sobie poradzić z tym problemem.

Chodzi o to, ze chciałbym po wciśnięciu skrótu klawiszowego (F5 w tym przypadku) wykonać operacje.

podchodziłem od strony Akcji, Hooka klawiaturowego ( KBHook:=SetWindowsHookEx(WH_KEYBOARD,@KeyboardHookProc,HInstance,GetCurrentThreadId()); ) i wspólnej procedury zdarzeniwej OnKeyDown.

Pierwsze rozwiązanie - nie robi
Drugie wali błędami (jakieś Acces Violation, z któymi nie umiem sobie poradzić)
Trzecie jest uciążliwe.

Kłopot pojawia się na kontrolkach edycyjnych - to znaczy ComboBox, Edit itp - po prostu zdarzenie nacisniecia klawisza nie jest przekazywane dalej (a nie jest obslugiwane wprost).

Zglupialem - myślałem, że ustawienie Short-Cuta w Akcji wystarczy, zeby to chciało działać a tu dusza.

Ma ktoś sprawdzony sposób na to, żeby sie nie orobić, a mieć działąjącą obsługę Globalnych (w ramach formy) obsługę skrótów klawiaturowych ?

SI
  • Rejestracja:prawie 15 lat
  • Ostatnio:prawie 11 lat
  • Postów:184
0

A ustawienie właściwości formularza

Kopiuj
Form1.KeyPreview:= true;

nie załatwia sprawy?

TO
  • Rejestracja:prawie 20 lat
  • Ostatnio:ponad 4 lata
0

Nie działa bo:

Navigation keys (Tab, BackTab, the arrow keys, and so on) are unaffected by KeyPreview because they do not generate keyboard events. Similarly, when a button has focus or when its Default property is true, the Enter key is unaffected by KeyPreview because it does not generate a keyboard events.

TO
  • Rejestracja:prawie 20 lat
  • Ostatnio:ponad 4 lata
0

simplex - przepraszam cie BARDZO. Działa. Nie wziąłem pod uwagę, że forma która mnie interesuje jest pdpieta pod Parenta TTabSheeta na innej formie i to tam mam zrobić kompletną obsługę Short-Cutów (przekazywanie zdarzen do form potomnych)

JU
  • Rejestracja:około 22 lata
  • Ostatnio:2 miesiące
  • Postów:5042
0

A TActionManager?

TO
  • Rejestracja:prawie 20 lat
  • Ostatnio:ponad 4 lata
0

No wlasnie Akcje = TActionManager.

Byc moze to ten sam problem co z KeyPreview - musialbym miec ActionManagera na formie glownej - a na to nie moge sobie pozwolic.

Generalnie rozwiazalem to w ten sposob, ze na wszystkich formach "potomnych" mam zdarzenie OnKeyDown, a forma glowna odpala te metody przekazujac parametry z jakimi sama zostala wywolana.

Na razie zdaje to egzamin i wyglada, ze zalatwia sprawe (dzieki temu moduly nadal moga dzialac niezaleznie, jak i w trybie sParentowanym)

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.