Ir ao topo

Tecnobyte

Logomarca da Tecnobyte
Contato por WhatsApp

WhatsApp

(69) 3421-6756

Contato por Telefone

(69) 3421-6756

(69) 3421-6757

Enviar mensagem

Enviar

mensagem

Contato por Facebook

Facebook

Contato por Skype

Skype

Atendimento de segunda a sexta, das 08h00 às 19h00 (horário de Brasília).

Delphi - Banco de Dados

Como copiar os registros de uma tabela para a área de transferência (clipboard)?

Banner

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 como Word ou Excel.

Solução:

Siga os passos abaixo:

  • Inclua na seção uses: Clipbrd
  • 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
    begin
      S := S + 
        Table1.Fields[I].FieldName + SeparadorCampoValor +
        Table1.Fields[I].AsString + SeparadorCampo;
    end;
    S := S + SeparadorRegistro;
    Table1.Next;
  end;
  Clipboard.AsText := S;
end;

Para testar:

  • Execute este aplicativo.
  • Clique no botão.
  • Vá em outro aplicativo e mande colar (Ctrl+V).

Observações

  • Não use este recurso com tabelas grandes, pois poderá usar memória demasiadamente. No teste que fiz o tamanho da string S atingiu 20 KB e funcionou normalmente, mas isto pode variar de uma máquina para outra.
  • Neste exemplo a tabela está sendo representada por um objeto do tipo TTable, mas poderia ser um objeto qualquer herdado de TDataSet, tal como ClientDataSet, SQLDataSet, SQLQuery, etc.

O conteúdo desta página pode ajudar alguém? Compartilhe!