Ich hab irgendwie die Vermutung, dass es eher an "Key" und den "VK_X" liegt. Klappt es denn so?
Delphi-Quellcode:
if Key = VK_1 then Mode := 1
else if Key = VK_2 then Mode := 2
else if Key = VK_3 then Mode := 3;
Die VK_X sind ja Char-Werte, Case-Abfragen allerdings für Integer gedacht.