Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailemVyřešeno Delphi - odchytávanie stlačenia klávesov

Mám formulár a na ňom zopár prvkov. Potrebujem tam odchytávať stlačenie klávesu na samotnom formulári. Konkrétne o čo sa jedná:

Na formálári je výpis týždňa a myšou je možné presúvať položky na tomto výpise. Lenže celé je to možné len v rámci týždňa. Aby som mohol presúvať položky medzi týždňami, najjednoduchšie riešenie je pri držaní ľavého tlačítka myši stláčať klávesy na posuv týždňa vpred alebo vzad.

Klávesu odchytávam cez TForm.OnKeyDown. Problém je, že klávesu mi síce formulár odchytí, ale spracuje to po svojom (po stlačení šípky vľavo sa posunie focus na prvok vľavo na formulári) a teda výsledný kód klávesy nedostanem. Focus nepotrebujem, potrebujem odchytiť stlačenú klávesu, ale neviem ako focus vypnúť pokiaľ nie je v TEdit (vtedy focus potrebujem), prípadne či mi stačí vypnutie focusu. Samozrejme môžem odchytávanie urobiť aj na klávesy, ktoré nebudú mať kolíziu s GUI aplikácie, napr. F5 a F6, ktoré v aplikácii nič neurobia.

Lenže udalosť OnKeyDown sa mi nevyvolá (aspoň nie na TForm, kde to potrebujem). Pozrel som aj na TImage, či nemá podobnú udalosť, ale nemá, takže musím odchytávať len na úrovni formulára, ale to je v podstate jedno.

Předmět Autor Datum
TForm1.KeyPreview := True; poslední
msx. 07.12.2011 17:51
msx.

Zpět do poradny Odpovědět na původní otázku Nahoru