You are on page 1of 9

14/09/2018 [Resolvido] Validação em InputQuery - Delphi - Fórum iMasters

WE ARE DEVELOPERS

Sign In   Sign Up

Forums Activity

Forums Calendar Our Picks Communities

 Home  Desenvolvimento e Banco de Dados  Algoritmos & Outras Tecnologias  Delphi   All Activity Regras Equipe Líderes
[Resolvido] Validação em InputQuery

Search...

 Archived
This topic is now archived and is closed to further replies.

[Resolvido] Validação em InputQuery


By Carcleo, March 1, 2008 in Delphi



Carcleo Posted March 1, 2008 Report post 

Ola Pessoal:
 
Tenho no meu código uma parte que tem:
 

Members
procedure TfrmPrincipal.ImprimirClick(Sender: TObject);
4 var
1916 posts Dia: Integer;
Localização:Muriae/MG
Texto: String;
begin
Texto := '';
if InputQuery('Digite o Dia para recebimento','Impr
begin
try
Dia := StrToInt(Texto);
except
ShowMessage('Dia inválido
Exit;
end;
end
else
begin
Exit;
end;
Application.CreateForm(TfrmRelatorio,frmRelatorio)
if not frmRelatorio.QryClientes.Locate('MelhorDia'
begin
frmRelatorio.Close;
ShowMessage('Registro não encontrad
Exit;
end
else
begin
frmRelatorio.QryClientes.Filter :
frmRelatorio.QryClientes.Filtered :
frmRelatorio.QuickRepListagem.Previ
frmRelatorio.Free;
end;
end;

Importantselect
Information
de pagamento Question: Importar Planilha Excel no While dentro de outro While
  I accept
By Claudia
Ao usar o fórum, França, 19com
você concorda hours ago inTerms of Use.
nossos By olucaslima, 23 hours ago in Perguntas e By lucianfpaula, 21 hours ago in PHP
Javascript respostas rápidas

https://forum.imasters.com.br/topic/274822-resolvido%C2%A0valida%C3%A7%C3%A3o-em-inputquery/ 1/9
14/09/2018 [Resolvido] Validação em InputQuery - Delphi - Fórum iMasters
Nele tem uma inputquery, e eu preciso validar se a pessoa digitou nela letras ou
numeros.
Caso não tenha digitado numeros, imprimir na tela uma mensagem dizendo "Só
aceita numeros".
 
Outra coisa, é limitar o campo da inputquery a apenas 3 digitos "___";
 
Desde já meus agradecimentos.
 
Carlos Rocha

Rodrigo Miss Posted March 1, 2008 Report post 


[...]
No exemplo abaixo, em tempo de projeto vai dar uma violação, mais faça o exemplo
abaixo, compile, e rode o projeto fora do delphi ....

var
Texto: String;
Members begin
Texto:= '';
1 if InputQuery('Digite o Dia para recebimento','Impressão para Rec
1270 posts begin
Try
StrToInt(Texto);
Except
raise Exception.Create('Permitido somente números!');
End;
if Length(Texto) > 3 then
begin
raise Exception.Create('Permitido somente 3 caracteres!')
end;
end;

Carcleo Posted March 1, 2008 Report post 

Entendi.
 
Só que no caso de 3 digitos, eu quero fazer tipo uma mascara não permitindo um
quarto digito.
 
Members
Obs.: não são 3 digitos e sim até 3 digitos

4  
1916 posts Na verdade, eu queria usar a função abaixc para validar se foi ou não digitados
Localização:Muriae/MG numeros. Porem, não estou sabendo como usar-la no meu código(no caso, numa
inputquery).
 

function ExisteInt(Texto:String): Boolean;


{Testa se em uma string existe um numero inteiro valido ou não}
var
i:integer;
begin

try
i := StrToInt(Texto);
Result := True;
except
Result := False;
end;
end;


Importantselect
Information
de pagamento Question: Importar Planilha Excel no While dentro de outro While
  I accept
By Claudia
Ao usar o fórum, França, 19com
você concorda hours ago inTerms of Use.
nossos By olucaslima, 23 hours ago in Perguntas e By lucianfpaula, 21 hours ago in PHP
Javascript respostas rápidas

https://forum.imasters.com.br/topic/274822-resolvido%C2%A0valida%C3%A7%C3%A3o-em-inputquery/ 2/9
14/09/2018 [Resolvido] Validação em InputQuery - Delphi - Fórum iMasters

Rodrigo Miss Posted March 1, 2008 Report post 


[...]
Mais ta certo sua função .... mais você poderia fazer assim tbm ..
 

function IsNumeric(const S: String): Boolean;


var
Members x: SmallInt;
begin
1 Result:= True;
1270 posts For x:= 1 to Length(S) do
begin
if not(S[x] in['0'..'9']) then
begin
Result:= False; Break;
end;
end;
end;

var
Texto: String;
begin
if InputQuery('Digite o Dia para recebimento','Impressão pa
begin
if not(IsNumeric(Texto)) then
begin
ShowMessage('Permitido somente numeros'); E
end;
end;

qto a montar uma mascara no InputQuery ... não tem como não ... se quiser isso
mesmo, entao poderia criar um formulario normal, nele você colocaria um MaskEdit,
e configurar o tamanho do form para um tamanho equivalente a de um inputquery
....

Carcleo Posted March 1, 2008 Report post 

Cara, tamos quase la só falta uma coisa:


 
Preciso testar se se o dia digitado no campo texto da inputquery é menor que 1 ou
mAior que 31
caso afirmativo dizer que o dia tem que ser entre 1 e 31;
Members
Tentei assim mas não deu certo:
4
1916 posts if ((Dia < 1) or (Dia > 31)) then
Localização:Muriae/MG
begin
ShowMessage('Dia tem quer de 1 até
exit;
end;

Ta +pra php né?


Brincadeira.

Rodrigo Miss Posted March 1, 2008 Report post 


[...]
a sintaxe esta correta!
Precisa ver se a variavel Dia esta recebendo o valor corretamente ...

Members

Importantselect
Information
de pagamento Question: Importar Planilha Excel no While dentro de outro While
1   I accept
By Claudia
Ao usar o fórum, França, 19com
você concorda hours ago inTerms of Use.
nossos By olucaslima, 23 hours ago in Perguntas e By lucianfpaula, 21 hours ago in PHP
1270 posts
Javascript respostas rápidas

https://forum.imasters.com.br/topic/274822-resolvido%C2%A0valida%C3%A7%C3%A3o-em-inputquery/ 3/9
14/09/2018 [Resolvido] Validação em InputQuery - Delphi - Fórum iMasters

Carcleo Posted March 1, 2008 Report post 

Eis meu código completo.


Por favor me ajude a encontrar o quee esta erraedo.
obs:
Esta dando para todo numero que digito que o valor é menor que 1 e maior que 31.
Mesmo os que não são.
Members
 
4
1916 posts unit principal;
Localização:Muriae/MG

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Control
Dialogs, ZConnection, StdCtrls, Buttons, ExtCtrls, DB,
ZAbstractRODataset, ZAbstractDataset, ZDataset, jpeg;

type
TfrmPrincipal = class(TForm)
funerplan: TZConnection;
Fundo: TImage;
cadastrar: TBitBtn;
pesquizar: TBitBtn;
sair: TBitBtn;
sobre: TBitBtn;
Imprimir: TBitBtn;
procedure cadastrarClick(Sender: TObject);
procedure sobreClick(Sender: TObject);
procedure pesquizarClick(Sender: TObject);
procedure sairClick(Sender: TObject);
procedure ImprimirClick(Sender: TObject);
function ExisteInt(Texto:String): Boolean;
private
{ Private declarations }
public
{ Public declarations }
end;

var
frmPrincipal: TfrmPrincipal;

implementation

uses cadastrar, pesquizas, relatorio, sobre;

{$R *.dfm}

procedure TfrmPrincipal.cadastrarClick(Sender: TObject);


begin
if frmCadastrar = NIL then //cria o form se ele não foi criado ain
Application.CreateForm(tfrmCadastrar,frmCadastrar);
frmCadastrar.Show;
end;

procedure TfrmPrincipal.sobreClick(Sender: TObject);


begin
if frmSobre = NIL then //cria o form se ele não foi criado ainda
Application.CreateForm(tfrmSobre,frmSobre);
frmSobre.Show;
end;

procedure TfrmPrincipal.pesquizarClick(Sender: TObject);


begin
if frmPesquizas = NIL then //cria o form se ele não foi criado ain
Application.CreateForm(tfrmPesquizas,frmPesquizas);
frmPesquizas.Show;

Importantselect
Information
de pagamento end; Question: Importar Planilha Excel no While dentro de outro While
  I accept
By Claudia
Ao usar o fórum, França, 19com
você concorda hours ago inTerms of Use.
nossos By olucaslima, 23 hours ago in Perguntas e By lucianfpaula, 21 hours ago in PHP
Javascript respostas rápidas

https://forum.imasters.com.br/topic/274822-resolvido%C2%A0valida%C3%A7%C3%A3o-em-inputquery/ 4/9
14/09/2018 [Resolvido] Validação em InputQuery - Delphi - Fórum iMasters
procedure TfrmPrincipal.sairClick(Sender: TObject);
begin
Close;
end;

function IsNumeric(const S: String): Boolean;


var
x: SmallInt;
begin
Result:= True;
For x:= 1 to Length(S) do
begin
if not(S[x] in['0'..'9']) then
begin
Result:= False; Break;
end;
end;
end;

procedure TfrmPrincipal.ImprimirClick(Sender: TObject);


var
Dia: Integer;
Texto: String;
begin
Texto := '';
Dia := 0;
if InputQuery('Digite o Dia para recebimento','Impr
begin
if not(IsNumeric(Texto)) then
begin
ShowMessage('Permitido somente nume
Exit;
end;
if Length(Texto) > 3 then
begin
ShowMessage('Permitido até 3 cara
Exit;
end;
if ((Dia < 1) or (Dia > 31)) then
begin
ShowMessage('Dia tem quer de 1 até
exit;
end;

try
Dia := StrToInt(Texto);
except
ShowMessage('Dia inválido!');
Exit;
end;
end
else
begin
Exit;
end;
Application.CreateForm(TfrmRelatorio,frmRelatorio)
if not frmRelatorio.QryClientes.Locate('MelhorDia'
begin
frmRelatorio.Close;
ShowMessage('Registro não encontrad
Exit;
end
else
begin
frmRelatorio.QryClientes.Filter :
frmRelatorio.QryClientes.Filtered :
frmRelatorio.QuickRepListagem.Previ
frmRelatorio.Free;
end; 
Importantselect
Information
de pagamento end; Question: Importar Planilha Excel no While dentro de outro While
  I accept
By Claudia
Ao usar o fórum, França, 19com
você concorda hours ago inTerms of Use.
nossos By olucaslima, 23 hours ago in Perguntas e By lucianfpaula, 21 hours ago in PHP
Javascript respostas rápidas

https://forum.imasters.com.br/topic/274822-resolvido%C2%A0valida%C3%A7%C3%A3o-em-inputquery/ 5/9
14/09/2018 [Resolvido] Validação em InputQuery - Delphi - Fórum iMasters

end.

Rodrigo Miss Posted March 1, 2008 Report post 


[...]
Mais ai q ta o erro meu camarada...
você ta atribuindo o valor para Dia depois q faz a validação se ele foi ou não
informado corretamente ...
 
Faça assim:

Members
if (StrToInt(Texto) < 1) or (StrToInt(Texto) > 31) then
1 begin
1270 posts ShowMessage('Dia tem quer de 1 até 31!');
exit;
end;

E esqueça a variavel DIA...

Carcleo Posted March 1, 2008 Report post 

Ok.
Agora deu certo.
Terminei meu projeto.
Bom, é claro que ao decorrer dos textes(para aprendizado), vão surgindo novas
validações. Espero poder contar novamente com os amigos.
Members
 
4 Mas, sobre o meu código, para quem tiver um pouquinho de curiosidade, ficou
1916 posts assim.
Localização:Muriae/MG Vale a pena dar uma olhado.
 
Muito Obrigado.

unit principal;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Control
Dialogs, ZConnection, StdCtrls, Buttons, ExtCtrls, DB,
ZAbstractRODataset, ZAbstractDataset, ZDataset, jpeg;

type
TfrmPrincipal = class(TForm)
funerplan: TZConnection;
Fundo: TImage;
cadastrar: TBitBtn;
pesquizar: TBitBtn;
sair: TBitBtn;
sobre: TBitBtn;
Imprimir: TBitBtn;
procedure cadastrarClick(Sender: TObject);
procedure sobreClick(Sender: TObject);
procedure pesquizarClick(Sender: TObject);
procedure sairClick(Sender: TObject);
procedure ImprimirClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

Importantselect
Information
de pagamento Question: Importar Planilha Excel no While dentro de outro While
var   I accept
By Claudia
Ao usar o fórum, França, 19com
você concorda hours ago inTerms of Use.
nossos By olucaslima, 23 hours ago in Perguntas e By lucianfpaula, 21 hours ago in PHP
Javascript respostas rápidas

https://forum.imasters.com.br/topic/274822-resolvido%C2%A0valida%C3%A7%C3%A3o-em-inputquery/ 6/9
14/09/2018 [Resolvido] Validação em InputQuery - Delphi - Fórum iMasters
frmPrincipal: TfrmPrincipal;

implementation

uses cadastrar, pesquizas, relatorio, sobre, Math;

{$R *.dfm}

procedure TfrmPrincipal.cadastrarClick(Sender: TObject);


begin
if frmCadastrar = NIL then //cria o form se ele não foi criado ain
Application.CreateForm(tfrmCadastrar,frmCadastrar);
frmCadastrar.Show;
end;

procedure TfrmPrincipal.sobreClick(Sender: TObject);


begin
if frmSobre = NIL then //cria o form se ele não foi criado ainda
Application.CreateForm(tfrmSobre,frmSobre);
frmSobre.Show;
end;

procedure TfrmPrincipal.pesquizarClick(Sender: TObject);


begin
if frmPesquizas = NIL then //cria o form se ele não foi criado ain
Application.CreateForm(tfrmPesquizas,frmPesquizas);
frmPesquizas.Show;
end;

procedure TfrmPrincipal.sairClick(Sender: TObject);


begin
Close;
end;

function IsNumeric(const S: String): Boolean;


var
x: SmallInt;
begin
Result:= True;
For x:= 1 to Length(S) do
begin
if not(S[x] in['0'..'9']) then
begin
Result:= False; Break;
end;
end;
end;

procedure TfrmPrincipal.ImprimirClick(Sender: TObject);


var
Dia : Integer;
Texto: String;
begin
Texto := '';
if InputQuery('Digite o Dia para recebimento','Impr
begin
If Texto = '' then
begin
ShowMessage('Qual o dia par
Exit;
end;

if not(IsNumeric(Texto)) then
begin
ShowMessage('Aqui, somente
Exit;
end;
if Length(Texto) > 2 then
begin 
Importantselect
Information
de pagamento Question: Importar Planilha Excel no
ShowMessage('Permitido até While dentro de outro While
  I accept
By Claudia
Ao usar o fórum, França, 19com
você concorda hours ago inTerms of Use.
nossos By olucaslima, 23 hours ago in Perguntas e By lucianfpaula, 21 hours ago in PHP
Javascript respostas rápidasExit;

https://forum.imasters.com.br/topic/274822-resolvido%C2%A0valida%C3%A7%C3%A3o-em-inputquery/ 7/9
14/09/2018 [Resolvido] Validação em InputQuery - Delphi - Fórum iMasters
end;
if (StrToInt(Texto) < 1) or (StrToInt(Texto
begin
ShowMessage('Dia entre 1 à
exit;
end;
try
Dia := StrToInt(Texto);
except
ShowMessage('Dia inválido!');
Exit;
end;
end
else
begin
Exit;
end;
Application.CreateForm(TfrmRelatorio,frmRelatorio)
if not frmRelatorio.QryClientes.Locate('MelhorDia'
begin
frmRelatorio.Close;
ShowMessage('Registro não encontrad
Exit;
end
else
begin
frmRelatorio.QryClientes.Filter :
frmRelatorio.QryClientes.Filtered :
frmRelatorio.QuickRepListagem.Previ
frmRelatorio.Free;
end;
end;

end.

 GO TO TOPIC LISTING

Delphi

     

 Home  Desenvolvimento e Banco de Dados  Algoritmos & Outras Tecnologias  Delphi   All Activity Regras Equipe Líderes
[Resolvido] Validação em InputQuery

Publicidade

Este projeto é oferecido pelas empresas


Importantselect
Information
de pagamento Question: Importar Planilha Excel no While dentro de outro While
  I accept
By Claudia
Ao usar o fórum, França, 19com
você concorda hours ago inTerms of Use.
nossos By olucaslima, 23 hours ago in Perguntas e By lucianfpaula, 21 hours ago in PHP
Javascript respostas rápidas

https://forum.imasters.com.br/topic/274822-resolvido%C2%A0valida%C3%A7%C3%A3o-em-inputquery/ 8/9
14/09/2018 [Resolvido] Validação em InputQuery - Delphi - Fórum iMasters

Este projeto é mantido e patrocinado pelas empresas

Este projeto é apoiado pelas empresas

 

Language  Theme  Privacy Policy Contact Us

Desenvolvimento Design Banco de dados Marketing Digital Agenda Cursos Online


Agile 3ds max Interbase Conteúdo Digital Fórum InterCon
Ajax Acessibilidade MongoDB E-commerce
7Masters Revista iMasters
Análise de Dados Arquitetura de MySQL E-mail Marketing
CakePHP Informação Oracle Mercado
CSS Design Responsivo PostgreSQL Publicidade Online
Front End Games SQL Server Redes Sociais
Usabilidade
HTML Tendências
Java User Experience Infra e Cloud

JavaScript Cloud Computing Mobile

PHP Linux Android


Python Microsoft Azure iPhone & iPad
Ruby Segurança
Site Blindado

Sobre o iMasters Política de Privacidade Fale conosco iMasters Expert (english blog)


Importantselect
Information
de pagamento Question: Importar Planilha Excel no While dentro de outro While
  I accept
By Claudia
Ao usar o fórum, França, 19com
você concorda hours ago inTerms of Use.
nossos By olucaslima, 23 hours ago in Perguntas e By lucianfpaula, 21 hours ago in PHP
Javascript respostas rápidas

https://forum.imasters.com.br/topic/274822-resolvido%C2%A0valida%C3%A7%C3%A3o-em-inputquery/ 9/9