Problema com DBGrid

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

Respostas

31/01/2006

Aroldo Zanela

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.


Responder Citar

31/01/2006

Aroldo Zanela

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.


Responder Citar

31/01/2006

Martins

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!!!


Responder Citar

01/02/2006

Roswel

Ok Aroldo, vou verificar valew!!!

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

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:


Responder Citar