10/08/2004

Como manter uma coluna fixa no DBGrid?

Olá pessoal!

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

Obrigado
Daniel :D


Dpbraz

Respostas

10/08/2004

Vinicius2k

Colega,

Já vi e testei este 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+


Responder Citar

11/08/2004

Dpbraz

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

Colega, Já vi e testei este 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+



Responder Citar

11/08/2004

Vinicius2k

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+


Responder Citar

11/08/2004

Cabelo

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


Responder Citar

19/10/2006

Edivaldo_ap

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.


Responder Citar