Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Enter kao Tab u setanju kroz formove

[es] :: Pascal / Delphi / Kylix :: Enter kao Tab u setanju kroz formove

[ Pregleda: 1833 | Odgovora: 5 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

vortex77

Član broj: 91694
Poruke: 124
*.dynamic.sbb.co.yu.



+1 Profil

icon Enter kao Tab u setanju kroz formove01.06.2007. u 12:11 - pre 205 meseci
Pitanje : Kako da se u aplikaciji omoguci korisnicima da se kroz polja setaju i sa tab-om i sa enterom?
Pronasao sam par tema sa donekle tacnim odgovorima na ovo pitanje, ali ni na jednom jos nisam nasao objedinjen nacin da se ova funkcija realizuje.

Naime, koliko sam uspeo da procitam, svuda se, na ovaj ili onaj nacin, ova funkcionalnost realizuje povezivanjem na onKeyPress. Ovo je ok, ali problemi nastaju kada imate 40+ polja na jednom formu i aplikaciju sa 30+ formova... Zamislite koliko je potrebno vremena da se za svaku komponentu poveze ova funkcija pojedinacno.

Stoga, postavio bih pitanje :
Da li postoji ( i koja) funkcija koja bi mogla da realizuje ovu funkcionalnost na nivou cele aplikacije - npr. pozivom neke winapi f-je koja bi radila prosirenje entera ili nesto drugo...

Do sada sam uspeo da ovo realizujem samo na jednom formu. Evo koda :

Code:

  
procedure TForm1.ApplicationEvents1ShortCut(var Msg: TWMKey; var Handled: Boolean);
begin
  if Msg.CharCode = VK_RETURN then
    begin
       SelectNext(ActiveControl,True,True) ;
    end;
end;



Kod radi, ali kada vrsim poziv nekog modalnog forma, ActiveControl se zadrzava na prvom formu i nista se ne desava.
Pretpostavljam da bi zamena ActiveControl sa "Sender As TWinControl" odradila posao ali ne znam kako sa prosledim Sender-a.

 
Odgovor na temu

Miloš Baić
Miloš Baić
ERP (Dynamics NAV) programer
Beograd

Član broj: 72468
Poruke: 1155
*.kalik.info.



Profil

icon Re: Enter kao Tab u setanju kroz formove01.06.2007. u 13:28 - pre 205 meseci
Prelazak s jednog na drugi TEdit, pogledaj.
Mislim da je bilo još priče na tu temu, pretraži forum.
Someone's sitting in the shade today because someone planted a tree a long time ago.
 
Odgovor na temu

vortex77

Član broj: 91694
Poruke: 124
*.dynamic.sbb.co.yu.



+1 Profil

icon Re: Enter kao Tab u setanju kroz formove01.06.2007. u 13:40 - pre 205 meseci
Pa.... vec sam pregledao ne samo ovaj vec i nekoliko drugih foruma i nisam nasao resenje.
U stvari, sve je ok kada ove funkcije implementiram na main form (recimo form1), ali cim pozovem form2 (form2.showmodal), gubim funkcionalnost.

Probao sam i da modifikujem prethodni kod, ali je rezultat isti! Nemam mogucnost menjanja fokusa u drugom formu.

Code:

   procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char);
begin
   if Key = Char(VK_RETURN) then
    begin
       PostMessage(Form1.Handle,WM_NEXTDLGCTL,0,0);
    end;
end;



Inace, FormKeyPress sam odradio i za form1 i za form2.
 
Odgovor na temu

vortex77

Član broj: 91694
Poruke: 124
*.dynamic.sbb.co.yu.



+1 Profil

icon Re: Enter kao Tab u setanju kroz formove01.06.2007. u 13:47 - pre 205 meseci
Hahahahaha...... DA! Zaboravio sam da ukljucim 'KeyPreview' na formu.....

Uglavnom sada radi!
Znaci, zakaciti na FormKeyPress prethodnu f-ju i ukljuciti KeyPreview (za svaki form) i to je to.

Ako neko ima ideju kako bi se ovo moglo resiti na jednom mestu (umesto da se ubacuje na svaki form) neka napise.

Hvala!!!
 
Odgovor na temu

savkic
Igor Savkić

Moderator
Član broj: 92186
Poruke: 2739



+92 Profil

icon Re: Enter kao Tab u setanju kroz formove01.06.2007. u 15:40 - pre 205 meseci
> Ako neko ima ideju kako bi se ovo moglo resiti na jednom mestu (umesto da se ubacuje na svaki form) neka napise.

Najčistije rešenje je da napraviš izvedenu kontrolu koja će imati tu funkcionalnost. Koliko se sećam i JVCL ima jednu takvu. Ako ne želiš tako onda možeš se hookovati na application messages i tu uraditi.
 
Odgovor na temu

Miloš Baić
Miloš Baić
ERP (Dynamics NAV) programer
Beograd

Član broj: 72468
Poruke: 1155
*.kalik.info.



Profil

icon Re: Enter kao Tab u setanju kroz formove01.06.2007. u 15:41 - pre 205 meseci
Možeš odraditi OnKeyDown na jedan TEdit, pa hendluj svim ostalim TEdit kontrolama, npr:
Code:
...
 if (Key = VK_RETURN) then
  begin
  if HiWord(GetKeyState (VK_SHIFT)) <> 0 then
    SelectNext (Sender as TWinControl, False, True)
  else
    SelectNext (Sender as TWinControl, True, True);
  end;
...

Taj proces može da ti automatizuje i TJvEnterAsTab iz JEDI projekta.
Someone's sitting in the shade today because someone planted a tree a long time ago.
 
Odgovor na temu

[es] :: Pascal / Delphi / Kylix :: Enter kao Tab u setanju kroz formove

[ Pregleda: 1833 | Odgovora: 5 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.