Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   validar Edit!! (https://www.clubdelphi.com/foros/showthread.php?t=73922)

ezequiel913 24-05-2011 21:31:20

validar Edit!!
 
hola gente!!

tengo un problema con el ingreso de datos en un Edit. la cosa es asi: yo quiero que el edit me permita ingresar los numeros 20 o 27 o 30 en primer lugar, y despues que me deje ingresar cualquier numero. por ejemplo:

en ese edit tengo que ingresar el CUIT entonces los 2 primeros numeros tienen que ser si o si el 20, 27 o 30. el CUIT tambien tengo que ingresarlo sin los guiones. ejemplo:

27358557892

asi es como tendria que ingresarse los datos en ese edit.

gracias!!!

oscarac 24-05-2011 21:53:39

Puedes revisar por el metodo Onchange del edit
seria "algo mas o menos asi"

Código Delphi [-]
 
procedure TfrmValesdeConsumo.edtTrabajadorChange(Sender: TObject);
begin
if Copy(edtTrabajador.Text,1,2) <> '02' and 
  Copy(edtTrabajador.Text,1,2) <> '27' and 
  Copy(edtTrabajador.Text,1,2) <> '30' Then
  edtTrabajador.SetFocus

ezequiel913 25-05-2011 00:57:45

hola Oscarac!!

Hice exactamente lo que me dijiste y no me dejo, me tira un error en la segunda linea, en la primera linea del IF esta todo bien,pero en la segunda, me dice que "<>" no es un operador aplicable para este tipo de operandos.

este es el codigo que me queda a mi:

procedure TAltaProveedores.EditCuitChange(Sender: TObject);
begin
If Copy (EditCuit.Text,1,2) <> '20' and
Copy (EditCuit.Text,1,2) <> '27' and // en esta linea me tira el error.
Copy (EditCuit.Text,1,2) <> '30' then
EditCuit.SetFocus;
end;

oscarac 25-05-2011 01:02:52

me parece que tienes que encerrarlos entre parentesis cada pregunta

() and () and()

ezequiel913 25-05-2011 01:13:22

Oscarac!!!

perfecto ahí compilo, puse a ejecutar y cuando estoy en el edit ese, me deja ingresar cualquier numero, no es que solo me deja entrar los que yo le digo, puedo entrar cualquier numero y no me dice nada, solo quiero que me deje entrar esos números.

oscarac 25-05-2011 01:22:42

Entonces coloca el codigo en el evento OnExit
eso hace que cuando salga del foco verifique si los 2 primeros son los numeros que tu quieres que sean si no son regresara al edit

ezequiel913 25-05-2011 01:29:29

Perfecto, hice eso en el evento OnExit y funciona.

muchas gracias!!

saludos!!!

luchifer 28-05-2011 04:40:32

Prefiero utilizar el evento onkeypress del edit y coloco el codigo, por ejm:

if not (Key in ['0'..'9',#8,#13,'.']) then Key := #0 else
if key=#13 then sendmessage(Fing_nota.Handle,WM_NEXTDLGCTL,0,0)

o sea en este caso si no presionan solo numeros, el edit no acepta otro caracter


La franja horaria es GMT +2. Ahora son las 20:13:02.

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