U trendu

Delphi – PremeÅ¡tanje fokusa preko tastera „Enter“

Uobič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ći 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.

Pratite Krstaricu i preko mobilne aplikacije za Android i iPhone.