WEB开发网
开发学院软件开发Delphi TStringGrid多选的复制与拷贝 阅读

TStringGrid多选的复制与拷贝

 2006-02-04 13:49:20 来源:WEB开发网   
核心提示:uses Clipbrd;function StringGridSelectText(mStringGrid: TStringGrid): string;varI, J: Integer;S: string;beginResult := '';if not Assigned(mStringGrid) t
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;

Tags:TStringGrid 复制 拷贝

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接