Verificar String

Delphi

01/06/2004

:lol: Pessoal me ajudem!

Como eu faço para verificar se a String tem só número ou string e se estiver string avisar que o edit só aceita número.

:?:


Zunker

Zunker

Curtidas 0

Respostas

Bruno Belchior

Bruno Belchior

01/06/2004

pelo q eu entendi vc preciza q o edit só aceito número correto
no envendo OnKeyPress coloque

begin
if (not (key in [´0´..´9´]) or (word(key)<>VK_BACK)) then
begin
key:=#0;
beep;
end;
end;


GOSTEI 0
Zunker

Zunker

01/06/2004

Eu preciso verificar se o Edit possui somente numeros ou sinais, sendo que naum pode conter letras.


GOSTEI 0
Paulo_amorim

Paulo_amorim

01/06/2004

Olá

Cmo disse o Bruno, teste no KeyPress

if Key not in [0..9,13,8]  then Key := 0;


VocÊ tambem pode validar na hora de usar...
por exemplo, num botão de inclusçao vc valida se soh tem Integer...
StrToInt(Edit1.Text)

Até+


GOSTEI 0
Zunker

Zunker

01/06/2004

O problema é que com a variavel q o imputbox cria, eu tenho q verificar se não tem letra

Se o cara q lida com o micro, em vez de digitar só numero como é q eu quero, digitar uma letra por acaso, então eu tenho q verificar essa saida para retornar uma mensagem para o carinha se por acaso digitou letras na variavel do Ano.


GOSTEI 0
Marconi

Marconi

01/06/2004

Snambie

Nos exemplos anteriores, o usuário não vai conseguir digitar outra coisa que não seja número, por isso voce não terá que avisa-los.

Lembrando ainda que para funcionar a propriedade Keypreview do form deve estar como ´true´.

Marconi


GOSTEI 0
Zunker

Zunker

01/06/2004

Eu testei mas naum deu certo


GOSTEI 0
Rômulo Barros

Rômulo Barros

01/06/2004

procedure TForm1.Button1Click(Sender: TObject);
Var
  C : Byte;
  Caractere : string;
begin
  For C := 1 to length(Edit1.Text)Do
  Begin
    Caractere := Copy(Edit1.Text,C,1);
    If((Caractere <> ´0´) or (Caractere <> ´1´) or
       (Caractere <> ´2´) or (Caractere <> ´3´) or
       (Caractere <> ´4´) or (Caractere <> ´5´) or
       (Caractere <> ´6´) or (Caractere <> ´7´) or
       (Caractere <> ´8´) or (Caractere <> ´9´))Then
       ShowMessage(´Letras encontradas !!!´);
       Exit;
  End;
end;



GOSTEI 0
Zunker

Zunker

01/06/2004

vlw

agora deu certo


GOSTEI 0
Marcelo Saviski

Marcelo Saviski

01/06/2004

ou assim:

function IsInteger(s: string): Boolean;
var
  n: Integer;
begin
  Result := TryIntToStr(s, n);
end;

function IsFloat(s: string): Boolean;
var
  n: Double;
begin
  Result := TryFloatToStr(s, n);
end;


exemplo de uso:
p/ numeros inteiros
if IsInteger(ImputBox(´Texto´, ´Digite algo´, ´´)) then
  showmessage(´é um número inteiro´)
else
  showmessage(´não é um número inteiro´);


--ou--

p/ ´números com vírgula
if IsFloat(ImputBox(´Texto´, ´Digite algo´, ´´)) then
  showmessage(´é um número real´)
else
  showmessage(´não é um número real´);



GOSTEI 0
POSTAR