Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   comparar un string con un rango de valores (https://www.clubdelphi.com/foros/showthread.php?t=28948)

locorez 08-01-2006 17:58:33

comparar un string con un rango de valores
 
Wenas,
vereis, hace un rato que me estoy peleando con una cosa.
Quiero comparar que en el text de un edit, solo haya numeros. Para eso he creado esta funcion que no me va:
Código Delphi [-]
types
 rang= '0'..'9';
  numeric= set of rang;
...

function ValidaCadenes(cadena:string):boolean;
var
   i: integer;
   resultat: boolean;
   numeric1:numeric;
begin
    resultat:=true;
    for i:=0 to length(cadena) do begin
      if (cadena[i]=numeric1) then resultat:=false;
    end;
    result:=resultat;
end;
Como puedo hacerlo sin que me pete diciendome tipos incompatibles? porque he intentado pasar el string a entero con el strtoint y nada.
Saludos y gracias.

vtdeleon 08-01-2006 18:13:47

Saludos

Lo mas sencillo es usar el evento OnKeyPress del edit y poner este codigo
Código Delphi [-]
Procedure editOnKeyPress(...);
Begin
   if not (key in ['0'..'9',#13,#8]) then key:=#0
end;
Suerte

Y como veo que eres nuevo, Bienvenido al ClubDelphi. Date una miradita a la Guia de estilo y al uso de las etiquetas. Puede encotrar los enlaces en mi firma

Hasta luego

fer21unmsm 09-01-2006 15:54:43

Cita:

Empezado por locorez
Wenas,
vereis, hace un rato que me estoy peleando con una cosa.
Quiero comparar que en el text de un edit, solo haya numeros. Para eso he creado esta funcion que no me va:
Código Delphi [-]
types
rang= '0'..'9';
numeric= set of rang;
...
 
function ValidaCadenes(cadena:string):boolean;
var
i: integer;
resultat: boolean;
numeric1:numeric;
begin
resultat:=true;
for i:=0 to length(cadena) do begin
if (cadena[i]=numeric1) then resultat:=false;
end;
result:=resultat;
end;
Como puedo hacerlo sin que me pete diciendome tipos incompatibles? porque he intentado pasar el string a entero con el strtoint y nada.
Saludos y gracias.

He modificado un poco tu código: ya no necesitas definir ningún tipo.

Código Delphi [-]
function ValidaCadenes(cadena:string):boolean;
var
   i: integer;
begin
    result:=true;  //si no hay números en la cadena retorna true
    for i:=1 to length(cadena) do begin  //contador i debe comenzar de 1
      if (cadena[i] in ['0'..'9']) then  //no se pone igual se pone in
      begin
        result:=false;
        exit;  //al primer número que encuentre sale con false
      end;
    end;
end;

Saludos.


La franja horaria es GMT +2. Ahora son las 10:37:30.

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