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.