Problema com DBGrid
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.
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
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
Curtidas 0
Respostas
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.
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
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.
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
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.
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
procedure TForm1.DBGrid1TitleClick(Column: TColumn); begin ShowMessage(IntToStr(Column.Index)); end;
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
31/01/2006
Ok Aroldo, vou verificar valew!!!
Martins, as opções do seu grid teriam de ser essas:
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:
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