Globalny (w ramach formy) Short-Cut

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 ?

0

A ustawienie właściwości formularza

Form1.KeyPreview:= true;

nie załatwia sprawy?

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.

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)

0

A TActionManager?

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)

1 użytkowników online, w tym zalogowanych: 0, gości: 1