Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Como limitar ingreso de l 1 al 10 en un edit (https://www.clubdelphi.com/foros/showthread.php?t=72975)

chino150 23-03-2011 18:58:53

Como limitar ingreso de l 1 al 10 en un edit
 
hola a todos
mi problema es el siguiente teng varios edit donde el usuario sol debe insertar los valores del 1 al 10 si insertar valores mas alto debe salir un mensaje informandole al usario.

como logro esto

gracias de antemano

Caral 23-03-2011 19:09:46

Hola
Código Delphi [-]
procedure TForm1.Edit1Change(Sender: TObject);
var valor: integer;
begin
   Valor:= 10;
   If Valor < StrToInt(Edit1.Text) then
   Showmessage('es mayor de 10');
end;
Saludos

Caral 23-03-2011 19:18:56

Hola
Todos los edit apuntando al evento del edit1.
El bucle esta definido para tres edit, se tendra que colocar la cantidad que se necesite.
Código Delphi [-]
procedure TForm1.Edit1Change(Sender: TObject);
var valor, i: integer;
        comp: TComponent;
begin
   for i := 1 to 3 do begin // la cantidad de edits que se tenga
   Valor:= 10;
   comp := FindComponent('Edit' + IntToStr(i));
   If Valor < StrToInt(TEdit(comp).Text) then
   Showmessage('es mayor de 10');
end;
end;
Saludos

chino150 23-03-2011 19:22:41

Cita:

Empezado por Caral (Mensaje 394388)
Hola

Código Delphi [-]
procedure TForm1.Edit1Change(Sender: TObject);
var valor: integer;
begin
Valor:= 10;
If Valor < StrToInt(Edit1.Text) then
Showmessage('es mayor de 10');
end;



Saludos

Ok gracias como lo logro para 15 edit con la misma condicion

Caral 23-03-2011 19:25:58

Hola
El evento ONChange de cada edit que apunte al evento onchage del edit1.
Tambien puedes hacer un procedure que todos apunten a este.
Saludos

Caral 23-03-2011 19:28:44

Hola
Te va a dar un error (NO ES UN VALOR INTEGER), esto si los edits estan en blanco y apuntan al mismo evento.
Solucion: Colocar en el text de cada edit un 0.
Saludos

ContraVeneno 23-03-2011 19:30:02

¿no sería más sencillo utilizar un SpinEdit?

al menos no tendrías que escribir nada de código.

chino150 23-03-2011 19:32:16

Cita:

Empezado por Caral (Mensaje 394393)
Hola
Te va a dar un error (NO ES UN VALOR INTEGER), esto si los edits estan en blanco y apuntan al mismo evento.
Solucion: Colocar en el text de cada edit un 0.
Saludos

Esto es un problema para mi porque cuando arranca el programa los edits debe estar vacios

chino150 23-03-2011 19:33:17

Cita:

Empezado por ContraVeneno (Mensaje 394394)
¿no sería más sencillo utilizar un SpinEdit?

al menos no tendrías que escribir nada de código.

El ejecicio dise que debe ser edits normales

Caral 23-03-2011 19:34:00

Hola
Y por que es un problema si todo tiene solucion?.
Saludos

chino150 23-03-2011 19:37:50

Cita:

Empezado por Caral (Mensaje 394399)
Hola
Y por que es un problema si todo tiene solucion?.
Saludos

El profesor no quiere que los edits esten en blanco cuando inicie el programa

Caral 23-03-2011 19:42:21

Hola
No entiendo:
Tienen o NO tienen que estar en Blanco los edits?
Saludos

chino150 23-03-2011 19:43:51

Debe de estar en blanco

Caral 23-03-2011 19:44:56

Hola
Por eso digo: Cual es el problema, todo tiene solucion.
Espera, ya te digo.
Saludos

chino150 23-03-2011 19:46:00

ok
te espero

Caral 23-03-2011 19:57:45

Hola
Bien: Cuando inicie el programa estaran en Blanco (vacios).
Pero en cuanto se trate de ingresar un dato se llenaran de ceros, los que no tengan ya un dato.
El problema es que lee TODOS los edits, entonces necesitan poseer un dato integer.
Es como se me ocurre.
Código Delphi [-]
procedure TForm1.Edit1Change(Sender: TObject);
var valor, i: integer;
        comp: TComponent;
begin
   for i := 1 to 3 do begin // la cantidad de edits que se tenga
   Valor:= 10;
   comp := FindComponent('Edit' + IntToStr(i));
   if TEdit(comp).Text = '' then
   begin
   TEdit(comp).Text := IntToStr(0);
   end;
   if TEdit(comp).Text <> '' then
   If Valor < StrToInt(TEdit(comp).Text) then
   Showmessage('es mayor de 10');
end;
end;
Saludos
DP: Dile a tu profesor que le esta pidiendo mucho a un novato.:D;)

chino150 23-03-2011 20:09:05

Gracia Caral no tiene idea de lo abusadores que pueden ser los profesores en la Republica Dominicana

ContraVeneno 23-03-2011 20:10:14

Cita:

Empezado por chino150 (Mensaje 394396)
El ejecicio dise que debe ser edits normales

a caray... no todo lo que te enseñen en la escuela va a ser verdad...

no puedes construir puentes resistentes con palillos de dientes... aunque el ejercicio diga que sí...

utiliza el código de mi amigo Caral, si así es tu ejercicio, pero definitivamente debes de mostrarles que utilizando SpinEdits no tendrían que romperse la cabeza.

P.D. No se porque me dieron ganas de darle un zape a tu maestro, por cerrar puertas en lugar de fomentar la creatividad... shale...

pnsd_89 23-03-2011 20:21:13

y si coloca el maxleng en 2 y en el Onkey hace que las teclas permitidas solo sean las numericas? seria lo mas rapido creo yo

ContraVeneno 23-03-2011 20:23:45

Cita:

Empezado por pnsd_89 (Mensaje 394417)
y si coloca el maxleng en 2 y en el Onkey hace que las teclas permitidas solo sean las numericas? seria lo mas rapido creo yo

¿probaste el spinedit?
yo no veo otra cosa más rápida que utilizar el spinedit, establecer dos o tres propiedades y listo. Sin código, sin conversiones, sin validaciones....


La franja horaria es GMT +2. Ahora son las 12:30:26.

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