Buscar

Variants no delphi

nome

Wiliam Zacarias

Colunista ainda sem descrição. Caro colunista, por favor envie-nos sua descrição.

Variant no Delphi

 

Esta flexível e poderosa Estrutura de Dados, que popularizou-se bastante através da linguagem Clipper, carrega consigo recursos extremamente interessantes para a manipulação de tipos e trabalhos com arrays. Mas o melhor de tudo, é que, estes recursos estão disponíveis a nós, “Programadores em Delphi”. Isso mesmo, vantagens como alteração/definição de tamanho em modo de execução, armazenamento de diversos tipos (inclusive de arrays).  

 

- Declaração do Tipo Variant

 

            O tipo Variant pode assumir tipos como varSmallInt (inteiro de 16 bits), varInteger(inteiro de 32 bits), Strings (varString e varOleStr), varSingle (ponto flutuante de precisão simples), varDouble (ponto flutuante de precisão dupla), varBoolean(lógico de 16 bits)... Bem como também assumir tipos como varNull (para nulo), e varEmpty (para nunca atribuído, vazio). As conversões de tipos acontecem automaticamente (na medida do possível), e a atribuição de tipos para uma variável do tipo Variant pode mudar em modo de execução, observe o exemplo abaixo:

 

procedure TForm1.Button1Click(Sender: TObject);
var m_valor1,

    m_valor2,

    m_valor3 : Variant;

 

    m_Str1 : String;

Begin

  m_valor1 := 12;  // atribui valor inteiro

  m_valor2 := 5.2; // atribui um ponto flutuante

  m_valor3 := m_valor1 * m_valor2;

 

  m_Str1 := m_valor3;
  // atribui resultado(já convertendo)

End;

 

Como pode notar, temos em mãos uma flexibilidade ímpar no trabalho com variáveis. Todavia, como nem tudo são rosas, existem desvantagens com o uso de Variant, entre elas, o tamanho mínimo de 16 bits para as variáveis (tornando-as mais lentas), e também o fato de não haver verificações em modo de compilação quando usamos Variant, podendo surgir Bugs que daremos conta somente em modo de execução.

 

- Variant Contendo um Array

 

            Uma outra forma de aproveitar-mos esta estrutura de dados, é através da implementação de uma variant contendo um array. Isso é possível através da função VarArrayCreate. Observe abaixo:

 

 procedure TForm1.Button1Click(Sender: TObject);
var m_variavel : Variant;

 

Begin

  // Criando um array de Variant

  m_variavel := VarArrayCreate([1,4], varVariant);   

  // inserindo elementos no array

  m_variavel[1] := ’palavra’;

  m_variavel[2] := 213;

  m_variavel[3] := true;

  m_variavel[4] := 2.4;

End;

 

Os elementos entre colchetes que formam os pares do primeiro argumento da função representam o índice de validação do array, e quanto ao segundo argumento, o tipo dos elementos do array (neste caso usamos um tipo variant).

 

Assim, entendemos que a flexibilidade desta Estrutura de Dados pode ser base para a criação de diversas outras estruturas mais complexas, bastando apenas que usemos um pouco da nossa criatividade.

 

Bom estudo!
-(Wiliam Zacarias)-
wiliam@delphi.eti.br

Publicidade

Vote no artigo




Quantidade de votos: 1 voto
Aceitação: 20%


Detalhes do artigo

Categoria: Outros
Adicionado dia: 15/08/05
Por: Wiliam Zacarias
Visualizado: 22712 vezes

Planeta Delphi - Tudo sobre programação Delphi Planeta Delphi - www.planetadelphi.com.br - Todos os direitos reservados | Copyright 2001-2009