PDA

Ver la Versión Completa : Como hacer TEdit Personalizado (maximo 10 caracteres, con una mascara, etc)


mancurnino
08-03-2008, 00:19:39
Hola amigos, estoy programando una ventana con 3 TEdit

USUARIO
CONTRASEÑA
CONFIRMACION CONTRASEÑA

Una vez se rellenen estos campos se guardan en una tabla de una base de datos. El problema que tengo es las caractericticas de los TEdit. Lo que quiero poner en cada TEdit es:

- maximo 10 caracteres (una vez esté escribiendo y llegue al decimo, si quiero seguir, que no me deje, aunque escriba)
- Que cuando señale el TEdit me salga la tipica barra vertical | , parpadeando al principio del TEdit, que me indica donde estoy ahora mismo escribiendo.
- Que escriba lo que escriba me lo pase todo a minusculas en la base de datos (una mascara supongo).
- Que al escribir un espacio, no me deje hacerlo, no me deje escribirlo

En principio lo he hecho con TMaskEdit, tengo señalado lo de maximo 10 caracteres y no me deja escribir mas a partir de aqui, que es lo que quiero, pero me sale el TMaskEdit subrayado (quiero evitarlo) y además no sale la barra vertical al principio (que es algo que quiero), sino que si señalo en mitad del TMaskEdit puedo empezar a escribir a partir del caracter 5 por ejemplo " pepe " y tambien se puede dejar espacios al final, aparte esta barra no parpadea y es muy gruesa, como un caracter de gruesa. Lo del maximo de caracteres con el TMaskEdit lo soluciono pero me sale subrayado y con la barra gruesa que puedo empezar a escribir en cualquier parte de los 10 caracteres.

Con el TEdit normal, si que me sale la barra vertical al principio parpadeando y sin subrayar (lo de toda la vida), pero puedo escribir 50000 caracteres, aunque luego solo se guarden los 10 primeros, y quiero que solo me deje escribir 10 como maximo.

El caso es que quiero tener un TEdit que cumplan los 4 requisitos que he puesto al principio, haber si podeis hecharme una mano, y sino en un TMaskEdit.

Muchas gracias igualmente¡

axesys
08-03-2008, 00:43:05
En el TEdit hay una propiedad que se llama MaxLength ahí puedes poner lo de los 10 caracteres, tambien esta una propiedad que se llama CharCase ahí puedes escoger ecLowerCase para que se pongan en minusculas para lo del espacio puedes usar el evento OnKeyPress y poner lo siguiente

procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if Ord(Key)=VK_SPACE then
Key:= #0
end;

mancurnino
08-03-2008, 03:00:47
Muchisimas gracias ¡¡¡ me has servido de gran ayuda