Array
(
)

Problema com DBGrid

Roswel
   - 31 jan 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.
#Código

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


Aroldo Zanela
   - 31 jan 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.


Aroldo Zanela
   - 31 jan 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.


Martins
   - 31 jan 2006


Citação:
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.
#Código

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:
#Código

ShowMessage(IntToStr(Column.Index));


Exibe os nomes das colunas assim
#Código

ShowMessage(Column.DisplayName);


Boa sorte!!!


Roswel
   - 01 fev 2006

Ok Aroldo, vou verificar valew!!!

Martins, as opções do seu grid teriam de ser essas:
#Código

[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 ...