DBGrid com multiselect

Delphi

25/01/2008

Amigos, estou com um problema, já pesquisei e não encontrei a resposta.

Num DBGrid com multiselect eu gostaria que, à medida que eu fosse selecionando os registros, os valores de uma coluna fossem sendo somados.
Seria algo como um evento que acontece quando seleciono um registro, mas acho que não há este evento. Há o oncellclick, mas não funciona da maneira que pretendo.

Se alguém puder me ajudar ficarei muito grato.

Obrigado.


Bicho_feio

Bicho_feio

Curtidas 0

Respostas

Marcosrocha

Marcosrocha

25/01/2008

Como se você tivesse OnChange no DBGrid certo? Onde você altera o valor, DBEdit? Se for pode tentar usar o OnChange dele.


GOSTEI 0
Edilcimar

Edilcimar

25/01/2008

Use isto para construir o que quer:
With DBGrid1.DataSource.DataSet do
Begin
For I := 0 to DBGrid1.SelectedRows.Count - 1 do
Begin
GotoBookMark(Pointer(DBGrid1.SelectedRows.Items[I]));
aqui faça os comandos que quiser (isto pode ser colocado por exemplo no onclick do dbgrid)
End
End;

Agora é só montar os cálculos


GOSTEI 0
Bicho_feio

Bicho_feio

25/01/2008

Amigos obrigado pela atenção,

Edilcimar, o seu código realmente funciona. O problema (sempre há um, não é?) é que não uso o DBGrid comum.
Eu uso um componente chamado SMDBGrid. Este componente permite colocar no Indicator um checkbox para selecionar múltiplos registros (o usuário aqui prefere marcar os checkbox do que segurar control).
Neste componente, se eu seguro control e vou marcando as linhas o seu código funciona beleza, mas se eu marcar os checkbox, ele seleciona os registros mas não dispara o oncellclick.

Se alguém conhecer este componente e puder me dar uma luz agradeço imensamente,

Enquanto isso, obrigado a todos pela disposição em ajudar.


GOSTEI 0
Farnetani

Farnetani

25/01/2008

Cara, to precisando de um componente que faça exatamente isto. Este componente é free? Tem como vc me mandar ele por email (farnetani@gmail.com). Vou precisar fazer isto que vc está precisando tb!

Valew!


GOSTEI 0
Farnetani

Farnetani

25/01/2008

Cara, baixei este componente...show de bola!

o q vc quer é super simples
basta rodar o dataset e ir checando a

propriedade:Selectedrows.currentrowselected


if dbgprin.SelectedRows.CurrentRowSelected then
ai vc soma...etc...


GOSTEI 0
Darkrme

Darkrme

25/01/2008

amigo.. nao sei se resolve seu problema...

mas vc pode usar o evento OnDataChange do DataSource q esta linkado ao ´DBGrid´...

isso se qnd o usuario selecionar um checkbox do ´DBGrid´, o datasource mudar de registro tb... se ele mudar acho q o evento OnDataChange do DS eh o mais apropriado...

Espero ajudar =)


GOSTEI 0
Bicho_feio

Bicho_feio

25/01/2008

Amigos, graças ao farnetani descobri qual era o problema.
Eu estava usando uma versão antiga do componente e, nesta versão, realmente não tinha o evento que eu precisava.
Foi só baixar a nova versão e, beleza, deu tudo certo.
Eu particularmente acho este componente bem prático. Ele tem diversas funcionalidades, é free, vem com código fonte e demo. Quem quiser experimentar pode baixar neste endereço: http://www.scalabium.com/smdbgrid.htm

No mais, agradeço a atenção e a paciência de todos,

Felicidades.


GOSTEI 0
Jonas

Jonas

25/01/2008

Amigos, graças ao farnetani descobri qual era o problema.
Eu estava usando uma versão antiga do componente e, nesta versão, realmente não tinha o evento que eu precisava.
Foi só baixar a nova versão e, beleza, deu tudo certo.
Eu particularmente acho este componente bem prático. Ele tem diversas funcionalidades, é free, vem com código fonte e demo. Quem quiser experimentar pode baixar neste endereço: http://www.scalabium.com/smdbgrid.htm

No mais, agradeço a atenção e a paciência de todos,

Felicidades.




Amigo nao consegui instalar os componentes e nao achei nada no site que explique como instalar,
Abro o Package e depois clico em instalar e aparece 68 erros na compilação
GOSTEI 0
POSTAR