首页 > 学院 > 开发设计 > 正文

TStringGrid多选的复制与拷贝

2019-11-18 18:15:58
字体:
来源:转载
供稿:网友
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;

上一篇:网络函数库

下一篇:firebird嵌入式数据库

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表
学习交流
热门图片

新闻热点

疑难解答

图片精选

网友关注