pegar registros selecionados em dbgrid

Delphi

17/09/2003

Pessoal,

Como faço para saber quais registros estão selecionados em uma dbgrid ?

Por exemplo: tenho uma grid que exibe: matricula, nome e idade de um cadastro de alunos. Nesta grid o usuario vai selecionar os alunos que farão parte de um determinado curso. Eu quero então pegar a somente a matricula dos alunos que foram selecionados na dbgrid pelo usuario para cadastrar em outra tabela. Alguem pode me ajudar ?


Rodrigo Costa

Rodrigo Costa

Curtidas 1

Respostas

Rodrigo Costa

Rodrigo Costa

17/09/2003

sobe


GOSTEI 0
4_olho

4_olho

17/09/2003

Obrigado pelo [b:0d6f1ac83b]sobe[/b:0d6f1ac83b].

Antes de mais nada é bom lembrar que dbGrid não permite multi-seleção, então tem de ser ´um por cada´.

No evento OnCellClick da dbgrid, coloque seu código, algo como :
que você pode substituir por
Table2matricula.Value:=Table1matricula.Value;



GOSTEI 0
Rodrigo Costa

Rodrigo Costa

17/09/2003

Prezado 4_Olho,

Valeu pela resposta. Mas estou com uma dúvida quanto a impossibilidade de multi-seleção num dbgrid comun. Afinal o objeto dbgrid possui uma propriedade chamada dgMultiSelect que quando habilitada permite selecionar mais de um registro por vez. Basta clicar sobre o registro desejado pressionando a tecla <Crtl>.


GOSTEI 0
Werlon Goulart

Werlon Goulart

17/09/2003

Claro q o dbGrid aceita MultiSelecao...

Basta ativar a propriedade no Options do DBGrid...
E varrer o DBGRid pra pegar as linhas q foram marcadas com CTRL e clique ou Shift e Clique do mouse....

Para Varer o DBGrid use :


Var Aux:=Integer;
Begin
With edGridFatura do begin
for Aux:= 0 to SelectedRows.Count-1 do begin
Datasource.Dataset.Bookmark:= SelectedRows[Aux];
...
...
...
...
end;
end;
end;


Mais detalhes procure o Help do Delphi... La tem um exemplo sobre isso...

Um Abraço
Werlon Goulart


GOSTEI 0
4_olho

4_olho

17/09/2003

:oops: Errei feio! :oops:

Obrigado a ambos. Olhando melhor as propriedades achei o MultiSelect.

[b:e820ff4f9f]Desculpem-me pela informação errada e obrigado pela resposta certa.[/b:e820ff4f9f]


GOSTEI 0
Rodrigo Costa

Rodrigo Costa

17/09/2003

Valeu Werlon Goulart,

Obrigado pela dica !!!!!!


4_olho não esquenta, errar é humano e errando que se aprende !


GOSTEI 0
POSTAR