zoukankan      html  css  js  c++  java
  • delphi StringGrid 表格的复制粘贴

    //参考如下代码~~
    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;

  • 相关阅读:
    第八次作业-谈谈Java web学习小结
    第七周作业--可行性研究与程序系统的结构
    第六次作业-数据库连接
    第五次作业-系统实现可能需要用到的技术,及学习相关技术的心得
    第四次作业-软件需求分析过程与需求分类
    第三次作业-前端与后台数据交换问题
    第二次作业-软件工作量估算方法
    第一次作业
    捣鼓一个Ajax请求管理器
    动动手,写个knockout的分页模板
  • 原文地址:https://www.cnblogs.com/zhangzhifeng/p/9024491.html
Copyright © 2011-2022 走看看