PRocedure CopyCurrentDBLine(DBGrid: TDBGrid); var i: Integer; Line: String; begin for i := 0 to DBGrid.Columns.Count - 1 do begin if Assigned(DBGrid.Columns.Grid.Fields[i]) then if Line = '' then Line := DBGrid.Columns.Grid.Fields[i].Text else Line := Line + ' ' + DBGrid.Columns.Grid.Fields[i].Text; end; Clipboard.SetTextBuf(pchar(Line)); end; //感谢深思提供技术支持:)
procedure CopyDBData(DBGrid: TDBGrid); const CRLF = #13#10; var i: Integer; Lines: String; BookMark: Pointer; begin BookMark := DBGrid.DataSource.DataSet.GetBookmark; DBGrid.DataSource.DataSet.First;
while not DBGrid.DataSource.DataSet.Eof do begin for i := 0 to DBGrid.Columns.Count - 1 do begin if Assigned(DBGrid.Columns.Grid.Fields[i]) then if Lines = '' then Lines := DBGrid.Columns.Grid.Fields[i].Text else if i = 0 then Lines := Lines + DBGrid.Columns.Grid.Fields[i].Text else Lines := Lines + ' ' + DBGrid.Columns.Grid.Fields[i].Text; end; Lines := Lines + CRLF; DBGrid.DataSource.DataSet.Next; end; ClipBoard.SetTextBuf(PChar(Lines)); DBGrid.DataSource.DataSet.GotoBookmark(BookMark); end;