Post by SlawekPost by BorneqCzym się różnią poza tym że w OnKeyPress mamy char a w OnKeyDown word ?
...
OKD daje informacje o wszystkich klawiszach (i ich kombinacjach)
łącznie z Alt, Ctrl, Shift itp. Generowane jest przez WM_KEYDOWN
OKP daje informacje o znaku typu char generowany jest po WM_KEYDOWN a
przed WM_CHAR. Dlatego choćby ustawienie Key=#0 powoduje niewykonanie
WM_CHAR...
jeszcze nie podałeś wg mnie najważniejszej informacji.
mianowicie zdarzenie OnKeyDown jest wywoływane w momencie wciśnięcia
klawisza
a odpowiednik tego czyli OnKeyUP w momencie puszczenia klawisza.
Czyli różnica kolosalna w porównianiu z OnKeyPress dla którego ma znaczenie
tylko wciśniecie klawisza.
Nie obraź się, ale ty też nie podałeś najważniejszej informacji ;-)
1) OnKeyUp/Down to są eventy niższego poziomu abstrakcji niż OnKeyPress.
Dostajesz w mnich WORD, ponieważ nie jest to znak klawiatury, ale tzw
scancode. W tym evencie możesz wykryć naciśnięcia klawiszy dla których
nie jest generowany OnKeyPess. Możesz też zablokować jego generowanie.
2) OnKeyPress to event wyższego poziomu. Para keyDown/keyUp (a czasem
dłuższa ich sekwencja jeśli modyfikatory typu ALT czy CTRL biorą udział)
może wygenerować pojedynczy event KeyPress. Dostaniesz w nim CHAR, kod
znaku.
Jak wynika z opisu, OnKeyPress jest generalnie generowany po OnKeyUp.
--
Arivald