ClipaTec Informática

Receba novidades por e-mail. Digite seu e-mail abaixo e clique no botão "Cadastrar"

Delivered by FeedBurner

4 de janeiro de 2023

Quick Tips - InputQuery com mais de um campo

janela inputquery delphi

Olá clipatequeiros, no artigo de hoje, mostraremos uma dica rápida sobre o método InputQuery do Delphi.
Há um tempo, recebemos questionamentos sobre a possibilidade do método InputQuery ter mais de um campo para entrada de dados. A resposta é SIM, isso é possível. Poucos sabem, até mesmo, alguns programadores que já trabalham com Delphi há anos.
Se olharmos para a UNIT que contem o método InputQuery, note que existem algumas assinaturas de sobrecarga para este método (três), inclusive, uma delas, pede por parâmetro, um array, e é exatamente essa assinatura que usaremos para mostrar que podemos ter uma janela do InputQuery com mais de um campo para entrada de dados.
Assinatura do método InputQuery que vamos utilizar:

function InputQuery(const ACaption: string; const APrompts: array of string; var AValues: array of string; CloseQueryFunc: TInputCloseQueryFunc = nil): Boolean; overload;

Para isso, vamos trabalhar com array de genéricos, especializado em string.
O primeiro passo, é definir uma variável do tipo TArray de string, neste exemplo, trabalharemos com os dados como string. No código abaixo, chamamos esta variável do array de 'lDados'.
Após a declaração da variável, precisamos definir o tamanho do nosso array, isto é, definiremos quantas posições irá conter no array. É importante salientar que, o tamanho do array, deve corresponder à quantidade de campos que você deseja ter na janela do InputQuery, no nosso exemplo, teremos apenas três campos, sendo um campo para nome, E-Mail e telefone, sendo assim, teremos um array com três posições, onde, cada posição irá armazenar o dado de um campo.
O método usado para definirmos o tamanho do array é o SetLength, que pede por parâmetro o array e o tamanho dele.
Agora vem o pulo do gato, ao chamarmos o método InputQuery, utilizaremos a assinatura citada anteriormente, onde passaremos três parâmetros, o primeiro é o título da janela, o segundo é o array com os títulos dos campos que irão conter na janela, vale ressaltar que, por ser um array, devemos passar entre colchetes '[]', separados por vírgula. Note que, passamos três valores neste array de títulos dos campos, ou seja, deve ser exatamente a quantidade de elementos definidos no array, no nosso caso, três, para não ter estouro de posição. Por fim, o terceiro parâmetro é o nosso array.
Ao executar, a janela do InputQuery agora terá três campos, cada um, com o título que definimos na passagem do parâmetro, e repare que os campos aparecem na janela, na mesma ordem em que foram passados no parâmetro, é muito importante lembrar desse detalhe.
Estamos testando o retorno dessa função dentro de um IF, se o usuário clicar no botão OK, apenas exibiremos uma mensagem mostrando os dados que foram informados na janela, se o usuário clicar no botão CANCELAR, mostraremos uma mensagem dizendo que a operação foi cancelada, conforme o código abaixo.
Agora, note que ao recuperar os dados informados para exibir na mensagem, estamos acessando o array e suas posições, onde, a posição ZERO corresponde ao Nome, a posição UM corresponde ao E-Mail e a posição DOIS corresponde ao Telefone. Vale ressaltar que as posições de um array começa com ZERO.
Por isso é importante lembrar da ordem dos títulos dos campos passados por parâmetro, pois, na hora de ler os dados, a sequência é a mesma. Atente-se a isso para não ler dado de posição errada. Os dados armazenados no array, são referentes aos campos na ordem passada no parâmetro do InputQuery.
Muito bem, feito isso, chegamos ao final desta dica rápida, se você não conhecia, agora já sabe como criar uma janela de InputQuery com vários campos. É um recurso que pode ser muito útil quando precisamos capturar dados de forma rápida e simples.

Código:

codigo delphi inputquery

codigo delphi inputquery

codigo delphi inputquery


Links:

- TArray;
- InputQuery;
- TryStrToInt, InputBox e InputQuery no Delphi;

(Por ClipaTec Informática)

0 comments:

Postar um comentário

Visite nossa página de Política de comentarios antes de comentar para ter certeza de que seu comentário não será excluído! Lembre-se, assim que aprovarmos o teu comentário ele será publicado, por isso, não deixe de sempre visitar nosso blog e conferir nossa resposta ao seu comentário, abraço!