| Redimensionando as colunas
do DBGRID
Autor: Mário Leite
Dentre os vinculados a banco de dados do VB, DbList,
DBCombo e DBGrid, este último (DBGrid) é o controle
mais importante no contexto de controle de dados, pois com ele não precisamos
de escrever qualquer linha de código para que os dados de uma tabela possam
ser apresentados no estilo browse. E, adicionalmente à essa
característica deste controle, podemos realizar as transações de Inclusão,
Exclusão e Alteração; tudo sem codificar nada! Entretanto, quando
os registros da tabela são apresentados na forma tabelar temos uma desagradável
surpresa: o VB nos mostra os campos dos registros todos com um
mesmo tamanho padrão. Por exemplo, vamos considerar uma tabela
de Funcionários com a seguinte estrutura de campos: Matrícula(7),
Nome(35), Setor(8), Admissão(10); quando os
registros dessa tabela forem exibidos em browse notaremos que o
DBGrid nos mostra o campo Matrícula (definido com tamanho
7) do mesmo tamanho do campo “Nome” (definido com tamanho 35),
o que significa exibir os nomes “cortados” na grade. Para evitar isso,
apresentamos um pequeno programa com uma rotina que redimensiona os campos
na grade, de maneira que os tamanhos desses campos possam ser redimensionados
dinamicamente. A figura 1 mostra a situação padrão (como o DBGrid
apresentaria normalmente os registros); a figura 2 exibe os mesmos
registros, porém com os campos perfeitamente redimensionados para os seus
respectivos tamanhos, e a figura 3 mostra as duas rotinas do projeto.
Neste nosso exemplo usamos o botão de comando cmdRedimensionar
para que o próprio usuário possa redimensionar os campos; esta
sistemática de implementação foi usada apenas para que o exemplo ficasse
mais didático. Todavia, num projeto mais realista, sugerimos que
a rotina que faz o redimensionamento seja colocada no evento Form_Paint()
do formulário, tornando o processamento mais transparente e dinâmico.
Observem que o segredo está em descobrir, inicialmente, o maior valor
do campo “Nome”, que é o que varia muito nos tamanhos dos seus
valores; como os outros campos têm tamanho fixo, não foi preciso o loop.
E as propriedades do DBGrid e do Controle Data, como foram
configuradas? Para o Controle Data: DataBaseName=Nome_do_Banco_de_Dados,
e RecordSource=Nome_da_Tabela; para o DBGrid: DataSource=Nome_do_Controle_Data.
Só isto!

Figura 1 - Registros em browse
na situação padrão do DBGrid

Figura 2 - Registros com os
campos (colunas) redimensionados

Figura 3 - As duas rotinas
(procedures-eventos) do projeto
leitemario@bol.com.br

|