es que al ser onkeypress.
es al presionar la tecla. y no se toa en cuenta la parte visual. sino el evento
prueba, con el edit. con onchange.
o si no. con un timer. que se ejecute con el evento con keypress
y que se auto detenga asi mismo.
al timer tu elije cuantos milisegundos son apropiados. o al segundo se ejecute el timer
Código Delphi
[-]
onkeypress
begin
timer1.enabled:=True;
end;
Form1.ontimer1(Sender:Tobject)
begin
Edit1.text:=Edit1.text+key;
i:=edit1.text;
Timer1.enabled := False
end;