cxGrid 에서 Ctrl+C 한 내용을 Clipboard에 넣고 붙이기….

cxGrid 에서 Ctrl+C 한 내용을 Clipboard에 넣고 붙이기 방법 입니다.

말이 좀 어렵긴 하지만..
그리드가 2개라 가정합니다.

A 라는 그리드에서 Ctrl-C한 내용을 B의 그리드에 넣으려면, 아래와 같은 작업을 하시면 됩니다.

cxGrid에서 OptionsSelect->CellMultiSelect := True로 하신후에 멀티 선택을 하시고…
Ctrl-C를 누르시면.. 내용이 ClibBoard로 들어갑니다.
각각의 컬럼 내용은 Tab으로 구분하고 끝은 #13#10 ( 0x0D, 0x0A )로 들어 갑니다.
이부분을 잘라서 그리드에 넣으면 됩니다.

Use Clipbrd;
...
procedure TForm2.Button1Click(Sender: TObject);
var
  s
  ,sCutStr
         : string;
  X,Y, Old_X : Integer;
  iCutPos, I: Integer;
begin
  s := Clipboard.AsText;

  X := cxGridTableView1.Controller.FocusedColumnIndex;
  Y := cxGridTableView1.Controller.FocusedRowIndex;
  Old_X := X;


  sCutStr := '';
  for I := 1 to Length( S ) do
  begin
     case s[i] of
      #9 : begin

            cxGridTableView1.DataController.Values[ Y, X ] := sCutStr;
            Inc( X );
            sCutStr := '';
           end;
      #13 :;
      #10 : begin
                  cxGridTableView1.DataController.Values[ Y, X ] := sCutStr;
                  sCutStr := '';
                  Inc(Y );
                  X := Old_X;

                End;
      else
        sCutStr := sCutStr + s[i];
     end;

  end;

  cxGridTableView1.DataController.Values[ Y, X ] := sCutStr;

end;

 

좋은 하루가 되시길 바랍니다.

Author: yyjksw