edson_hh 0 Denunciar post Postado Março 21, 2007 Tenho uma grid.Essa grid possui um evento OnCellClick, q cada vez q eu clico(em uma coluna especifica), eh updatado no banco e o valor muda de sim pra nao ou vivce versa.e um OnDrawColumnCell q coloquei uma figura (um tick) Oq eu preciso eh o seguinte.. vou ter q alterar e colocar pra virar numeros. ou seja...qdo eu clico do lado direito do mouse, vai somando 1.. e qdo clico do lado esquerdo, subtrai 1.mas onde eu faço isso??o certo seria no OnCellClick, verificar qual botao do mouse eu estou apertando.. mas ele noa aceita o (key=VK_LBUTTON) ... entao teria q ser no OnKeyDown. mas como no OnKeyDown eu vo chama um evento de uma coluna da grid???se eu colocar tudo no OnKeyDown noa funcionaa duvida eh a seguinte:Onde eu faço pra uma coluna de uma grid detectar se estou clicando do lado direito ou esquerdo do mouse. Compartilhar este post Link para o post Compartilhar em outros sites
Hugo Slepicka 0 Denunciar post Postado Março 21, 2007 Cara, você pode fazer uma procedure... soma, e uma subtrai...no OnKeyPress.. você verifica se é o Botão Direito ou Esquerdo...e se a Coluna Ativa do Grid é a desejada...e pronto! Compartilhar este post Link para o post Compartilhar em outros sites
edson_hh 0 Denunciar post Postado Março 21, 2007 por favor.. e como eu faço isso??eu faço assim e nao funciona if (key = VK_RBUTTON) thenele diz q sao tipos incompativeisse eu colocar no onkeydown, ele compila, mas qdo eu clico na grid, nao passa naquele lugar----------agora q to vendo.. ele nao ta conseguindo detectar q eu estou clicando...eu acho q nao eh key=, deve ser alguma outra coisa pra ver se eh o mouse Compartilhar este post Link para o post Compartilhar em outros sites
marcio.theis 3 Denunciar post Postado Março 21, 2007 Tente usar a propriedade OnMouseUp, fazendo algo do tipo: procedure TForm1.DBGrid1MouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);begin//Botão da direitaif Button = mbRight then showmessage('Click direito')else //Botão da esquerda if Button = mbLeft then showmessage('Click esquerda') else //Botão do centro showmessage('Click centro')end; No caso ele vai ser executado depois que selecionou uma célula da linha, sendo que pode fazer um função, procedimento, que incrementa ou decrementa como você deseja, não sei exatamente como deseja fazer, mas poderia fazer algo do tipo: procedure TForm1.DBGrid1MouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);beginif not (Table1.State = dsEdit) then Table1.Edit;if Button = mbRight then //Botão da direita Table1CAMPO.Value:=Table1CAMPO.Value + 1else if Button = mbLeft then //Botão da esquerda Table1CAMPO.Value:=Table1CAMPO.Value - 1;Table1.Post;end; Compartilhar este post Link para o post Compartilhar em outros sites
Hugo Slepicka 0 Denunciar post Postado Março 21, 2007 procedure TForm1.DBGrid1MouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);begin if (Button = mbRight) And (DbGrid1.SelectedIndex = 0) then //Botão da direita e primeira coluna Begin //Soma 1 End; if (Button = mbLeft) And (DbGrid1.SelectedIndex = 0) then //Botão da Esquerda e primeira coluna Begin //Subtrai 1 End;end; Compartilhar este post Link para o post Compartilhar em outros sites
edson_hh 0 Denunciar post Postado Março 21, 2007 funcionou!!! muito obrigado pessoal! http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif Compartilhar este post Link para o post Compartilhar em outros sites
marcio.theis 3 Denunciar post Postado Março 21, 2007 beleza :D Compartilhar este post Link para o post Compartilhar em outros sites
Hugo Slepicka 0 Denunciar post Postado Março 22, 2007 Opa, legal!!! http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif Compartilhar este post Link para o post Compartilhar em outros sites