Fórum Habilitar e Desabilitar o Evento AfterScroll, Como ? #282134

18/05/2005

0

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.


Diogoalles

Diogoalles

Responder

Posts

18/05/2005

Marco Salles

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

table1.AfterScroll:=Nil


:arrow: e para habilitar

table1.AfterScroll:=Table1AfterScroll;



Responder

Gostei + 0

19/05/2005

Diogoalles

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


Responder

Gostei + 0

19/05/2005

Marco Salles

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



Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar