Problema com DBGrid

Delphi

31/01/2006

Olá, estou com o seguinte problema:
Quando a propriedade RowSelect do Grid esta = a True e o numero de colunas é mto grande gerando barra de rolagem horizontal, o evento onTitleGrid não funciona corretamente qdo vou com a barra de rolagem pra direita mais pro final do grid e clico no título de alguma coluna.
procedure TForm1.DBGrid1TitleClick(Column: TColumn);
begin
   ShowMessage(IntToStr(Column.Index));
end;

Usando esse código, é retornado não a coluna em que cliquei no título mas sim uma do começo do grid.

Gostaria de saber se existe alguma maneira de retornar a coluna que realmente foi clicada.

Obrigado


Roswel

Roswel

Curtidas 0

Respostas

Aroldo Zanela

Aroldo Zanela

31/01/2006

Colega,

Não tenho experiência com o problema que você está passando, mas verificando na Clube Delphi - Edição 44 (´Segredos do DBgrid´), contatei que o pessoal usa Column.FieldName para identificar a coluna.
Faz um teste para ver se atende sua necessidade.


GOSTEI 0
Aroldo Zanela

Aroldo Zanela

31/01/2006

Colega,

Não tenho experiência com o problema que você está passando, mas verificando na Clube Delphi - Edição 44 (´Segredos do DBgrid´), contatei que o pessoal usa Column.FieldName para identificar a coluna.
Faz um teste para ver se atende sua necessidade.


GOSTEI 0
Martins

Martins

31/01/2006

Olá, estou com o seguinte problema: Quando a propriedade RowSelect do Grid esta = a True e o numero de colunas é mto grande gerando barra de rolagem horizontal, o evento onTitleGrid não funciona corretamente qdo vou com a barra de rolagem pra direita mais pro final do grid e clico no título de alguma coluna.
procedure TForm1.DBGrid1TitleClick(Column: TColumn);
begin
   ShowMessage(IntToStr(Column.Index));
end;
Usando esse código, é retornado não a coluna em que cliquei no título mas sim uma do começo do grid. Gostaria de saber se existe alguma maneira de retornar a coluna que realmente foi clicada. Obrigado


Bem. fiz um teste aqui com 15 colunas e funcionou perfeitamente, me foi mostrado o número das colunas q eu clico.

Igual seu código:
   ShowMessage(IntToStr(Column.Index));


Exibe os nomes das colunas assim
   ShowMessage(Column.DisplayName);


Boa sorte!!!


GOSTEI 0
Roswel

Roswel

31/01/2006

Ok Aroldo, vou verificar valew!!!

Martins, as opções do seu grid teriam de ser essas:
[dgTitles,dgColLines,dgRowLines,dgTabs,dgRowSelect,dgConfirmDelete,dgCancelOnExit]

e o grid tem que ficar com a barra de rolagem horizontal ...

pq eu re-testei e mesmo com ´Column.DisplayName´ num deu certo ... :cry:


GOSTEI 0
POSTAR