Autor Téma: TAdvSpinEdit -> OnKeyPress nezbehne ale OnKeyUp áno  (Přečteno 351 krát)

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 4118
  • Karma: 36
    • Verze Delphi: XE7 professional
Nevie niekto v čom je zrada?
Delphi XE7, FireBird
Expert na kladenie nejasne formulovaných otázok.

Offline Delfin

  • Padawan
  • ******
  • Příspěvků: 1724
  • Karma: 66
  • SW konzultant
    • Verze Delphi: 2009, Tokyo
Re:TAdvSpinEdit -> OnKeyPress nezbehne ale OnKeyUp áno
« Odpověď #1 kdy: 24-02-2019, 09:19:04 »
K tomu muze dojit napr. v pripade kdy vkladas neplatne znaky (TAdvSpinEdit pouziva k validaci metodu IsValidChar). V ten moment se stisk klavesy potlaci, provede se MB_OK pipnuti a udalost OnKeyPress se nevyvola. Tedy takova zakladni otazka, mas v systemu povoleny zvuk a pri zadavani znaku slysis pipani? Pokud ano, zadavas neplatne znaky.
I'm a soldier, so don't panic! I know the underground! I like WTFPL license! No more Google, go duck, go!

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 4118
  • Karma: 36
    • Verze Delphi: XE7 professional
Re:TAdvSpinEdit -> OnKeyPress nezbehne ale OnKeyUp áno
« Odpověď #2 kdy: 24-02-2019, 09:43:42 »
Hm, zrovna čísla a enter za neplatné znaky nepovažujem. Čisla sa pekne zobrazia. Zvuk mám vypnutý. Skúsim ho zapnúť, ale nič si od toho nesľubujem.
Delphi XE7, FireBird
Expert na kladenie nejasne formulovaných otázok.

Offline Delfin

  • Padawan
  • ******
  • Příspěvků: 1724
  • Karma: 66
  • SW konzultant
    • Verze Delphi: 2009, Tokyo
Re:TAdvSpinEdit -> OnKeyPress nezbehne ale OnKeyUp áno
« Odpověď #3 kdy: 24-02-2019, 09:47:24 »
Relevantni kod (modul AdvSpin, verze 1.7.3.0):

Kód: Delphi [Vybrat]
  1. procedure TAdvSpinEdit.KeyPress(var Key: Char);
  2. begin
  3.   if not IsValidChar(Key) then
  4.   begin
  5.     Key := #0;
  6.     MessageBeep(0);
  7.   end;
  8.   if Key <> #0 then
  9.     inherited KeyPress(Key);
  10. end;
I'm a soldier, so don't panic! I know the underground! I like WTFPL license! No more Google, go duck, go!

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 4118
  • Karma: 36
    • Verze Delphi: XE7 professional
Re:TAdvSpinEdit -> OnKeyPress nezbehne ale OnKeyUp áno
« Odpověď #4 kdy: 24-02-2019, 09:56:02 »
Tak zvuky som vypnuté nemal. Čo ma dosť prekvapilo. Mne je tam škoda písať akýkoľvek kód. Nedostane sa tam. Tebou uvedený kód podľa mňa nie je dobrý. Upravil som to
Kód: Delphi [Vybrat]
  1. if not TAdvSpinEdit(Sender).IsValidChar(Key) then
a dostanem oznam
[dcc32 Error] subWallVent.pas(365): E2362 Cannot access protected symbol TAdvSpinEdit.IsValidChar
Delphi XE7, FireBird
Expert na kladenie nejasne formulovaných otázok.

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 4118
  • Karma: 36
    • Verze Delphi: XE7 professional
Re:TAdvSpinEdit -> OnKeyPress nezbehne ale OnKeyUp áno
« Odpověď #5 kdy: 24-02-2019, 09:57:32 »
OnKeyUp mi rieši čo potrebujem. Mám Update : TAdvSpinEdit v1.8.2.0


Oprava: OKeyDown
« Poslední změna: 24-02-2019, 10:10:07 od Stanislav Hruška »
Delphi XE7, FireBird
Expert na kladenie nejasne formulovaných otázok.

Offline Delfin

  • Padawan
  • ******
  • Příspěvků: 1724
  • Karma: 66
  • SW konzultant
    • Verze Delphi: 2009, Tokyo
Re:TAdvSpinEdit -> OnKeyPress nezbehne ale OnKeyUp áno
« Odpověď #6 kdy: 24-02-2019, 10:02:26 »
Tak zvuky som vypnuté nemal. Čo ma dosť prekvapilo. Mne je tam škoda písať akýkoľvek kód. Nedostane sa tam. Tebou uvedený kód podľa mňa nie je dobrý.

To je kod z modulu TMS uvedene verze.
I'm a soldier, so don't panic! I know the underground! I like WTFPL license! No more Google, go duck, go!

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 4118
  • Karma: 36
    • Verze Delphi: XE7 professional
Re:TAdvSpinEdit -> OnKeyPress nezbehne ale OnKeyUp áno
« Odpověď #7 kdy: 24-02-2019, 10:20:46 »
Tak pri zadávaní neplatných zankov, alfa znaky, to naozaj pípne.
Teraz mi to došlo. Ja tam programovo, globálne v celom projekte pre všetky "edit-y" dosadzujem OKeyPress. To musím zrušiť a dať tam to čo chcem.
Ospravedlňujem sa.
Delphi XE7, FireBird
Expert na kladenie nejasne formulovaných otázok.