Compreendendo constantes digitadas em Delphi

Quando Delphi invoca um manipulador de eventos, os valores antigos das variáveis ​​locais são apagados. E se quisermos acompanhar quantas vezes um botão foi clicado? Poderíamos manter os valores usando uma variável no nível da unidade, mas geralmente é uma boa idéia reservar variáveis ​​no nível da unidade apenas para compartilhar informações. O que precisamos geralmente é chamado de variáveis ​​estáticas ou constantes digitadas no Delphi.

Variável ou Constante

As constantes digitadas podem ser comparadas às variáveis ​​inicializadas - variáveis ​​cujos valores são definidos na entrada do bloco (geralmente manipulador de eventos). Essa variável é inicializada apenas quando o programa começa a ser executado. Depois disso, o valor de uma constante digitada persiste entre chamadas sucessivas para seus procedimentos.

O uso de constantes digitadas é uma maneira muito clara de implementar variáveis ​​inicializadas automaticamente. Para implementar essas variáveis ​​sem constantes digitadas, precisamos criar uma seção de inicialização que defina o valor de cada variável inicializada.

instagram viewer

Constantes de tipo variável

Embora declaremos constantes digitadas na seção const de um procedimento, é importante lembrar que elas não são constantes. Em qualquer momento do seu aplicativo, se você tiver acesso ao identificador para uma constante digitada, poderá modificar seu valor.

Para ver constantes digitadas no trabalho, coloque um botão em um formulário em branco e atribua o seguinte código ao manipulador de eventos OnClick:

procedimento TForm1.Button1Click (Remetente: TObject); const cliques: Inteiro = 1; // não é uma constante verdadeirainício Form1.Caption: = IntToStr (cliques); cliques: = cliques + 1; fim; 

Observe que toda vez que você clica no botão, as legendas dos formulários aumentam constantemente.
Agora tente o seguinte código:

procedimento TForm1.Button1Click (Remetente: TObject); var cliques: Inteiro; início Form1.Caption: = IntToStr (cliques); cliques: = cliques + 1; fim; 

Agora estamos usando uma variável não inicializada para o contador de cliques. Observe esse valor estranho na legenda dos formulários depois de clicar no botão.

Constantes de tipo constante

Você precisa concordar que a idéia de constantes modificáveis ​​soa um pouco estranha. Nas versões de 32 bits do Delphi Borland decidiu desencorajar seu uso, mas suportá-las no código legado Delphi 1.

Podemos habilitar ou desabilitar constantes digitadas atribuíveis na página Compilador da caixa de diálogo Opções do projeto.

Se você desativou as constantes de tipo atribuível para um determinado projeto, quando você tenta compilar o código anterior, o Delphi fornecerá o erro 'Lado esquerdo não pode ser atribuído a' na compilação. Você pode, no entanto, criar constante digitada atribuível declarando:

{$ J +}const cliques: Inteiro = 1; {$ J-}

Portanto, o primeiro código de exemplo se parece com:

procedimento TForm1.Button1Click (Remetente: TObject); const{$ J +} cliques: Inteiro = 1; // não é uma constante verdadeira{$ J-}início Form1.Caption: = IntToStr (cliques); cliques: = cliques + 1; fim; 

Conclusão

Cabe a você decidir se deseja que as constantes digitadas sejam atribuíveis ou não. O importante aqui é que, além de ideal para contadores, constantes digitadas são ideais para criar componentes alternadamente visíveis ou invisíveis, ou podemos usá-los para alternar entre qualquer valor booleano propriedades. As constantes digitadas também podem ser usadas no manipulador de eventos do TTimer para rastrear quantas vezes foi acionado.

instagram story viewer