OnKeyDown
OnKeyPres
OnKeyUp
Nicht alle Tastenevents werden an gleicher Stelle behandelt.
Manches wird beim Drücken ausgelöst (inkl. Key-Repeat-Calls) und manches erst beim Loslassen.
Buttons z.B. :
per Tastatur [ENTER] beim Drücken,
das [Space] beim Loslassen,
deren ShortCuts/HotKeys beim Drücken
und per Maus auch erst beim Loslassen.
Die SpeedButtons in ScrollBars und beim UpDownButtons reagieren dagegen wieder auf's Drücken, mit RepeatTimer und stoppen beim Loslassen.
Wir hatten z.B. ein Fenster im Programm, das ging bei F2-KeyDown zu, aber im übergeordneten Fenster wird es beim beim F2-KeyUp geöffnet, also beim Schließen via F2 wurde es sofort wieder geöffnet.
Aber wieso soll "ein" Knopf verschiedene Funktionen haben?
ein Button mit Cancel=True reagiert auf ESC
und ein anderer Button mit Default=True auf das Enter.
Bei ESC immer. Bei ENTER nur wenn die Knöpfe keinen Fokus haben, ansonsten macht bei Enter/Space jeder Button das, wofür er da ist.