Necesitamos un TMemo en nuestra aplicación, el cual estará invisible y será para pasar temporalemente el contenido del portapapeles, esto para luego pasar linea a linea este contenido a nuestro DBGrid.
procedure TfrmPpal.mnPegarClick(Sender: TObject);
var
i: Integer;
begin
if Clipboard.HasFormat(CF_TEXT) then //Verifica si el portapapeles tiene texto (no imagenes)
begin
mmClipboard.Clear; //Limpiamos nuestro TMemo
mmClipboard.PasteFromClipboard;
i := mmClipboard.Lines.Count - 1; //Establecemos i con las líneas que tiene el TMemo, si son 5 lineas, i vale 5
while i >= 0 do
begin
ADOTablaComp.Insert;
//Ahora vamos a pegar el contenido de la línea "i" en el DBGrid
ADOTablaComp.FieldByName('NombrePC').AsString := mmClipboard.Lines[i];
try
ADOTablaComp.Post; //intentamos hacer el post
except //este except es por si tienes indice en el campo a pegar y no aceptas duplicados
ShowMessage('El texto ' + mmClipboard.Lines[i] + ' ya está dado de alta');
ADOTablaComp.CancelUpdates; //esto elimina el dato que queremos pegar y está duplicado
end;//try
i := i - 1;
end; //while
end; //if Clipboard contiene texto
end;