프로그래밍 노트

델파이 : 클립보드의 데이터를 StringGrid에 붙이기 본문

델파이

델파이 : 클립보드의 데이터를 StringGrid에 붙이기

띠리 2007. 11. 28. 13:25

클립보드의 데이터를 StringGrid에 붙이기
엑셀에서 데이터를 카피해서 StringGrid에 붙이기

클립보드의 데이터를 쓰기위해서는
uses절에 Clipbrd 를 추가해야 된다.
 

procedure TfrmCable.PasteToGrid(sgrdPaste: TStringGrid;
                                iCol, iRow: integer);
const
  cTab = #9;
  cCR  = #13;
  cLF  = #10;
var
  iCols : integer;
  iRows : integer;
  i : integer;
  sClip : string;
  sSubs : string;
begin

  // Col,Row 이 음수 일때는 0으로
  if iCol < 0 then iCol := 0;
  if iRow < 0 then iRow := 0;

  sClip := Clipboard.AsText;
  iCols := 0;
  iRows := 0;
  sSubs := '';

  for i := 1 to Length(sClip) do
  begin
    case sClip[i] of
      cTab:
      begin
        if (iCol + iCols < sgrdPaste.ColCount) and
           (iRow + iRows < sgrdPaste.RowCount) then
          sgrdPaste.Cells[iCol + iCols, iRow + iRows] := sSubs;
        Inc(iCols);
        sSubs := '';
      end;
      cCR:
      begin
        if (iCol + iCols < sgrdPaste.ColCount) and
           (iRow + iRows < sgrdPaste.RowCount) then
          sgrdPaste.Cells[iCol + iCols, iRow + iRows] := sSubs;
        iCols := 0;
        Inc(iRows);
        sSubs := '';
      end;
      cLF: ;
      else
      begin
        sSubs := sSubs + sClip[i];
      end;
    end;
  end;
end;

Comments