verificar se alguma variavel contem somente numeros sem TRY

Delphi

11/11/2003

alguem poderia me ajudar, estou tendo uns probleminhas com isto, eu estou tentando verificar se uma string possui somente numeros, sendo esta primeira pega de um inputbox, quando eu coloco somente numeros da certo, soh q quando eu coloco qq outro caractere ele da erro de conversão, tentei utilizar da seguinte forma


var
num : integer;
begin
try
num := strtoint(inputbox(...))
except
MsgBox (Handle, ´Somente Numeros´, ´Erro´, 0);
end;

tentei tbm desta forma

except
on EConvertError do
MsgBox (Handle, ´Somente Numeros´, ´Erro´, 0);
end;

nenhum destes modos da certo

Alguem poderia me ajudar?

Antes de mais nada obrigado soh pela curiosidade da minha duvida

vlw Pessoal do Clube Delphi


Matt_nttp

Matt_nttp

Curtidas 0

Respostas

Gbastos

Gbastos

11/11/2003

Não lembro agora se o Delphi tem alguma função que verifica que uma string é composta de números (como o VB tem o IsNumeric), mas dá pra fazer rapidinho uma função tipo:
function EhNum(Expressao: string): boolean;
var
   I: integer;
   EhNumerico: boolean;
begin
   EhNumerico := true;
   I := 1;
   while (I < Length(Expressão)) and (EhNumerico) do
   begin
     if (Ord(Expressão[I]) < 48) or (Ord(Expressão[I]) > 57) then
        EhNumerico := false;
     I := I + 1;
   end;
   Result := EhNumerico;
end;


Eu sei q tá meio tosco, mas é só pra ilustrar... :lol:


GOSTEI 0
Beppe

Beppe

11/11/2003

Podes usar a intrinsica Val:

var
  Valor, Code: Integer;
begin
  Val(InputBox(...), Valor, Code);
  if Code <> 0 then ShowMessage(´Não é um número´);
end;



GOSTEI 0
POSTAR