Die beste Lösung wäre ein Timer zu nehmen.
Im OnTimer Ereigniss guckst Du dann ob eine Taste "down" is und führst die Aktion aus!
Daraus entstehen 2 Vorteile:
1) Deine ganzen Probleme sind gelöst
2) Du kannst zum Beispiel auch hoch und rechts drücken und es wird beides ausgeführt!
Kleiner Nachteil... Die Delphi Timer Komponente ist nicht sehr genau und resourcenschonend!
Wenns da also Probleme gibt mit Performance nimm lieber ne Timer Kompo von Torry oder
DirectX...