Bueno, he hecho unas pruebas y el código de Román funciona bien

. Me he encontrado con un problema añadido, que ya está solucionado, cuando pulsaba enter sobre una celda para editarla, se quedaba el texto seleccionado, así que si intentaba teclear algo... se perdía lo que había. Un mal menor que ya está solucionado.
Escafandra, el código que has puesto creo que necesita algo más que no has puesto, me da error en la línea:
Código Delphi
[-]Input.Tipo:= INPUT_KEYBOARD;
Dice que no sabe qué es 'Tipo'. Hay otra propiedad, IType, o algo así, será esa la que hay que poner, ¿no?