Bist du denn sicher, dass dein AddChar richtig funktioniert?
Nja, ein Logging im "richtigen" Programm bringt wohl mehr.
Eventuell, fängt irgendeine andere Komponente/Funktion die 0 ab und sie kommt garnicht erst in deiner EventMethode an?
Dass "einfache" minimalistische Testprogramme manchmal/oftmals ein klein bissl anders arbeiten/reagieren, als wie ein hochkomplexes Programm, wo sehr viel Code/Komponenen drin arbeiten, das könnte man sich vielleicht denken.
PS:
Warum ist die 0 denn hier anders behandetl, als wie alle Anderen?
Delphi-Quellcode:
case key of
ord('0')..ord('9'): AddChar(Char(key));
VK_NUMPAD0: AddChar('0');
VK_NUMPAD1: AddChar('1');
VK_NUMPAD2: AddChar('2');
VK_NUMPAD3: AddChar('3');
VK_NUMPAD4: AddChar('4');
VK_NUMPAD5: AddChar('5');
VK_NUMPAD6: AddChar('6');
VK_NUMPAD7: AddChar('7');
VK_NUMPAD8: AddChar('8');
VK_NUMPAD9: AddChar('9');
VK_BACK: ResetMe();
VK_DELETE: RemoveChar();
VK_ESCAPE: HideMe();
VK_RETURN: HideMe();
end;
Wobei, wenn schon '0'..'9' zusammen, warum dann nicht auch VK_NUMPAD0..VK_NUMPAD9
Delphi-Quellcode:
case Key of
Ord('0')..Ord('9'): AddChar(Char(Key));
VK_NUMPAD0..VK_NUMPAD9: AddChar(Char(Key - VK_NUMPAD0 + Ord('0')));
VK_BACK: ResetMe();
VK_DELETE: RemoveChar();
VK_ESCAPE, VK_RETURN: HideMe();
end;