uputstva
registracija rs domena

Premeštanje fokusa putem tastera Enter, Delphi

17.06.2010, 13:25
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.
Postavio clan: Uputstvo_84
Podeli na Facebooku Podeli sa prijateljima na facebook-u

Komentari

Trenutno nema komentara, komentarisite clanak pomocu forme koja se nalazi ispod

Da bi ste mogli da komentarisete clanke morate se registrovati


Obavestenje: Komentari nisu zvanicni stavovi ovog sajta već subjektivna mišljenja. Sajt Uputstva.rs nije odgovoran za stavove koji su iznešeni u komentarima i oni su vlasništvo njihovih autora.