• 0
Sign in to follow this  
Léo

Como Saber Se Um Edit Tem Caract. Numericos

Question

Ola amigos como faço para verificar que tipo de dados um edit está recebendo.

Exemplo: digitando-se "Palavra" é um valor strig e "100" é um valor inteiro

como faço isso?

Agradecido!

Share this post


Link to post
Share on other sites

6 answers to this question

Recommended Posts

  • 0
Guest Guest

Tente isto:

//converte strings em inteiros se der certo, fala que digitou um inteiro

//se não der certo fala que não foi digitado um inteiro

try

StrtoInt(Edit1.text);

ShowMessage('Você digitou um inteiro');

except on EConvertError do

begin

ShowMessage('Não foi digitado um inteiro');

end;

end;

Share this post


Link to post
Share on other sites
  • 0
Tente isto:

//converte strings em inteiros se der certo, fala que digitou um inteiro

//se não der certo fala que não foi digitado um inteiro

try

StrtoInt(Edit1.text);

ShowMessage('Você digitou um inteiro');

except on EConvertError do

begin

ShowMessage('Não foi digitado um inteiro');

end;

end;

Fui eu quem postou.

Share this post


Link to post
Share on other sites
  • 0

Olá, fiz uma UNIT completa pra você.

Observações:

1) Eu coloquei dois objetos EDIT (Edit1 e Edit2);

2) Configurei a propriedade 'TAG' do Edit1 com o valor '1' (só digite o número um);

3) Para realizar o procedimento eu utilizei o evento OnExit do Edit1. Logo, adicione o evento OnExit do Edit1;

4) O Edit2 eu só coloquei para você poder clicar em outro objeto fora do Edit1;

5) Este exemplo faz com que a pessoa não saia do Edit1 caso ela deixe o Edit1 vazio ou se ela digita um valor que não seja um número inteiro. Caso ela digite um número inteiro, aparecerá a mensagem 'É um número inteiro' e o foco vai para o Edit2;

6) Se você executar este exemplo dentro do DELPHI (RUN), aparecerá uma mensagem de erro. Isto é normal. Compile e Construa o programa e execute-o fora do Delphi (pelo Windows Explorer, por exemplo), e ele vai funcionar corretamente.

================================================

unit Unit1;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls;

type

TForm1 = class(TForm)

Edit1: TEdit;

Edit2: TEdit;

procedure Edit1Exit(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Edit1Exit(Sender: TObject);

begin

if (Sender as TEdit).Text='' then

begin

Showmessage('Não foi digitado nenhum dado.');

(Sender as TEdit).SetFocus;

end

else

begin

Try

if (Sender as TEdit).Tag= 1 then

StrToInt((Sender as TEdit).Text);

ShowMessage('É um número inteiro');

Except

On EConvertError do

begin

ShowMessage('Não é um número inteiro');

(Sender as TEdit).SetFocus;

end;

end;

end;

end;

end.

================================================

Abraços.

Share this post


Link to post
Share on other sites
  • 0

Um outro exemplo bastante simples e parece ser mais interessante que o primeiro que eu dei (smile.gif). É semelhante (quase igual) ao que o nosso colega postou.

1) Coloque um objeto EDIT;

2) Coloque um objeto BUTTON;

3) Adicione o evento OnClick do objeto BUTTON;

4) Se você executar este exemplo dentro do DELPHI (RUN), aparecerá uma mensagem de erro. Isto é normal. Compile e Construa o programa e execute-o fora do Delphi (pelo Windows Explorer, por exemplo), e ele vai funcionar corretamente.

UNIT Completa:

=============================================

unit Unit1;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls;

type

TForm1 = class(TForm)

Edit1: TEdit;

Button1: TButton;

procedure Button1Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);

begin

try

if pos(',',edit1.text) > 0 then

begin

StrToFLoat(edit1.text);

showmessage('FLOAT');

end else

begin

StrToInt(edit1.text);

showmessage('INTEGER');

end;

except

showmessage('STRING');

end;

end;

end.

=============================================

Abraços.

Share this post


Link to post
Share on other sites
  • 0

Outra forma seria:

1) Coloque um EDIT e um BOTÃO;

2) Adicione o evento OnClick do BOTÃO.

===========================================

unit Unit1;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls;

type

TForm1 = class(TForm)

Button1: TButton;

Edit1: TEdit;

procedure Button1Click(Sender: TObject);

private{ Private declarations }

public { Public declarations }

end;

var

Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);

var

I: Int64;

J: Integer;

E: Extended;

S: string;

begin

J := -1;

S := 'DESCONHECIDO';

try

if (Pos(DecimalSeparator, Edit1.Text)>0) then

begin

Val(Edit1.Text, E, J);

if (J=0) then

S := 'FLOAT NUMBER';

end

else

begin

Val(Edit1.Text, I, J);

if (J=0) then

S := 'INTEGER';

end;

if (J<>0) then

S := 'STRING';

finally

ShowMessage(Edit1.Text + ' is a ' + S);

end;

end;

end.

===========================================

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this