Fórum DBGrid e Cliques #519365
10/05/2015
0
Povo Delphiano,
Esse problema já nos acompanha a um bom tempo. Sei que deve ter uma forma de resolver o problema sem precisar usar componentes de terceiros.
Bom, é o seguinte:
Tenho um dbgrid com alguns campos de uma tabela qualquer. Quando clico em alguma célula do grid (registro), executo uma outra query buscando outros dados e exibo em outro grid mais abaixo. A título de exemplo, vamos supor que o dbgrid principal mostre uma tabela de clientes e o dbgrid secundário as vendas desse cliente. Quando eu clico em um cliente no dbgrid, ele executa uma query e me mostra no segundo dbgrid as vendas desse cliente.
O problema é que tenho um menu popup atrelado a esse grid principal, onde apresento algumas opções ao usuário. E quando eu clico com o botão direito num registro qualquer do dbgrid de clientes, simplesmente o programa abre o popup com as opções, porém com o cliente errado. Se o foco tiver no primeiro cliente por exemplo e eu clico com o botão direito no cliente número 3, a query não é executada mostrando as vendas do cliente 3, visto que o foco ainda continua no cliente 1.
Minha dúvida: como contornar esse pequeno problema?
Grato por qualquer ajuda que possa dar alguma luz!
Esse problema já nos acompanha a um bom tempo. Sei que deve ter uma forma de resolver o problema sem precisar usar componentes de terceiros.
Bom, é o seguinte:
Tenho um dbgrid com alguns campos de uma tabela qualquer. Quando clico em alguma célula do grid (registro), executo uma outra query buscando outros dados e exibo em outro grid mais abaixo. A título de exemplo, vamos supor que o dbgrid principal mostre uma tabela de clientes e o dbgrid secundário as vendas desse cliente. Quando eu clico em um cliente no dbgrid, ele executa uma query e me mostra no segundo dbgrid as vendas desse cliente.
O problema é que tenho um menu popup atrelado a esse grid principal, onde apresento algumas opções ao usuário. E quando eu clico com o botão direito num registro qualquer do dbgrid de clientes, simplesmente o programa abre o popup com as opções, porém com o cliente errado. Se o foco tiver no primeiro cliente por exemplo e eu clico com o botão direito no cliente número 3, a query não é executada mostrando as vendas do cliente 3, visto que o foco ainda continua no cliente 1.
Minha dúvida: como contornar esse pequeno problema?
Grato por qualquer ajuda que possa dar alguma luz!
Adilson Júnior
Curtir tópico
+ 0
Responder
Posts
13/05/2015
Mateus Carvalho
Adilson, tecnicamente, o sistema vai executar todos os comandos na linha que estiver o foco. o que você pode fazer, é tentar simular um clique com o botão direito antes de abrir o popup.
http://www.planetadelphi.com.br/dica/70/clicando-com-o-mouse-(simulando-um-clique)
http://www.planetadelphi.com.br/dica/70/clicando-com-o-mouse-(simulando-um-clique)
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)