//参考如下代码~~
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 StringGrid 表格的复制粘贴的更多相关文章

  1. word复制粘贴表格不齐

    1.查找橡皮擦 2.有时候复制粘贴 表格 会将以前的东西格式也粘贴进来,需要清除格式和重新排版 3.word2007清除格式

  2. Excel 2010 如何将筛选后的数据复制粘贴到另一个工作表筛选后的表格里

    如果你是指自动筛选后,把筛选数据复制/粘贴到另外一个工作表中,不妨试试试 第一步选中筛选后的数据区域:第二步执行菜单命令“编辑/定位/定位条件/可见单元格”,确定:第三步单击复制按钮或者Ctrl+C或 ...

  3. (转载)Delphi StringGrid常用属性和常用操作

    Delphi StringGrid常用属性和常用操作 StringGrid组件用于建立显示字符串的网格,与电子表格相似.它可使表格中的字符串和相关对象操作简单化.StringGrid组件提供了许多可控 ...

  4. Delphi StringGrid控件的用法

    Delphi StringGrid控件 组件名称:StringGrid         ●固定行及固定列:  StringGrid.FixedCols:=固定行之数;  StringGrid.Fixe ...

  5. [FMX]在你的跨平台应用中使用剪贴板进行复制粘贴

    [FMX]在你的跨平台应用中使用剪贴板进行复制粘贴 2017-08-10 • Android.C++ Builder.Delphi.iOS.教程 • 暂无评论 • swish •浏览 516 次 VC ...

  6. 个人永久性免费-Excel催化剂功能第82波-复制粘贴按源区域大小自动扩展收缩目标区域

    日常工作中,复制粘贴的操作,永远是最高频的操作,没有之一,在最高频的操作上,进行优化,让过程更智能,比一天到晚鼓吹人工智能替换人的骇人听闻的新闻来得更实际.此篇带来一点点的小小的改进,让日后无数的复制 ...

  7. 个人永久性免费-Excel催化剂功能第44波-可见区域复制粘贴不覆盖隐藏内容

    Excel的复制粘贴操作,每天都在进行,若其中稍能提升一点效率,长久来说,实在是很可观的效率提升. Excel自带的复制粘贴功能,若复制的数据源或粘贴的目标位置中有隐藏的行列内容,简单一个复制粘贴充满 ...

  8. Delphi StringGrid常用属性和常用操作

    StringGrid组件用于建立显示字符串的网格,与电子表格相似.它可使表格中的字符串和相关对象操作简单化.StringGrid组件提供了许多可控制网格外观念的属性,以及利用表格的结构响应用户操作的事 ...

  9. Android中的复制粘贴

    Android中的复制粘贴 The Clipboard Framework 当使用clipboard framework时,把数据放在一个剪切对象(clip object)里,然后这个对象会放在系统的 ...

随机推荐

  1. node path.resolve()

    作用: path.resolve()方法将一系列路径或路径段解析为绝对路径. 语法: path.resolve([from ...], to) 说明:将参数 to 位置的字符解析到一个绝对路径里. 参 ...

  2. PHP将数据写入指定文件中

    首先创建一个空的txt文件,这里我们创建了一个1.txt的空文件. 第一种方法:fwrite函数 <?php $file=fopen('1.txt','rb+'); var_dump(fwrit ...

  3. java web项目为什么我们要放弃jsp?

    前戏: 以前的项目大多数都是java程序猿又当爹又当妈,又搞前端(ajax/jquery/js/html/css等等),又搞后端(java/mysql/Oracle等等). 随着时代的发展,渐渐的许多 ...

  4. 字节、字、bit、byte的关系【转】

    字 word 字节 byte 位 bit 字长是指字的长度 1字=2字节(1 word = 2 byte) 1字节=8位(1 byte = 8bit)  一个字的字长为16 一个字节的字长是8 bps ...

  5. HDFS上创建文件、写入内容

    1.创建文件 hdfs dfs -touchz /aaa/aa.txt 2.写入内容 echo "<Text to append>" | hdfs dfs -appen ...

  6. MonologFX最简demo,javafx外用dialog示例

    参考blog:https://blogs.oracle.com/javajungle/entry/monologfx_floss_javafx_dialogs_for /* * To change t ...

  7. 开始写博客,学习Linq(4)

    应该是可以敲代码了,Linq是.NET Framework3.5的功能,该版本的框架同时发布了新增的和更新了得类库,也为C#和VB.NET语言提供了新版本的编译器.Linq的功能支持源于编译器和类库, ...

  8. webpack 模块标识符(Module Identifiers)

    让我们向项目中再添加一个模块 print.js: project webpack-demo |- package.json |- webpack.config.js |- /dist |- /src ...

  9. Shell 错误输出重定向

    转自:https://www.cnblogs.com/vijayfly/p/6234575.html shell将标准错误输出重定向到 其他地方 经常可以在一些脚本,尤其是在crontab调用时发现如 ...

  10. P1219 八皇后 含优化 1/5

    题目描述 检查一个如下的6 x 6的跳棋棋盘,有六个棋子被放置在棋盘上,使得每行.每列有且只有一个,每条对角线(包括两条主对角线的所有平行线)上至多有一个棋子. 上面的布局可以用序列2 4 6 1 3 ...