Como manter uma coluna fixa no DBGrid?
Olá pessoal!
Como eu faço para manter uma coluna fixa no DBGrid?
Obrigado
Daniel :D
Como eu faço para manter uma coluna fixa no DBGrid?
Obrigado
Daniel :D
Dpbraz
Curtidas 0
Respostas
Vinicius2k
10/08/2004
Colega,
Já vi e testei este código :
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+
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+
GOSTEI 0
Dpbraz
10/08/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
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 :
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+
type THackDBGrid = class(TDBGrid); procedure TForm1.FormShow(Sender: TObject); begin THackDBGrid(DBGrid1).FixedCols:= 2; end;
GOSTEI 0
Vinicius2k
10/08/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+
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+
GOSTEI 0
Cabelo
10/08/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
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
GOSTEI 0
Edivaldo_ap
10/08/2004
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.
Clica no DBGrid e vai em Options - e deixa a propriedade dgCollumnResize em FALSE a coluna não poderá ser redimensionada.
Espero ter ajudado.
GOSTEI 0