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.