Bueno eso que has dicho es cierto, pero tampoco hay que dramatizar
, tiene facil solucion, tan solo hay que modificar un aspecto:
cada vez que se pulse una tecla, en vez de contar los caracteres que pulsamos, (incluyendo el BackSpace o el Delete...), podemos capturar la longitud de la cadena contenida en el TEdit +1 (puesto que el evento ocurre antes de que aparezca el caracter pulsado), y si es multiplo de 3 (puesto que '/' ocupa las posiciones 3n), entonces añadimos el '/', con la condicion de filtrar solo aquellas teclas que nos interesan (todas menos BackSpace y Delete). Ahi os dejo el codigo:
Código Delphi
[-]procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
var
longitud: integer;
begin
longitud:=Length(Edit1.Text)+1;
Edit1.SelStart:=longitud-1; if ((longitud mod 3)=0) and (longitud>2) and (ord(key)<>VK_BACK) and (ord(key)<>VK_DELETE) then begin
Edit1.Text:=Edit1.Text+'/';
Edit1.SelStart:=longitud;
end;
end;
la linea comentada como //añadido... sirve para que, por si algun casual se posiciona el cursor en una posicion distinta a la ultima, al presionar la tecla, se escriba forzosamente al final...(esta linea es opcional, a gusto de lo que se quiera...)
Bueno eso es todo. Saludos