Sem dúvida um dos componentes mais utilizados no desenvolvimento de aplicações com Delphi é o DBGrid.
Veremos nesta dica como utilizar a opção de MultiSelect do componente. Habilitando essa opção, o usuário poderá selecionar mais de um registro (ao mesmo tempo) dentro do grid.
Adicione um DBGrid e altere a propriedade Options> dg-MultiSelect para True. Com isso o usuário poderá selecionar mais de uma linha se mantiver pressionada a tecla CTRL ou SHIFT. Acesse um banco de dados qualquer e mostre no DBGrid registros de alguma tabela desse banco. Adicione um botão ao formulário e digite o código em seu evento OnClick.
Listagem 1: Evento onClick do botão para mostrar os dados selecionados
procedure TFrmPrincipal.btnMostrarSelecionadosClick(Sender: TObject);
var
i: Integer;
aux: string;
begin
for i := 0 to DBGrid1.SelectedRows.Count - 1 do
begin
ClientDataSet1.GotoBookmark(pointer(DBGrid1.SelectedRows.Items[i]));
aux := aux + IntToStr(ClientDataSet1.RecNo) + ' - ' +
ClientDataSet1.FieldByName('CUSTOMER').AsString + #13;
end;
ShowMessage(‘Linhas selecionadas: ‘ + #13 + aux);
end;
No código anterior utilizamos a propriedade SelectedRows do DBGrid para varrer todos os registros selecionados pelo usuário. Utilizamos o método GotoBookmark do ClientDataSet para posicionar o cursor no registro corrente selecionado.