| 首页 | 电脑常识 | 程序设计 | 操作系统 | 语法 | 病毒安全 | 软件教程 | 硬件 | 数据库 | 多媒体 | 认证 | 下载 | 
首页>>程序设计 >>综合
TStringGrid多选的复制与拷贝

TStringGrid多选的复制与拷贝

电脑学习网,xuef.com,最全最新最权威的电脑知识网站.
免费计算机学习教程,电脑入门指南.

uses Clipbrd;

function StringGridSelectText(mStringGrid: TStringGrid): string;

var

  I, J: Integer;

  S: string;

begin

  Result := '';

  if not Assigned(mStringGrid) then Exit;

  for J := mStringGrid.Selection.Top to mStringGrid.Selection.Bottom do

  begin

    S := '';

    for I := mStringGrid.Selection.Left to mStringGrid.Selection.Right do

      S := S + #9 + mStringGrid.Cells[I, J];

    Delete(S, 1, 1);

    Result := Result + S + #13#10;

  end;

end; { StringGridSelectText }

procedure StringGridPasteFromClipboard(mStringGrid: TStringGrid);

var

  vTextList: TStringList;

  vLineList: TStringList;

  I, J: Integer;

begin

  vTextList := TStringList.Create;

  vLineList := TStringList.Create;

  vLineList.Delimiter := #9;

  try

    vTextList.Text := Clipboard.AsText;

    for J := 0 to vTextList.Count - 1 do

    begin

      if J + mStringGrid.Row >= mStringGrid.RowCount then Break;

      vLineList.DelimitedText := vTextList[J];

      for I := 0 to vLineList.Count - 1 do

      begin

        if I + mStringGrid.Col >= mStringGrid.ColCount then Break;

        mStringGrid.Cells[I + mStringGrid.Col, J + mStringGrid.Row] := vLineList[I];

      end;

    end;

  finally

    vTextList.Free;

    vLineList.Free;

  end;

end; { StringGridPasteFromClipboard }

procedure StringGridCopyToClipboard(mStringGrid: TStringGrid);

begin

  Clipboard.AsText := StringGridSelectText(mStringGrid);

end; { StringGridCopyToClipboard }

procedure TForm1.MenuItemCopyClick(Sender: TObject);

begin

  StringGridCopyToClipboard(StringGrid1);

end;

procedure TForm1.MenuItemPasteClick(Sender: TObject);

begin

  StringGridPasteFromClipboard(StringGrid1);

end;

procedure TForm1.StringGrid1KeyDown(Sender: TObject; var Key: Word;

  Shift: TShiftState);

begin

  if ssCtrl in Shift then

    case Key of

      Ord('C'): StringGridCopyToClipboard(TStringGrid(Sender));

      Ord('V'): StringGridPasteFromClipboard(TStringGrid(Sender));

    end;

end;

相 关 文 章
  • Delphi部分函数、命令、属性中文说明

  • 用Delphi实现整个网站图片的极速下载

  • Delphi控制Excel2000

  • 用DELPHI实现文件加密压缩

  • Delphi控制Excel的重要属性和方法

  • Windows的DDE原理

  • 在Delphi中获取和修改文件的时间

  • 校验码辅导讲座

  • 在Delphi 7中用dbexpress连接MySQL

  • Delphi:Daily build实践

  • 学府网电脑学习的乐园
    中国电脑教学网,电脑爱好者的乐园,做最好最全的计算机学习网站.