Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Saber si es un entero (https://www.clubdelphi.com/foros/showthread.php?t=40011)

chipsoni 05-02-2007 13:58:33

Saber si es un entero
 
Hola, querria saber si puedo poner como condicion de un if que lo que haya en un edit.text sea un float y como hacerlo.

Creo recordar que hay una funcion que te devuelve true o false, pero no me acuerdo cual era.

Me podeis echar una mano?.

Gracias.

Bicho 05-02-2007 14:04:30

Hola, en SysUtils tienes varias funciones para ello:

StrToFloat, StrToInt, TryStrToFloat, TryStrToInt, etc

Espero te sirva.

Saludos

ixMike 05-02-2007 20:36:14

Sí, claro que se puede:

Código Delphi [-]
 
If IsFloat(Edit1.text) then [...]
If IsInteger(Edit1.text) then [...]

pero necesitarás esto:

Código Delphi [-]
 
function IsFloat(s: string): boolean;
var n: double;
begin
try
 n:=StrToFloat(s);
 result:=True;
 except
 result:=False;
 end;
end;
 
function IsInteger(s: string): boolean;
var n: integer;
begin
try
 n:=StrToInt(s);
 result:=True;
 except
 result:=False;
 end;
end;

Lo que hace cada función es convertir el contenido del Edit.Text a una variable numérica del correspondiente tipo. Si todo va bien, pues es válido, sino, pues da error.

Espero que te sirva de ayuda.

Saludos.

PD: las funciones se me acaban de ocurrir, no sé si Delphi ya tiene alguna por el estilo implementada.

chipsoni 06-02-2007 16:24:00

A ver, yo declaro una variable String para meter mi edit y despues uso el TryStrToFloat de esa variable y me peta, os digo:

procedure TFormPedido.BAceptarClick(Sender: TObject);
var
importe:String;
begin
importe:=Eimporte.Text;
if (TryStrToFloat(importe)) then
begin
.
.
.
end
else
showmessage ('Formato del importe incorrecto');
end;

El error de complicacion dice que: "there is overloaded version of TryStrToFloat that can be called with these arguments."

Hago algo mal, pero no se que es.

Lepe 06-02-2007 16:52:48

mira mejor la función, lleva dos parámetros, uno el texto y otro el número que se devuelve.

saludos


La franja horaria es GMT +2. Ahora son las 05:05:27.

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