La explicación es sencilla, aunque tu le asignaras un valor al edit en el evento OnKeypress, todavía no había llegado la pulsación al edit, así después de terminar el evento llegaba y como el cursor debía de estar al principio del texto de ahí que se añadiera al principio. Por eso el evento OnKeyPress pasa como
var el valor
key, de esta manera podemos cambiar su valor por otro, pudiendo cambiar una tecla por otra, pero cuando se sustituye por un cero es como si anuláramos la tecla.
Espero haberme explicado, porque me parece que al final me lié un poco
