Inverter a selção das linhas do dbgrid que estão selecionadas com multselect
{Para um DBGrid que está com linhas selecionadas (com Ctrl) através do "multiselect" (essa propriedade deve estar como TRUE), crie um botão (dei nome ao botão de "Inverte"), para inverter essa seleção, ou seja, quem está selecionado ficará desmarcado, e quem está desmarcado ficará selecionado.}
procedure TForm1.BtnInverteClick(Sender: TObject); begin
DBGrid1.DataSource.DataSet.First; {Para posicionar no 1º registro} While ( Not DBGrid1.DataSource.DataSet.Eof ) Do Begin
DBGrid1.ToggleRowSelection;
DBGrid1.DataSource.DataSet.Next; End; end;