FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Dejar cursor al final
Que tal amigos del foro, espero que bien tengo el siguiente inconveniente
Estoy ejecutando la siguiente funcion en el evento onchange y me ocurre lo siguiente, cada ves que presiono un numero el cursor se me va al principio y mi palabra pierde el sentido, aca dejo los preocedimientoe que ejecuto. Ejemplo:Al querer escribir delphi tecleo delp y si de repente presiono la tecla uno(1) el cursor se va al principio (el uno no aparece)y termino escribiendo hidelp(la otra parte de delphi al principio por que esta ahi el cursor) ¿Como hago para que el cursor este siempre al ultimo pòr mas que presione numeros? procedure TForm1.Edit10Change(Sender: TObject); begin Edit10.Text:=SoloPalabra(Edit10.Text); end; end. function SoloPalabra(Texto : String) : String; var palabra : String; i, k : integer; begin k := Length(Texto); for i := 1 to k do if Texto[i] in ['0','1',....,'9'] {aqui pongo todos los digitos...} then Break else palabra := palabra + Texto[i] ; Result := palabra; end; |
#3
|
|||
|
|||
No sirve
Pasa lo mismo cuando presiono un numero, el cursor vuelve al principio de la cajita de texto.
|
#4
|
||||
|
||||
Jam, lo que ocurre es que en el evento ONchange, estas cambiando la propiedad text, por eso el cursor se te vuelve al inicio. No uses la funcion "solo palabra", directamente escribe el código de darkpale en el evento KeyPress.
Si por cualquier motivo deseas usar la funcion solopalabra, entonces haz esto:
La ventaja de usar el evento change, es que tambien validará el texto pegado desde el portapapeles, usando keyPress, no se validará. Saludos |
|
|
|