Copiar todos os registros de uma tabela para o Clipboard no Delphi

Inclua na seção uses:Clipbrd

Problema:

Gostaria de colocar em minha aplicação o recurso de copiar 
todos os registros de uma tabela para a área de transferência,
permitindo ao usuário colar estes dados em outro 
aplicativo (ex: MS-Word). Isto é possível?



Solução:

Sim. Siga os passos abaixo:

- Crie seu form normalmente, colocando DataSource, Table e
  demais componentes;
- Coloque um botão e no evento OnClick deste botão coloque
  o código abaixo:

procedure TForm1.Button1Click(Sender: TObject);
const
  SeparadorCampoValor = ': ';
  SeparadorCampo      = #13#10; { Quebra de linha }
  SeparadorRegistro   = '===========' + #13#10;
var
  S: string;
  I: integer;
begin
  S := '';
  Table1.First;
  while not Table1.EOF do begin
    for I := 0 to Table1.FieldCount -1 do
      S := S + Table1.Fields[I].FieldName + SeparadorCampoValor +
               Table1.Fields[I].AsString + SeparadorCampo;
    S := S + SeparadorRegistro;
    Table1.Next;
  end;
  Clipboard.AsText := S;
end;

Para testar:
- Execute este aplicativo;
- Clique no botão;
- Vá em outro aplicativo (ex: MS-Word) e mande colar (Ctrl+V).

Observações

CUIDADO! Não use este recurso com tabelas grandes, pois poderá usar memória demasiadamente. No teste que fiz, o tamanho da string S atingiu 20K e funcionou normalmente. Mas isto pode variar de uma máquina para outra.