首页 > 代码库 > TStringGrid多选的复制与拷贝
TStringGrid多选的复制与拷贝
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;
http://blog.csdn.net/zswang/article/details/111607
TStringGrid多选的复制与拷贝
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。