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

Mnogo Maskedit i Edit komponenti-kako napraviti global onkeypress za chr(13)?

[es] :: Pascal / Delphi / Kylix :: Mnogo Maskedit i Edit komponenti-kako napraviti global onkeypress za chr(13)?

[ Pregleda: 5026 | Odgovora: 18 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

johnnie
somewhere in Serbia

Član broj: 40975
Poruke: 299
*.041net.co.yu.



+4 Profil

icon Mnogo Maskedit i Edit komponenti-kako napraviti global onkeypress za chr(13)?31.05.2005. u 00:42 - pre 229 meseci
Mozda nisam bio dovoljno jasan, ali nemam bas neku dobru ideju, malo sam se zakucao...
Elem, imam recimo oko 80 maskedita i edita na jednoj formi, imaju redosled, tab order itd. Sad je stvar sledeca: treba mi da se kroz njih krecem i sa enterom (kao da je DOS aplikacija) a ne samo sa tabom. Znam da je lako napisati za svaku posebno OnKeyPress event (npr. if key=#13 then ...) ali ima mnogo, mnogo da se pise. Zna li neko neki laksi nacin?
Ukljucio sam na formi Keypreview i to radi, tj. reaguje na enter. Samo mi treba prelazak sa TMaskedit ili TEdit-a na sledeci koji je po tab orderu (Tmaskedit ili tedit, nema pravila, bitno je znaci da sledeci preuzme fokus ) i da to bude ponasanje na toj formi, nezavisno od broja komponenti (jer neke mogu biti visible :=false, a tad nemaju ni tab order).
Mozda ja ne vidim dovoljno elegentno resenje, a bas sam u guzvi, zato pls. help!


Still going strong...
 
Odgovor na temu

Chawa
Dejan Dimitrijevic
programer
Ljubljana

Član broj: 7764
Poruke: 26
195.252.123.*



Profil

icon Re: Mnogo Maskedit i Edit komponenti-kako napraviti global onkeypress za chr(13)?31.05.2005. u 07:15 - pre 229 meseci
Nisam bas siguran koliko će pomoći, ali pogledaj šta se može izvući odavde:

http://delphi.about.com/od/vclusing/l/aa012699.htm
i
http://delphi.about.com/od/adptips2005/a/bltip0305_2.htm


Pozdrav
 
Odgovor na temu

slavica2000
Slavica jovanovic
Uzice

Član broj: 31101
Poruke: 55
212.200.29.*



+1 Profil

icon Re: Mnogo Maskedit i Edit komponenti-kako napraviti global onkeypress za chr(13)?31.05.2005. u 07:42 - pre 229 meseci
Sva sam polja selektovala i poslala na jedan dogadjaj a TabOrder ga sam salje na sledeci. Ja sam kasnije imala problem kad sam htela da uvedem i strelice za gore dole ...ali to je druga prica.
procedure TForm1.MaskEdit1KeyPress(Sender: TObject; var Key: Char);
begin
If Key = #13 then
begin
Key := #0;
perform (Cm_DialogKey, VK_TAB, 0);
end;
end;
vuka
 
Odgovor na temu

sasas
Saša Slavnić
radim za neke švabe

Član broj: 35478
Poruke: 617
*.zaslon-telecom.si.



Profil

icon Re: Mnogo Maskedit i Edit komponenti-kako napraviti global onkeypress za chr(13)?31.05.2005. u 08:08 - pre 229 meseci
ili recimo da sa uključenim KeyPreviewm u KeyDown forme postaviš:

Code:

procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if key in [VK_RETURN , VK_DOWN, VK_UP] then
    self.SelectNext(self.ActiveControl, key <> VK_UP, true);
end;


Ovo radi kretanje napred sa enterom, i kretanje napred-nazad strelicama (gore-dole). Radi i za sve kontrole što može biti problem kod listboxa ili richedita, kod kojih strelice imaju funkciju, ali to se naravno da popraviti po potrebi.

ss.
When something is hard to do, then it's not worth doing.
 
Odgovor na temu

dogriz
Sombor

Član broj: 29744
Poruke: 259
*.so-sombor.com.

Sajt: dogriz.blogspot.com


+6 Profil

icon Re: Mnogo Maskedit i Edit komponenti-kako napraviti global onkeypress za chr(13)?31.05.2005. u 08:14 - pre 229 meseci
Citat:
slavica2000: Sva sam polja selektovala i poslala na jedan dogadjaj a TabOrder ga sam salje na sledeci. Ja sam kasnije imala problem kad sam htela da uvedem i strelice za gore dole ...ali to je druga prica.
procedure TForm1.MaskEdit1KeyPress(Sender: TObject; var Key: Char);
begin
If Key = #13 then
begin
Key := #0;
perform (Cm_DialogKey, VK_TAB, 0);
end;
end;



Lepo rešenje, jedino mislim da je Key:=#0; višak. Sve radi i bez toga.
 
Odgovor na temu

obucina

Član broj: 38191
Poruke: 723

Jabber: obucina


+7 Profil

icon Re: Mnogo Maskedit i Edit komponenti-kako napraviti global onkeypress za chr(13)?31.05.2005. u 12:35 - pre 229 meseci
Ne treba koristiti Enter kao TAB. To je ostatak nekih starih vremena.
Enter, po novoj filozofiji UI, ima funkciju pritiskanja Default dugmeta.
 
Odgovor na temu

sasas
Saša Slavnić
radim za neke švabe

Član broj: 35478
Poruke: 617
*.zaslon-telecom.si.



Profil

icon Re: Mnogo Maskedit i Edit komponenti-kako napraviti global onkeypress za chr(13)?31.05.2005. u 12:49 - pre 229 meseci
Definitivno se slažem s tim.

ss.
When something is hard to do, then it's not worth doing.
 
Odgovor na temu

johnnie
somewhere in Serbia

Član broj: 40975
Poruke: 299
*.041net.co.yu.



+4 Profil

icon Re: Mnogo Maskedit i Edit komponenti-kako napraviti global onkeypress za chr(13)?31.05.2005. u 12:52 - pre 229 meseci
Hvala, videcu pa cu da javim...
Inace potpuno se slazem sa filozofijom za tab, ali musterija je uvek u pravu...
Hvala svima, puno...
Still going strong...
 
Odgovor na temu

obucina

Član broj: 38191
Poruke: 723

Jabber: obucina


+7 Profil

icon Re: Mnogo Maskedit i Edit komponenti-kako napraviti global onkeypress za chr(13)?03.06.2005. u 20:58 - pre 229 meseci
To nije pobednicki stav :)
Musterija je u pravu samo ako je procitao/la dokumente tipa "Application Specification for Microsoft Windows 2000 for Desktop Applications", "The Microsoft Windows Keyboard Guide". ""Designed for Windows" Logo Testing", knjigu "Designing User Interface" i slicno...
 
Odgovor na temu

morlic
Milos Orlic
Beograd

Član broj: 6081
Poruke: 735
*.40.EUnet.yu.



+1 Profil

icon Re: Mnogo Maskedit i Edit komponenti-kako napraviti global onkeypress za chr(13)?03.06.2005. u 22:32 - pre 229 meseci
A firma koja bude terala inat sa musterijama ce pisati knjigu "Empty pockets - how to" :)
 
Odgovor na temu

johnnie
somewhere in Serbia

Član broj: 40975
Poruke: 299
*.041net.co.yu.



+4 Profil

icon Re: Mnogo Maskedit i Edit komponenti-kako napraviti global onkeypress za chr(13)?04.06.2005. u 16:48 - pre 229 meseci
Ako musterije budu citale sve te knjige, sta cemo mi da radimo? Neka, bolje ovako, nek je musterija u pravu, za svoje pare ima pravo...Meni moze da se svidi to ili ne, ako dodje do toga da nije u pravu a nece da poslusa, nek trazi drugog ko ce da radi...Ovo je samo trivijalna zelja, zbog navika stecenih na starom softveru. Tab i dalje radi normalno, pa kad shvate TAB nece dirati ENTER, zar ne?
Still going strong...
 
Odgovor na temu

milance_kg

Član broj: 59131
Poruke: 185
213.244.208.*



+22 Profil

icon Re: Mnogo Maskedit i Edit komponenti-kako napraviti global onkeypress za chr(13)?05.06.2005. u 18:14 - pre 229 meseci
Kod mene ovo sasvim dobro funkcionise
SASAS:
Code:

procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if key in [VK_RETURN , VK_DOWN, VK_UP] then
    self.SelectNext(self.ActiveControl, key <> VK_UP, true);
end;


a polja koja ne zelim da fokusiram
( DBGrid npr.)
jednostavno u Object Inspector-u
podesim
TabStop := false;
 
Odgovor na temu

milance_kg

Član broj: 59131
Poruke: 185
*.neobee.net.



+22 Profil

icon Re: Mnogo Maskedit i Edit komponenti-kako napraviti global onkeypress za chr(13)?06.06.2005. u 14:06 - pre 229 meseci
Ako zelimo da fokusirano polje promeni boju
Code:

procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
   Shift: TShiftState);
begin
   if key in [VK_RETURN, VK_DOWN, VK_UP] then
      self.SelectNext(self.ActiveControl, key <> VK_UP, true);
   begin
      if Edit1.Focused = true then
         Edit1.Color := clAqua
      else Edit1.Color := clWindow;
   end;
end;


 
Odgovor na temu

ivanho
slobodni umetnik
Beograd

Član broj: 28465
Poruke: 73
217.26.75.*



Profil

icon Re: Mnogo Maskedit i Edit komponenti-kako napraviti global onkeypress za chr(13)?17.06.2005. u 18:10 - pre 228 meseci
Citat:
slavica2000: Sva sam polja selektovala i poslala na jedan dogadjaj a TabOrder ga sam salje na sledeci. Ja sam kasnije imala problem kad sam htela da uvedem i strelice za gore dole ...ali to je druga prica.


i ja imam problem sa strelicama.... zna li neko kako je to moguce resiti...
(problem je sto strelice ne reaguje na KeyPreview)
 
Odgovor na temu

obucina

Član broj: 38191
Poruke: 723

Jabber: obucina


+7 Profil

icon Re: Mnogo Maskedit i Edit komponenti-kako napraviti global onkeypress za chr(13)?18.06.2005. u 15:00 - pre 228 meseci
Strelice ne sluze za to za sto bi ti i slavica2000 da ih koristite.
Inace, strelice mozes da citas u OnKeyDown i OnKeyUp.

 
Odgovor na temu

ivanho
slobodni umetnik
Beograd

Član broj: 28465
Poruke: 73
217.26.75.*



Profil

icon Re: Mnogo Maskedit i Edit komponenti-kako napraviti global onkeypress za chr(13)?18.06.2005. u 17:00 - pre 228 meseci
Citat:
obucina: Strelice ne sluze za to za sto bi ti i slavica2000 da ih koristite.
Inace, strelice mozes da citas u OnKeyDown i OnKeyUp.


Strelice reaguju OnKeyDown i OnKeyUp, ali ne reaguju na keyPreview. Drugim recima ukoliko je fokus, na primer, na Tbutton komponenti (kojih na formi ima vise), i ukoliko stavim u OnKeyDown da mi donja strelica reaguje kao tab.... fokus se nece nikad postaviti na komp koja tedit komponentu, vec ce se "vrteti" kroz tbutton komponete.

Citat:
Delphi help:
Navigation keys (Tab, BackTab, the arrow keys, and so on) are unaffected by KeyPreview because they do not generate keyboard events.


Druga stvar.... ko kaze cemu strelice sluze? ( i da li njemu treba verovati?)
 
Odgovor na temu

obucina

Član broj: 38191
Poruke: 723

Jabber: obucina


+7 Profil

icon Re: Mnogo Maskedit i Edit komponenti-kako napraviti global onkeypress za chr(13)?19.06.2005. u 12:41 - pre 228 meseci
Citat:
ivanho: Druga stvar.... ko kaze cemu strelice sluze? ( i da li njemu treba verovati?)


Kaze onaj ko je napravio operativni sistem i mislim da mu treba verovati, posto je razvio filozofiju upotrebe svog sistema i napisao tomove o tome, kao i standarde kojih programeri treba da se pridrzavaju. Sve to ima na njihovoj stranici i u MSDN-u.
 
Odgovor na temu

ivanho
slobodni umetnik
Beograd

Član broj: 28465
Poruke: 73
217.26.75.*



Profil

icon Re: Mnogo Maskedit i Edit komponenti-kako napraviti global onkeypress za chr(13)?19.06.2005. u 13:52 - pre 228 meseci
Citat:
obucina: Kaze onaj ko je napravio operativni sistem i mislim da mu treba verovati, posto je razvio filozofiju upotrebe svog sistema i napisao tomove o tome, kao i standarde kojih programeri treba da se pridrzavaju. Sve to ima na njihovoj stranici i u MSDN-u.



Taj koji je napravio operativni sistem mi uzima pare, musterija mi daje....
hmmmm kome da verujem i cije zahteve da ispunjavam?
uz sve to ni njihovi programeri se ne pridrzavaju tih standarda, pa sto bi ja nameto svojim musterijama iste, ukoliko ih oni ne zele




Resenje:

Code:

Application.OnMessage:=AppMessage;


procedure TForm1.AppMessage(var Msg: tagMSG; var Handled: Boolean);
var

  conActCont: TWinControl;
  frmActForm : TCustomForm;
  KeyState : TKeyboardState;

begin
if (Msg.message=WM_KEYDOWN) and ((Msg.wParam=VK_DOWN) or (Msg.wParam=VK_UP)) then
  begin
    GetKeyboardState(KeyState);
    if (Screen.ActiveControl <> nil) and (not (KeyboardStateToShiftState(KeyState) = [])) then
      begin
       conActCont:=Screen.ActiveControl
       case Msg.wParam of
         VK_DOWN:
             Msg.wParam := VK_TAB; 
         VK_UP:                           
           begin                          
             Msg.wParam := 0;            
             frmActForm := GetParentForm(conActCont);
             if frmActForm <> nil then    
               frmActForm.Perform(WM_NEXTDLGCTL, 1, 0);
             Handled := true;
           end;
       end;     
      end;
  end;
end;
 
Odgovor na temu

milex
NLB Montenegrobanka
Podgorica

Član broj: 26783
Poruke: 28
*.crnagora.net.

Jabber: milex@elitesecurity.org
ICQ: 291956322


Profil

icon Re: Mnogo Maskedit i Edit komponenti-kako napraviti global onkeypress za chr(13)?19.06.2005. u 19:50 - pre 228 meseci
Postoji vrlo jednostvno rešenje. Instaliraj JEDI i samo postaviš komponentu JvsEnterAsTab i rešio si problem za ceo život.
<M I L E X>
 
Odgovor na temu

[es] :: Pascal / Delphi / Kylix :: Mnogo Maskedit i Edit komponenti-kako napraviti global onkeypress za chr(13)?

[ Pregleda: 5026 | Odgovora: 18 ] > FB > Twit

Postavi temu Odgovori

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