Aquí tienes un código que puede servirte; En la sección de
ejemplos hay uno que trata sobre TStringGrid; Aunque es para temas de alineación, incluye una opción de copiar.
Algo así:
Código Delphi
[-]
var
i, j:Integer;
Str:String;
begin
Str := '';
for i := (StringGrid1.Selection.Top) to (StringGrid1.Selection.Bottom) do begin
if (i <> StringGrid1.Selection.Top) then begin
Str := Str + #13#10;
end;
for j := 0 to (StringGrid1.Rows[i].Count - 1) do begin
if (j <> 0) then begin
Str := Str + ';'; <<== Cambiar por chr(VK_TAB)
end;
Str := Str + StringGrid1.Rows[i].Strings[j];
end;
Clipboard.AsText := Str
end;
MessageDlg('El contenido de la/s celda/s se ha copiado al portapapeles de windows', mtInformation, [mbOK], 0);
Si haces el cambio marcado en rojo (usar TAB en lugar de
es casi lo que necesitas; La diferencia es que este en para un TStringGrid y tú lo necesitas para un DBGrid; Sólo cambia la forma de recorrer las filas seleccionadas.