Mira a ver si te sirve esto, solo lo he probado una vez y parece que funciona, te permite meter un solo dígito numérico en Edit1 y pasar automaticamente al siguiente componente (sea edit u otro) y si vuelves al edit te permite reemplazar el dígito numérico por otro si lo seleccionas, o borrarlo y escribir otro nuevo.
Edit1 debe tener su propiedad MaxLength a 1 para no permitir entrar más de un dígito.
Si lo que quieres es que solo adimita letras o un determinado número de caracteres reemplaza los números 0123456789 por lo que necesites en la linea
if ( StrScan('0123456789'+chr(7)+chr(8), Key) = nil ) then
Pon esto en el evento OnKeyPress del Edit1
Código Delphi
[-]procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if ( StrScan('0123456789'+chr(7)+chr(8), Key) = nil ) then
begin
key := #0;
end
else
begin
if (key <> #7) and (key <> #8) then
perform(wm_nextdlgctl,0,0);
end
end;