Artigo Clube Delphi 71 - Virtual TreeView

Sofistique suas aplicações com um TreeView profissional.

Esse artigo faz parte da revista Clube Delphi 71. Clique aqui para ler todos os artigos desta edição

Virtual TreeView

Sofistique suas aplicações com um TreeView profissional

A interface de um aplicativo sempre foi um fator determinante no sucesso ou no fracasso de um projeto. De nada adianta um código complexo rodando nos bastidores se a parte visual da aplicação não agradar o “todo-poderoso” usuário. E interagir corretamente com este “ser”, através de controles que tornem a utilização da aplicação mais fácil e intuitiva, pode determinar se você irá receber um email de elogio ou um telefonema mal-educado.

Uma boa maneira de se criar interfaces intuitivas e fáceis de utilizar é seguindo os padrões das grandes empresas de software, como a Microsoft, por exemplo. E esta companhia usa e abusa dos componentes que seu sistema operacional oferece, como o TreeView. O problema deste controle nativo é que ele não oferece muitas opções, tanto de flexibilidade quanto de apresentação. É aí que entra o componente que dá nome a este artigo: VirtualTreeView.

 

O componente

Criado em 2000 por Mike Lischke, este controle impressiona pela quantidade de recursos, onde a maioria absoluta não existe na opção do Windows. Coisas simples, como exibir checkboxes para cada item, ordenar os dados etc., que exigiriam certo esforço para codificar, estão ao alcance de meras propriedades. Para o leitor ter uma idéia da qualidade deste componente, basta saber que ele foi escolhido pela Borland para compor o IDE da versão 2005/2006 do Delphi. Vamos ver neste artigo as características mais importantes deste componente, que pode dar uma aparência extremamente profissional as suas aplicações.

 

Baixando e instalando

Acesse o site www.delphi-gems.com/VirtualTreeview/VT.php e baixe o instalador do componente. Certifique-se de ter o Delphi fechado antes de executá-lo. O programa de instalação irá criar automaticamente no registro uma entrada para a BPL necessária. O instalador possui versões para Delphi 4 a 2005 (e até você ler isso provavelmente para 2006) e C++ Builder 4 a 6. Abra o Delphi após o processo e veja a nova paleta adicionada (Figura 1). Observe que há três componentes: VirtualStringTree, VirtualDrawTree e VTHeaderPopupMenu. Neste artigo focaremos principalmente o VirtualStringTree.

 

Figura 1. Paleta Virtual Controls

 

Antes de começar: ponteiros

Um pré-requisito essencial para se poder trabalhar corretamente com o VirtualTreeView é conhecer sobre ponteiros. Um ponteiro denota um endereço de memória, armazenando o endereço de outra variável. Dizemos que ele aponta para o local daquela variável, ou para os dados armazenados por ela. Para se declarar um ponteiro de um tipo de dados, usa-se a seguinte sintaxe:

 

type NomeDoPonteiro = ^TipoDeDado

 

Isso quer dizer que NomeDoPonteiro representa ponteiros para variáveis do tipo TipoDeDado. O símbolo (^) também tem outra função. Se colocado no final do nome de uma variável do tipo de um ponteiro, ele “de-referencia” (em uma tradução literal de dereferences) o ponteiro, isto é, retorna o valor contido no endereço da memória armazenado por ele. Veja o código na Listagem 1:

 

Listagem 1. Exemplo de ponteiro

var

  S1, S2: string;

  P: ^string;

begin

  { S1 recebe um valor }

  S1 := 'ClubeDephi';

  { P aponta para o endereço de S1 }

  P := @S1;

  { S2 recebe o valor armazenado no endereço salvo

    por P }

  S2 := P^;

end;

 

O código anterior copia o valor de S1 em S2. Ou seja, simplesmente S1 := S2. Ponteiros são úteis por diversas razões. Em primeiro lugar, entendê-los irá ajudar você a compreender melhor a Delphi Language, uma vez que ponteiros quase sempre atuam implicitamente em qualquer código que você escreva. Além disso, tipos de dado que precisam de blocos grandes e dinâmicos de memória usam ponteiros. Isso vale para strings longas, como PChar e PWideChar, Algumas técnicas avançadas de programação, como API Hooking, vista até a edição anterior, fazem uso extensivo de ponteiros.

 

A interface da aplicação

Para começarmos a estudar o componente, vamos montar a interface da aplicação. Adicione no formulário principal de uma nova aplicação, inicialmente, os seguintes controles: um VirtualStringTree (“tvAgenda”), quatro LabeledEdit, um ComboBox, um Label e três Button. Organize-os no formulário conforme a Figura 2.

 

Figura 2. Interface da aplicação

 

Definindo uma estrutura de dados

O VirtualTreeView opera da seguinte forma: define-se a estrutura a ser armazenada, e só a preenchemos quando o seu elemento associado for acessado. Tal estrutura pode ser qualquer coisa referenciável através de um ponteiro. Portanto, tipos primitivos, records, arrays, objetos etc.

Tudo praticamente pode ser associado a um elemento dentro do componente. Como já mencionado, isso dá ampla flexibilidade para nós, desenvolvedores. Adicione uma nova unit ao projeto existente, vá ao Code Editor e na seção type da unit digite o código da "

[...] continue lendo...
Ebook exclusivo
Dê um upgrade no início da sua jornada. Crie sua conta grátis e baixe o e-book

Artigos relacionados