Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   Validar Edit solo Texto (https://www.clubdelphi.com/foros/showthread.php?t=46298)

Elite237 28-07-2007 01:15:45

Validar Edit solo Texto
 
Una pregunta, que codigo tengo que introducir en un edit para que me valide entrada solo de texto.Solo tengo validado para introducir solo numeros.El siguiente codigo es el que introduci para este:

if (key >=char (64)) or (key <char(47))
And (key >=char (14)) then
begin
mensaje:=Application.MessageBox('Digite un valor numerico.Gracias','Error de entrada');
key:=char(0);//Limpia el Edit

cHackAll 28-07-2007 01:24:34

Código Delphi [-]
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
 (Sender as TEdit).ReadOnly := not (key in [#8, ' ', 'a'..'z', 'A'..'Z']); // Agregas los caracteres que necesites
end;

roman 28-07-2007 01:34:22

:eek: ¿Qué se supone que hace esto?

Si oprimo una letra, el control se hará de sólo lectura, pero la letra se escribirá y ya no podré escribir nada más, ni letras ni números.

// Saludos

Elite237 28-07-2007 01:38:17

Introducir Texto
 
Solo que haga esto...

Al momento de querer introducir un numero, que te mande un mensaje de error, que diga que solo idebes introducir letras, y despues de cerrar esa ventana, que se limpie el edit.

cHackAll 28-07-2007 01:45:12

Cita:

Empezado por roman
:eek: ¿Qué se supone que hace esto?

Si oprimo una letra, el control se hará de sólo lectura, pero la letra se escribirá y ya no podré escribir nada más, ni letras ni números.

// Saludos

Estas mal amigo, pruébalo pues funciona como lo dejé!!!

Elite237, acá está lo tuyo:

Código Delphi [-]
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
 if Key in ['0'..'9'] then
  begin
   Application.MessageBox('No puedes escribir numeros en ésta casilla!', 'Error de validación');
   Key := #0;
  end;
end;

Edito: roman no es Enabled; es ReadOnly!

roman 28-07-2007 01:49:41

Cita:

Empezado por cHackAll
Estas mal amigo, pruébalo!!!

Tienes razón. Me di cuenta apenas mandé el mensaje. Muy curioso. La verdad pensé que el valor de ReadOnly se tomaría sóo después de la llamada al evento, pero ya veo que lo hace antes. Muy ingenioso.

// Saludos

Elite237 28-07-2007 02:32:55

Listo!!!Ya quedo
 
Ya quedo!!! Muchas Gracias, solo una pregunta...

Quiero validar los edits que tengo, y queria programar cada edit, pero me comentaron que se puede ahorrar todo esto mediante una funcion??

Tu sabras cual?

cHackAll 28-07-2007 03:06:40

Al OnKeyPress de todos los TEdits ponle la función que te dejé.
El primer ejemplo sirve para la validación tambien de todos los TEdits que quieras.

Elite237 28-07-2007 03:12:43

Cual?
 
La función que me dices es esta?:

(sender as TEdit)

cHackAll 28-07-2007 03:32:26

Cita:

Empezado por cHackAll
Código Delphi [-]
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
 (Sender as TEdit).ReadOnly := not (key in [#8, ' ', 'a'..'z', 'A'..'Z']); // Agregas los caracteres que necesites
end;

Así es! Sender es el objeto que produce el evento; si a todos los TEdits que tengas direccionas el evento indicado a la anterior funcion vale!

Elite237 28-07-2007 03:44:04

Entiendo
 
Entiendo lo que me dices, ahora mi duda es otra...si escribo eso en todos los edit, lo que me hara sera que me acepte solo letras y no numeros..ok?, si es asi, no todos los edit que tengo tienen que tener esa restriccion, puesto que en otros me deben aceptar tanto numeros como letras...y en ese caso como quedaria?

Nose si me di a entender.

axesys 28-07-2007 17:26:38

Checate este componente

http://www.programmersheaven.com/dow...1/ZipView.aspx

Faust 28-07-2007 21:41:53

Podría fallar al pegar
 
Alguna vez quise hacer algo así, pero desafortunadamente se pueden pegar caracteres no deseados, también debes evitar el pegado desde el teclado (ctrl + V) y desde el menú contextual que aparece en el Edit.

Saludos...

Elite237 28-07-2007 21:45:25

Validar
 
Ok..Gracias por todos sus sugerencias....Por lo pronto estoy validando cada edit, me sirve de practica, a parte necesito terminarlo para este lunes...De todas formas gracias


La franja horaria es GMT +2. Ahora son las 19:02:56.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi