Habilitar e Desabilitar o Evento AfterScroll, Como ?
Olá galera,
Tenho um form que tem na parte superior a parte mestre e abaixo num grid os detalhes.
a estrutura detalhe é composta de uma Query1, DataSourceDetalhe e DBGridDetalhe.
o mestre é um table1 ligado a um datasource1.
toda vez que mudo de registro no table1 a query1 é fechada, recebe o parametro da table1 e é aberta novamente.
o problema é que na Query1 eu tenho uma rotina no AfterScroll dela.
eu preciso que o afterscroll só seja executado qdo o usuário clicar no grid com o mouse e/ou mover as setas acima e abaixo.
tem que ser assim porque qdo eu navego na table1 eu sei em que registro da query1 eu tenho que ir. Faço isso através do Locate na query1. Aí se o usuário estiver dentro do GridDetalhe e navegar deve executar o AfterScroll;.
resumo, como habilitar e desabilitar o afterscroll? eu teria que saber se as setas estão sendo pressionadas e/ou se foi clicado com o mouse, certo? como?
alguem pode me ajudar?
valeu
Diogo.
Tenho um form que tem na parte superior a parte mestre e abaixo num grid os detalhes.
a estrutura detalhe é composta de uma Query1, DataSourceDetalhe e DBGridDetalhe.
o mestre é um table1 ligado a um datasource1.
toda vez que mudo de registro no table1 a query1 é fechada, recebe o parametro da table1 e é aberta novamente.
o problema é que na Query1 eu tenho uma rotina no AfterScroll dela.
eu preciso que o afterscroll só seja executado qdo o usuário clicar no grid com o mouse e/ou mover as setas acima e abaixo.
tem que ser assim porque qdo eu navego na table1 eu sei em que registro da query1 eu tenho que ir. Faço isso através do Locate na query1. Aí se o usuário estiver dentro do GridDetalhe e navegar deve executar o AfterScroll;.
resumo, como habilitar e desabilitar o afterscroll? eu teria que saber se as setas estão sendo pressionadas e/ou se foi clicado com o mouse, certo? como?
alguem pode me ajudar?
valeu
Diogo.
Diogoalles
Curtidas 0
Respostas
Marco Salles
18/05/2005
Pode ser que o fato de inibir e habilitar o evento , não resolva o seu problema.. Mas o fato é que para desconectar o evento escreva o código, na Posição que lhe for conveniente
:arrow: e para habilitar
table1.AfterScroll:=Nil
:arrow: e para habilitar
table1.AfterScroll:=Table1AfterScroll;
GOSTEI 0
Diogoalles
18/05/2005
Ok Marco.. blz.. gostei da idéia.
mesmo assim para habilitar eu preciso saber se foi clicado com o mouse no grid e/ou se as setas do teclado foram pressionadas.
como poderia fazer ?
abraço
Diogo
mesmo assim para habilitar eu preciso saber se foi clicado com o mouse no grid e/ou se as setas do teclado foram pressionadas.
como poderia fazer ?
abraço
Diogo
GOSTEI 0
Marco Salles
18/05/2005
mesmo assim para habilitar eu preciso saber se foi clicado com o mouse no grid e/ou se as setas do teclado foram pressionadas.
Para as setas eu nun vejo problema nenhum , ja que exite tratamento, com os evento da Grid( OnMouseKeyDown , OnMouseKeyPress etc...)
Para o Click Do Mouse.. Ai :arrow:
:arrow: Quando se clica na Grid o evento ONDBGrid1CellClick(Column: TColumn);
é disparado... Mas antes dele ocorre o evento OnTableBeforeScroll e OnTableAfterScroll
:arrow: Quando se clica na Barra de rolagem da Grid , o EventoDBGrid1CellClick(Column: TColumn); Não é disparado.. Mas os evento OnTableBeforeScrooll e o Evento OnTableAfterScrrol é disparado
Não sei se lhe vais ser Util esta Informação , mas o Evento OnTableBeforeScrrol é disparado antes Do Evento OnTableAfterScrroll em qualquer uma das situações acima
GOSTEI 0