Eu criei um formulario com um CheckListBox onde eu carrego todos os campos
do grid nele assim:

  for I := 0 to Grid.Columns.Count - 1 do
  begin
    CheckListBox.Items.Add(Grid.Columns.Items[I].Title.Caption);
    CheckListBox.Checked[I] := (Grid.Columns.Items[I].Visible = True);
  end;

e pra ocultar ou mostrar as colunas faço assim:

  for I := 0 to CheckListBox.Items.Count - 1 do
  begin
    for I2 := 0 to Grid.Columns.Count - 1 do
    begin
      if CheckListBox.Items.Strings[I] = Grid.Columns.Items[I2].Title.Caption
then
      begin
        Grid.Columns.Items[I2].Visible := (CheckListBox.Checked[viInt] =
True);
        Break;
      end;
    end;
  end;

só isso!!!

Em 21/12/05, Eduardo Silva (r) <[EMAIL PROTECTED]> escreveu:
>
>  Amigo, como vc faz para deixar a coluna no grid visible ou não. Tipo o
> usuário excluiu uma coluna (em tempo de execução é claro) e agora quer a
> coluna de volta, como vc faz isso?
>   -----Mensagem original-----
>   De: delphi-br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED]
> nome de Eduardo Suruagy
>   Enviada em: quarta-feira, 21 de dezembro de 2005 08:51
>   Para: delphi-br@yahoogrupos.com.br
>   Assunto: Re: [delphi-br] DBGrid
>
>
>   Bem, muito obrigado pelas respostas de todos, mas, vou definir o q
> realmente
>   quero.
>   No meu sistema qd eu tiver qualquer DBGrid eu posso alterar o tamanho
> das
>   colunas, a posição das mesmas, a descrição, posso deixar a coluna
> visivel
> ou
>   não. Tudo isso o proprio DBGrid salva em um arquivo *.cfg atravez da
> função:
>
>     //Esta linha Salva a aparência do DBGrid para que ele possa ser
> carregado
>   da próxima vez que for utilizado.
>     for i := 0 to (Grid.Columns.Count - 1) do
>       Grid.Columns.SaveToFile('C:\Nome_DBGrid_'+CodUsuario);
>
>   Assim eu posso guardar toda a configuração do dbgrid na pasta q eu
> quiser
>   juntamente com o codigo do usuario,
>   na hora de carregar as configurações fica mais facil dessa forma do q
>   guardar as configurações no banco de dados, eu
>   já guardei todas essas configurações no banco mas da muito trabalho e
> demora
>   um pouco p/ reajustar o dbgrid todo.
>   O q eu queria mesmo era o seguinte: Eu gerava o arquivo *.cfg do dbgrid
> e
>   logo em seguida salvava no banco SQlServer 2000 qd o usuário fosse
> entrar
> no
>   sistema em qualquer maquina eu salvava todos os arquivo *.cfg que fossem
>   dele na maquina local (estou usando ADO+DataSetProvider+ClientDataSet),
> eu
>   já fiz esse teste, mas, qd eu ia carregar o arquivo do banco para um
>   diretorio e carregava o dbgrid era como se o arquivo *.cfg perdesse sua
>   configuração e desse erro na hora de carrega-lo.
>   Pra carregar o arquivo no dbgrdi faço isso:
>
>     if FileExists('C:\Nome_DBGrid_'+CodUsuario) then
>       Grid.Columns.LoadFromFile('C:\Nome_DBGrid_'+CodUsuario);
>
>   A estrutura do banco seria a seguinte:
>
>   Cod_Usuario Integer;
>   Nome_DBGrid Varchar(60);
>   Configuracoes_DBGrid ????? --> Aqui eu guardaria as configuracoes do
> dbgrid
>   no caso o arquivo *.cfg
>
>   Mas isso não sei como fazer sem perder e danificar a estrutra do
> arquivo.
> Ja
>   fiz os teste mudando a resolução do video mas não fica errado no dbgrid
> fica
>   tudo certo do jeito q eu configurei as colunas e tbm nao da pra salvar
> só
> o
>   caminho pq vão ter situações de eu usar o sistema pela internet....
> Obrigado
>   pela atenção de todos e peço mais uma vez a ajuda de vcs!!!
>
>
> ============================================================================
> =============
>
>   Em 21/12/05, Celso Lorenzetti - GMail <[EMAIL PROTECTED]>
> escreveu:
>   >
>   >  Olá Eduardo,
>   >
>   > para salvar as definições do DbGrid.Columns no banco de dados,
>   >
>   > vc deve utilizar um campo do tipo binário (BLOB), depende de qual
> banco
> de
>   > dados vc está utilizando.
>   >
>   > Eu tenho isso no postgresql.
>   >
>   > T+
>   >
>   > ----- Original Message -----
>   >   From: Pablo Augusto
>   >   To: delphi-br@yahoogrupos.com.br
>   >   Sent: Tuesday, December 20, 2005 9:53 AM
>   >   Subject: Re: [delphi-br] DBGrid
>   >
>   >
>   >   voce pode salval apenas o caminho dos arquivos .cfg no banco de
> dados
>   > com o
>   >   tipo de campo varchar.
>   >
>   >
>
>
> >
> --------------------------------------------------------------------------
> ------------------
>   >                                        *tbl_config*
>   >
>
>
> >
> --------------------------------------------------------------------------
> ------------------
>   >        id          |    path
>   >
>
>
> >
> --------------------------------------------------------------------------
> ------------------
>   >       1            |   c:\programa\data\cfg1.cfg
>   >
>
>
> >
> --------------------------------------------------------------------------
> ------------------
>   >       2            |   c:\programa\data\cfg2.cfg
>   >
>
>
> >
> --------------------------------------------------------------------------
> ------------------
>   >       3            |  c:\programa\data\cfg3.cfg
>   >
>
>
> >
> --------------------------------------------------------------------------
> ------------------
>   >
>   >   dai você pode consultar o caminho e buscar ele no diretório
> apropriado.
>   >
>   >
>   >   Você pode tambem ao envés de criar o .cfg colocar os dados que
> seriam
>   >   contidos nesses arquivos em uma tabela no seu banco de dados ...
>   >
>   >   existem várias possibilidades, você tem de ver a que melhor se
> adapta
> o
>   > seu
>   >   caso.
>   >
>   >
>   >
>   >
>   >
>   >
>   >   Em 20/12/05, Eduardo Suruagy <[EMAIL PROTECTED]> escreveu:
>   >   >
>   >   > Estou usando SQlServer+ ADO + ClientDataSet
>   >   > Minha duvida é a seguinte:
>   >   > Eu guardo as configurações dos DbGrids em arquivos *.cfg exemplo:
>   >   > nome_dbgrid_codusuario.cfg, qd os usuários entram em algum
> formulario
>   > eu
>   >   > carrego as configurações do dbgrid mas eu queria q os arquivos
> *.cfg
>   >   > ficassem guardados no banco de dados cada arquivo seria um
> registro
>   >   > diferente, mas, não sei como fazer nem qual o tipo de campo que
> devo
>   > usar
>   >   > para esse tipo de arquivo... Porfavor me ajudem!! Obrigado!!!
>   >   >
>   >   >
>   >   > [As partes desta mensagem que não continham texto foram removidas]
>   >   >
>   >   >
>   >   >
>   >   > --
>   >   > <<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>>
>   >   >
>   >   >
>   >   >
>   >   >
>   >   >
>   >   >   *Yahoo! Grupos, um serviço oferecido por:*   PUBLICIDADE
>   >   >
>   >   > <
>   >
>
> http://br.rd.yahoo.com/SIG=12fgd8p9a/M=386470.7632849.8508174.2369893/D=brcl
>
> ubs/S=2137111264:HM/Y=BR/EXP=1135088531/A=3135788/R=2/id=noscript/SIG=12c39t
> rgo/*
> http://ad.br.doubleclick.net/clk;22846485;12120066;a?http://www.hoteis.
> com
>   > >
>   >   > ------------------------------
>   >   > *Links do Yahoo! Grupos*
>   >   >
>   >   >    - Para visitar o site do seu grupo na web, acesse:
>   >   >    http://br.groups.yahoo.com/group/delphi-br/
>   >   >
>   >   >    - Para sair deste grupo, envie um e-mail para:
>   >   >    [EMAIL PROTECTED]<
>   > [EMAIL PROTECTED]>
>   >   >
>   >   >    - O uso que você faz do Yahoo! Grupos está sujeito aos Termos
> do
>   >   >    Serviço do Yahoo! <http://br.yahoo.com/info/utos.html>.
>   >   >
>   >   >
>   >
>   >
>   >   [As partes desta mensagem que não continham texto foram removidas]
>   >
>   >
>   >
>   >
>   >
>   >
>   >   --
>   >   <<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>>
>   >
>   >
>   >
>   >
>   >
>   >         Yahoo! Grupos, um serviço oferecido por:
>   >               PUBLICIDADE
>   >
>   >
>   >
>   >
>   >
>
>
> >
> --------------------------------------------------------------------------
> ----
>   >   Links do Yahoo! Grupos
>   >
>   >     a.. Para visitar o site do seu grupo na web, acesse:
>   >     http://br.groups.yahoo.com/group/delphi-br/
>   >
>   >     b.. Para sair deste grupo, envie um e-mail para:
>   >     [EMAIL PROTECTED]
>   >
>   >     c.. O uso que você faz do Yahoo! Grupos está sujeito aos Termos do
>   > Serviço do Yahoo!.
>   >
>   >
>   >
>   > [As partes desta mensagem que não continham texto foram removidas]
>   >
>   >
>   >
>   >  --
>   > <<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>>
>   >
>   >
>   >
>   >
>   >
>   >  *Yahoo! Grupos, um serviço oferecido por:*  PUBLICIDADE
>   >
> <
> http://br.rd.yahoo.com/SIG=12fuomtsa/M=386470.7632849.8508174.2369893/D=brc
>
> lubs/S=2137111264:HM/Y=BR/EXP=1135169653/A=3135788/R=2/id=noscript/SIG=12c39
> trgo/*
> http://ad.br.doubleclick.net/clk;22846485;12120066;a?http://www.hoteis
> .com>
>   > ------------------------------
>   > *Links do Yahoo! Grupos*
>   >
>   >    - Para visitar o site do seu grupo na web, acesse:
>   >    http://br.groups.yahoo.com/group/delphi-br/
>   >
>   >    - Para sair deste grupo, envie um e-mail para:
>   >
> [EMAIL PROTECTED]<
> [EMAIL PROTECTED]
> om.br?subject=Unsubscribe>
>   >
>   >    - O uso que você faz do Yahoo! Grupos está sujeito aos Termos do
>   >    Serviço do Yahoo! <http://br.yahoo.com/info/utos.html>.
>   >
>   >
>
>
>   [As partes desta mensagem que não continham texto foram removidas]
>
>
>
>   --
>   <<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>>
>
>
>
>
>
>         Yahoo! Grupos, um serviço oferecido por:
>               PUBLICIDADE
>
>
>
>
>
> ----------------------------------------------------------------------------
> --
>   Links do Yahoo! Grupos
>
>     a.. Para visitar o site do seu grupo na web, acesse:
>     http://br.groups.yahoo.com/group/delphi-br/
>
>     b.. Para sair deste grupo, envie um e-mail para:
>     [EMAIL PROTECTED]
>
>     c.. O uso que você faz do Yahoo! Grupos está sujeito aos Termos do
> Serviço do Yahoo!.
>
>
>
>   __________ NOD32 1.1331 (20051220) Information __________
>
>   This message was checked by NOD32 antivirus system.
>   http://www.nod32.com
>
>
> [As partes desta mensagem que não continham texto foram removidas]
>
>
>
>  --
> <<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>>
>
>
>
>
>
>  *Yahoo! Grupos, um serviço oferecido por:*  PUBLICIDADE
> <http://br.rd.yahoo.com/SIG=12fe9h0uh/M=386470.7632849.8508174.2369893/D=brclubs/S=2137111264:HM/Y=BR/EXP=1135173783/A=3135788/R=2/id=noscript/SIG=12c39trgo/*http://ad.br.doubleclick.net/clk;22846485;12120066;a?http://www.hoteis.com>
> ------------------------------
> *Links do Yahoo! Grupos*
>
>    - Para visitar o site do seu grupo na web, acesse:
>    http://br.groups.yahoo.com/group/delphi-br/
>
>    - Para sair deste grupo, envie um e-mail para:
>    [EMAIL PROTECTED]<[EMAIL PROTECTED]>
>
>    - O uso que você faz do Yahoo! Grupos está sujeito aos Termos do
>    Serviço do Yahoo! <http://br.yahoo.com/info/utos.html>.
>
>


[As partes desta mensagem que não continham texto foram removidas]



-- 
<<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>>

<*> Para ver as mensagens antigas, acesse:
    http://br.groups.yahoo.com/group/delphi-br/messages

<*> Para falar com o moderador, envie um e-mail para:
    [EMAIL PROTECTED]
 
Links do Yahoo! Grupos

<*> Para visitar o site do seu grupo na web, acesse:
    http://br.groups.yahoo.com/group/delphi-br/

<*> Para sair deste grupo, envie um e-mail para:
    [EMAIL PROTECTED]

<*> O uso que você faz do Yahoo! Grupos está sujeito aos:
    http://br.yahoo.com/info/utos.html

 



Responder a