Eis a função. procedure DBGridToClipBoard(DBGrid: TDBGrid; PastHeader: Boolean); var StrToCopy: string; Idx, IdxCol: Integer; BookMark, SavedBookMark: TBookMark; begin if DBGrid.SelectedRows.Count = 0 then Exit;
StrToCopy := ''; if yes = true then begin if PastHeader then begin StrToCopy := DBGrid.Columns[0].Title.Caption; for IdxCol := 1 to DBGrid.Columns.Count - 1 do StrToCopy := format('%s'#9'%s', [StrToCopy, DBGrid.Columns[IdxCol].Title.Caption]); StrToCopy := StrToCopy + #13#10; end; end; with DBGrid.DataSource.DataSet do begin //salva a posição atual no DBGrid SavedBookMark := GetBookmark; //evita movimentação no DBGrid DisableControls; for Idx := 0 to DBGrid.SelectedRows.Count - 1 do begin //posiciona na linha selecionada GotoBookMark(Pointer(DBGrid.SelectedRows[Idx])); StrToCopy := StrToCopy + DBGrid.Columns[0].Field.AsString; for IdxCol := 1 to DBGrid.Columns.Count - 1 do StrToCopy := Format('%s'#9'%s', [StrToCopy, DBGrid.Columns[IdxCol].Field.AsString]); StrToCopy := StrToCopy + #13#10; end; ClipBoard.Clear; ClipBoard.SetTextBuf(PAnsiChar(StrToCopy)); //Restauramos o posicionamento inicial do DBGrid GotoBookMark(SavedBookMark); FreeBookMark(SavedBookMark); //reabilitamos movimentação no DBGrid EnableControls; end; end; 2009/10/30 rzzanatta <rzzana...@yahoo.com.br> > > > Olá galera, eu queria saber se poderia selecionar os dados de um dbgrid e > dar Ctrl+C e colar num documento qualquer...como faço isso? > > > [As partes desta mensagem que não continham texto foram removidas]