Ir para conteúdo
Fórum Script Brasil
  • 0

Validação em InputQuery


Carlos Rocha

Pergunta

Ola Pessoal:

Tenho no meu código uma parte que tem:

procedure TfrmPrincipal.ImprimirClick(Sender: TObject);
var
  Dia: Integer;
  Texto: String;
begin
        Texto := '';
        if InputQuery('Digite o Dia para recebimento','Impressão para Recebimento em casa',Texto) then
         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', Dia, []) then
            begin
                frmRelatorio.Close;
                ShowMessage('Registro não encontrado!');
                Exit;
            end
          else
            begin
                frmRelatorio.QryClientes.Filter   := 'MelhorDia =  ' + inttostr(Dia);
                frmRelatorio.QryClientes.Filtered := true;
                frmRelatorio.QuickRepListagem.PreviewModal;
                frmRelatorio.Free;
              end;
end;
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 "___"; Só que no caso de 3 digitos, eu quero fazer tipo uma mascara não permitindo um quarto digito. Obs.: não são 3 digitos e sim até 3 digitos Na verdade, eu queria usar a função abaixc para validar se foi ou não digitados 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;
Preciso tambem 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; Tentei assim mas não deu certo:
if ((Dia < 1) or (Dia > 31)) then
               begin
                ShowMessage('Dia tem quer de 1 até 31!');
                exit;
               end;

Ta +pra php né?

Brincadeira.

Desde já meus agradecimentos.

Se alguém puder me ajudar pelo menos com a 2ª parte do código seria de grande utilidade tb.

Carlos Rocha

Editado por Carlos Rocha
Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0
Na verdade, eu queria usar a função abaixc para validar se foi ou não digitados 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;
Preciso tambem 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; Tentei assim mas não deu certo:
if ((Dia < 1) or (Dia > 31)) then
               begin
                ShowMessage('Dia tem quer de 1 até 31!');
                exit;
               end;
...
  if InputQuery('Digite o Dia para recebimento','Impressão para Recebimento em casa',Texto) then
  begin
    if ExisteInt(Texto) then
    begin
      Dia := StrToInt(Texto);
      if not (Dia in [1..31]) then
      begin
        ShowMessage('Dia tem quer de 1 até 31!');
        exit;
      end;      
    end else
      ShowMessage('Dia inválido!');
      Exit;
    end;
  end
...

Abraços

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...