//参考如下代码~~
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. mysql当查询某字段结果为空并赋值

    1 代码 1.1 当当前字段为空,查询结果返回“none”,并且统计出现频率 select case when 字段 is null then 'none' else 字段 end as 字段, co ...

  2. Java中的BlockingQueue队列

    BlockingQueue位于JDK5新增的concurrent包中,它很好地解决了多线程中,如何高效安全地“传输”数据的问题.通过这些高效并且线程安全的队列类,为我们快速搭建高质量的多线程程序带来极 ...

  3. js篇之对象数据属性与存取器属性

    在ECMAScript中,对象属性值可以用一个或两个方法代替,这两个方法就是getter和setter.由getter与与setter定义的属性叫做‘存取器属性’.当程序查询存取器属性的值时,js调用 ...

  4. 并发之AQS原理(一) 原理介绍简单使用

    并发之AQS原理(一) 如果说每一个同步的工具各有各的强大,那么这个强大背后是一个相同的动力,它就是AQS. AQS是什么 AQS是指java.util.concurrent.locks包里的Abst ...

  5. zoj3469 区间dp好题

    /* 按坐标排序 以餐厅为起点向两边扩展区间 dp[i][j][0]表示送完区间[i,j]的饭后停留在左边的代价 dp[i][j][1]表示送完区间[i,j]的饭后停留在右边的代价 */ #inclu ...

  6. cf1108e 线段树区间更新+扫描线

    /* 有点像扫描线 思路:从左到右枚举每个点,枚举到点i时,把所有以i为起点的区间的影响删去 再加上以i-1为结尾的区间的影响 */ #include<bits/stdc++.h> usi ...

  7. cf796d 树,bfs好题!

    绝对是好题,把所有警察局放入队列然后开始广搜,如果碰到了vis过的顶点,但是那条边没有访问过,那么这条边就可以删掉 另外广搜的vis标记是在入队时就打的,, #include<bits/stdc ...

  8. Gym100340 线性dp

    //看题解写的 https://blog.csdn.net/sdfzyhx/article/details/51804748#include<bits/stdc++.h> using na ...

  9. hdu5443 ST表裸题:求区间最大

    #include<iostream> #include<cstring> #include<cstdio> #include<algorithm> #d ...

  10. SPLAY,LCT学习笔记(四)

    前三篇好像变成了SPLAY专题... 这一篇正式开始LCT! 其实LCT就是基于SPLAY的伸展操作维护树(森林)连通性的一个数据结构 核心操作有很多,我们以一道题为例: 例:bzoj 2049 洞穴 ...