Array
(
)

Como manter uma coluna fixa no DBGrid?

Dpbraz
   - 10 ago 2004

Olá pessoal!

Como eu faço para manter uma coluna fixa no DBGrid?

Obrigado
Daniel :D


Vinicius2k
   - 10 ago 2004

Colega,

Já vi e testei este código :
#Código

type
THackDBGrid = class(TDBGrid);

procedure TForm1.FormShow(Sender: TObject);
begin
THackDBGrid(DBGrid1).FixedCols:= 2;
end;


Mas me causa um efeito um tanto estranho : a coluna fixa, mas fica duplicada e sem título quando é rolada...
É a única ´pseudo´ solução que conheço para fixar colunas em uma DBGrid...

T+


Dpbraz
   - 11 ago 2004

Ok amigo,

obrigado pela dica.

Eu também já havia tentado este código e aconteceu a mesma coisa entre outros problemas.

Eu estava pensando em uma forma para fazer isso mas eu precisaria saber como em faço para pegar quais as colunas estão visiveis na tela do formulário.

Ex.: Se meu grid tiver 100 colunas, óbvio que eu não vou conseguir visualizar todas juntas na tela. Então eu queria pegar somente as que estão aparecendo na tela. Será que você saberia como fazer isso?

Obrigado pela ajuda
Daniel :D


Citação:
Colega,

Já vi e testei este código :
#Código

type
THackDBGrid = class(TDBGrid);

procedure TForm1.FormShow(Sender: TObject);
begin
THackDBGrid(DBGrid1).FixedCols:= 2;
end;


Mas me causa um efeito um tanto estranho : a coluna fixa, mas fica duplicada e sem título quando é rolada...
É a única ´pseudo´ solução que conheço para fixar colunas em uma DBGrid...

T+


Vinicius2k
   - 11 ago 2004

Daniel,

Nunca tentei fazer nada parecido e assim de ´bate e pronto´ não teria solução... Posso pensar e testar e voltar a postar neste tópico se tiver algum sucesso, OK?

T+


Cabelo
   - 11 ago 2004

Colega..

Tente gerar um novo componente que descende de um TDBGrid..

Adicione a propriedade FixedCols tipo integer;

utilize a função do código que o Vinicius passou, e compile o componente e instale ele..

use o componente, colocando o número de colunas que vc quer fixar..

No evento onDrawCollumnCell coleque um abort, isso dentro da unit do componente..

Espero ter ajudado..

Cabelo


Edivaldo_ap
   - 19 out 2006

Cara seguinte é bem simples

Clica no DBGrid e vai em Options - e deixa a propriedade dgCollumnResize em FALSE a coluna não poderá ser redimensionada.

Espero ter ajudado.