Veze, linkovi
Kompjuter biblioteka
Korpa

KAKO DA – premeštanje fokusa putem tastera Enter, Delphi

Navikli smo da se kroz forme Windows aplikacija krećemo pritiskom na taster [TAB]. Šta ako ovo želimo da promenimo i da fokus prebacujemo pritiskom na taster [Enter]?

U običajeno je da se kroz forme aplikacija krećemo pritiskom na taster [TAB], šta ako ovo želimo da promenimo i da fokus prebacujemo pritiskom na taster [Enter]? Sa druge strane podrazumevano je da, ako na nekoj formi pritisnemo Enter, simuliraće se pritisak na default taster. Ovo podrazumevano ponašanje možemo promeniti i to tako što izvršimo preraspodelu kontrole sa tastature, a to se radi preko osobine KeyPreview koju postavljamo na True. Ovim smo regulisali da naša forma, na svaki pritisak na taster, na tastaturi pozove handler za događaj OnKeyPress. Ovo ćemo dobiti ako sledeći kod ubacimo u FormKeyPress.

BEGIN
if Key = #13 then
if Not (ActiveControl is TDBGrid)
then
BEGIN
Key := #0 ;
Perform (WM_NEXTDLGCTL, 0, 0) ;
END
else
with TDBGrid (ActiveControl) do
if selecedtindex <> (FieldCount - 1)
then selecedtindex := selecedtindex + 1
else selecedtindex := 0 ;
END;

Šta radi ovaj programski kod? U prvom delu, u slučaju da je pritisnut taster [Enter] (#13), a aktivna kontrola (ActiveControl) nije TDBGrid, poništiće se taster i poslaće se poruka WM_NEXTDLGCTL. Ova poruka će kroz kontrolu na formi preću na Windows i izazvaće aktiviranje sledeće kontrole (kao da je pritisnuto [TAB]). Drugi deo koda obrađuje slučaj kada je pritisnuto Enter, a fokus se nalazi na TDBGrid kontroli. Sa ovim kodom izazivamo prelaženje sa jednog reda na drugi u kontroli za prikaz baze podataka. Ovde imamo dva podatka: FieldCount i SelectedIndex. Prvi podatak je broj polja u mreži (grid-u), a drugi indeks trenutnog polja. U slučaju da se nalazimo na poslednjem polju, prebacijemo se na prvo, a inače vršimo pomeraj za po jedno polje.

Pripremio: Milenko Kusurović

 

         
Twitter Facebook Linkedin Pinterest Email
         

Budite prvi koji će ostaviti komentar.

Ostavite komentar Ostavite komentar

 

 

 

Veze, linkovi
Linkedin Twitter Facebook
 
     
 
© Sva prava pridržana, Kompjuter biblioteka, Beograd, Obalskih radnika 4a, Telefon: +381 11 252 0 272