Clique para saber mais...
  Home     Download     Produtos / Cursos     Revista     Vídeo Aulas     Fórum     Contato   Clique aqui para logar | 20 de Julho de 2026
  Login

Codinome
Senha
Salvar informações

 Esqueci minha senha
 Novo Cadastro

  Usuários
48 Usuários Online

  Revista ActiveDelphi
 Assine Já!
 Edições
 Sobre a Revista

  Conteúdo
 Apostilas
 Artigos
 Componentes
 Dicas
 News
 Programas / Exemplos
 Vídeo Aulas

  Serviços
 Active News
 Fórum
 Produtos / Cursos

  Outros
 Colunistas
 Contato
 Top 10

  Publicidade

  [Artigos]  DBGrids Persistentes
Publicado por ActiveDelphi : Quinta, Dezembro 23, 2004 - 12:34 GMT-3 (4484 leituras)
Comentários 3 Comentários   Enviar esta notícia a um amigo Enviar para um amigo   Versão para Impressão Versão para impressão
Administrador Para continuarmos com a configuração do grid igual a última vez, podemos usar uma técnica chamada “DBGrids Persistentes”.
No formulário que possui o grid colocamos no evento onShow os seguinte código:

if( FileExists('C:\DBGridsPersistentes\DBGrid1.cfg') )then
  DBGrid1.Columns.LoadFromFile('C:\DBGridsPersistentes\DBGrid1.cfg')
else
  ShowMessage('Arquivo não encontrado');
 
Esse código verifica se há o arquivo gravado no endereço indicado se existir ele é carregado. 
Também colocamos um button para chamarmos uma outra tela, o caption do button chama-se “adicionar colunas”. 
A Tela fica com essa aparência:
 

 

O formulário “FmMostraCampos” possui os nomes dos campos que devemos marcar qual deve ficar visível ou não para isso use um panel e DBCheckbox antes crie uma tabela com os campos do dbgrid do tipo lógico.
   
A Tela fica com essa aparência:
 

A tabela aqui utilizada tem o nome “CampoCliente” pois A Tabela que está conectado no DBGrid é a de Cliente. 
No evento OnShow deste Formulário inserimos este código:
 
CampoCliente.Open;
CampoCliente.Edit;
 
O evento OnClose fica desse jeito:
 
var i : Integer;
begin
  if(CustNo.Checked)then
    Form1.DBGrid1.Columns[0].Visible := true
  else
    Form1.DBGrid1.Columns[0].Visible := false;
 
  if(Company.Checked)then
    Form1.DBGrid1.Columns[1].Visible := true
  else
    Form1.DBGrid1.Columns[1].Visible := false;
 
  if(Addr1.Checked)then
    Form1.DBGrid1.Columns[2].Visible := true
  else
    Form1.DBGrid1.Columns[2].Visible := false;
  
  if(Addr2.Checked)then
    Form1.DBGrid1.Columns[3].Visible := true
  else
    Form1.DBGrid1.Columns[3].Visible := false;
 
  if(City.Checked)then
    Form1.DBGrid1.Columns[4].Visible := true
  else
    Form1.DBGrid1.Columns[4].Visible := false;
 
  if(State.Checked)then
    Form1.DBGrid1.Columns[5].Visible := true
  else
    Form1.DBGrid1.Columns[5].Visible := false;
 
  if(Zip.Checked)then
    Form1.DBGrid1.Columns[6].Visible := true
  else
    Form1.DBGrid1.Columns[6].Visible := false;
 
  if(Country.Checked)then
    Form1.DBGrid1.Columns[7].Visible := true
  else
    Form1.DBGrid1.Columns[7].Visible := false;
 
  if(Phone.Checked)then
    Form1.DBGrid1.Columns[8].Visible := true
  else
    Form1.DBGrid1.Columns[8].Visible := false;
  
  if(Fax.Checked)then
    Form1.DBGrid1.Columns[9].Visible := true
  else
    Form1.DBGrid1.Columns[9].Visible := false;
 
  if(TaxRate.Checked)then
    Form1.DBGrid1.Columns[10].Visible := true
  else
    Form1.DBGrid1.Columns[10].Visible := false;
 
  if(Contact.Checked)then
    Form1.DBGrid1.Columns[11].Visible := true
  else
    Form1.DBGrid1.Columns[11].Visible := false;
 
  if(LastInvoiceD.Checked)then
    Form1.DBGrid1.Columns[12].Visible := true
  else
    Form1.DBGrid1.Columns[12].Visible := false;
  //------------------------------------------------
  CampoCliente.Post;
  CampoCliente.Close;
  i:=0;
  Form1.DBgrid1.Columns.Count;
  for i:= 0 to (Form1.DBgrid1.Columns.Count - 1) do
  begin
    Form1.Dbgrid1.Columns[i].Title.Color := clMoneyGreen;
    Form1.Dbgrid1.Columns[i].Color := clWindow;
    //  As duas linhas acima alteram a cor do titulo e a cor da coluna
  
    //Esta linha Salva a aparência do DBGrid para que ele possa ser carregado da próxima vez que for utilizado.
   Form1.DBgrid1.Columns.SaveToFile('DBGrid1.cfg');
end;
  
  Mostrei o exemplo como persistir com o mesmo dbgrid da ultima configuração agora basta usar a criatividade.
  É isso, espero ter ajudado!
 



Observação: por Alexsander Wilen Ferreira - alexsander.wilen@terra.com.br


Comentários Comentários
   Ordem:  
Comentários pertencem aos seus respectivos autores. Não somos responsáveis pelo seus conteúdos.


por: joao.schroeder : Dez 26, 2004 - 08:15
(Informações sobre o membro | Enviar uma mensagem)
Muito bom este código. É de bastante utilidade. Aí eu pensei em fazer isso com relatórios. Se isso é possível, seria bom se alguém fizesse um artigo explicando como se escolhe os campos para que o cliente escolha o que ele quer imprimir.


por: micheus : Abr 01, 2005 - 02:46
(Informações sobre o membro | Enviar uma mensagem) http://
Podemos economizar um pouco de digitação se nas seqüências como:
if (CustNo.Checked) then
Form1.DBGrid1.Columns[0].Visible := true
else
Form1.DBGrid1.Columns[0].Visible := false;

utilizarmos:
Form1.DBGrid1.Columns[0].Visible := CustNo.Checked;

[]s
  Edição 112

Revista ActiveDelphi

  50 Programas Fontes


  Produtos

Conheça Nossos Produtos

Copyright© 2001-2016 – Active Delphi – Todos os direitos reservados