拷贝DBGrid当前行

类别:Delphi 点击:0 评论:0 推荐:
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;

本文地址:http://com.8s8s.com/it/it4390.htm