Hvala puno obojici :)
rambo, mislim na globalne "precice" (hotkeys). Moja aplikacija radi u pozadini, i po potrebi "hvata" odredjene tastere (hotkeys) i shodno njima izvodi odredjene radnje (simulira klik misem na odredjene DirectX dugmice, cime olaksava posao). Ne bi bio problem da podesim hotkeys u programu i pustim da tako radi, ali zelja mi je da dam korisniku opciju da sam podesava tastere kako mu volja - a neki poput space i delete su prilicno zanimljivi (zgodni za upotrebu).
THotKey mi je bila interesantna kontrola zato sto "hvata" tastere (sa sve Ctrl|Alt|Shift) i prikazuje trenutni izbor korisniku (npr. prikaze "Ctrl + G", ili "Alt + Shift + Num 3", ako je korisnik to pritisnuo). Nakon toga, korisnik moze da prihvati to kao novi hotkey za odredjenu funkciju, ili da odustane. A bilo mi je lakse da uzmem to nego da pravim sam ispocetka nesto, ali ako se mora... :)
savkic, hvala, tako nesto sam trazio. Mislio sam da izvedem svoju kontrolu od THotKey, da zadrzim sve dobro sto ona nudi a da predefinisem potrebne metode koje ne rade kako bih zeleo. E sad, gledao sam kako je THotKey definisan unutar ComCtrls.pas sekcije ali nisam nasao nista sto bi predstavljalo ogranicenje za navedene tastere na koje reaguje sa "None", pretpostavljam da je trebalo da zagazim i u sam Controls.pas :)
Probao sam, radi bas onako kako mi treba, a kako do sam nisam mnogo petljao sa porukama i metodama kontrola (barem ne s mnogo razumevanja), usput sam nesto novo i naucio ;)
Da zaokruzimo odgovor, imam jos jedno pitanje - gde se tacno nalazi ogranicenje u samoj kontroli koje zaobilazi tastere space, escape, itd? Hteo bih to da prepisem (override) u svojoj kontroli, kako bih zadrzao sve ostale funkcije same kontrole. Ovo "presretanje" poruke iz primera i uvodjenje dogadjaja za tastere koji nam trebaju radi, ali recimo i dalje ne okida OnChange dogadjaj THotKey kontrole kada pritisnemo escape, tab, itd. Ne znam kakvo jos ponasanje mogu izgubiti, pa bih hteo da vidim sta se desava u izvornoj metodi, ukoliko je moguce :)
I kako uzeti tekst is same THotKey kontrole i prikazati ga npr. u TEdit? Koristim
Code:
Edit1.Text := ShortCutToText(HotKey1.HotKey);
Ali prikaz nije isti - u TEdit polju dobijem npr. "Alt+PgDn", dok u THotKey kontroli (vizuelnom delu, na formi, kao TEdit) pise "Alt + Page Down", ili u TEdit dobijem "3", dok u THotKey pise "Num 3". Gde se smesta ovaj tekst koji prikazuje THotKey kontrola? Nisam nasao nijedan atribut niti metodu koja vraca string, a da sadrzi ovaj tekst koji se prikazuje...
[Ovu poruku je menjao ((BugA)) dana 10.03.2011. u 19:28 GMT+1]