Каталог статей Delphi Report
Copy & Paste таблицы в StringGrid
Для копирования (Copy) всех данных из StringGrida воспользуемся следующим кодом:
procedure TForm2.Button1Click(Sender: TObject); var S: string; C, R: Integer; begin S := ''; for R := 0 to StringGrid1.RowCount-1 do begin for C := 0 to StringGrid1.ColCount-1 do begin if C = StringGrid1.ColCount-1 then S := S + (StringGrid1.Cells[C, R]) else S := S + StringGrid1.Cells[C, R] + #9; end; S := S + #13#10; end; ClipBoard.AsText := S; end;
Теперь в буфере памяти у вас будет необходимый текст.
Если необходимо копировать только выделенную область, то поступим следующим образом:
procedure TForm2.Button2Click(Sender: TObject); var S: string; GRect: TGridRect; C, R: Integer; begin GRect := StringGrid1.Selection; S := ''; for R := GRect.Top to GRect.Bottom do begin for C := GRect.Left to GRect.Right do begin if C = GRect.Right then S := S + (StringGrid1.Cells[C, R]) else S := S + StringGrid1.Cells[C, R] + #9; end; S := S + #13#10; end; ClipBoard.AsText := S; end;
Для выполнения Paste приведен следующий код. При этом в программе будет осуществляться проверка необходимого количества строк и будут добавляться новые при необходимости:
procedure TForm2.Button3Click(Sender: TObject); var Grect: TGridRect; S, CS, F: string; L, R, C: Byte; begin GRect := StringGrid1.Selection; L := GRect.Left; R := GRect.Top; S := ClipBoard.AsText; R :=-1; while Pos(#13, S) > 0 do begin R := R + 1; if StringGrid1.RowCount<R+1 then StringGrid1.RowCount:=StringGrid1.RowCount+1; C := L - 1; CS := Copy(S, 1,Pos(#13, S)); while Pos(#9, CS) > 0 do begin C := C + 1; if (C <= StringGrid1.ColCount - 1) and (R <= StringGrid1.RowCount - 1) then StringGrid1.Cells[C, R] := Copy(CS, 1,Pos(#9, CS) - 1); F := Copy(CS, 1,Pos(#9, CS) - 1); Delete(CS, 1,Pos(#9, CS)); end; if (C <= StringGrid1.ColCount - 1) and (R <= StringGrid1.RowCount - 1) then StringGrid1.Cells[C + 1,R] := Copy(CS, 1,Pos(#13, CS) - 1); Delete(S, 1,Pos(#13, S)); if Copy(S, 1,1) = #10 then Delete(S, 1,1); end; end;
|
Категория: MS Word | Добавил: delphi (12.04.2010)
|
Просмотров: 7103
| Рейтинг: 5.0/3 |
Добавлять комментарии могут только зарегистрированные пользователи. [ Регистрация | Вход ]
|
Google
|