cxGrid 에서 Ctrl+C 한 내용을 Clipboard에 넣고 붙이기 방법 입니다.
말이 좀 어렵긴 하지만..
그리드가 2개라 가정합니다.
A 라는 그리드에서 Ctrl-C한 내용을 B의 그리드에 넣으려면, 아래와 같은 작업을 하시면 됩니다.
cxGrid에서 OptionsSelect->CellMultiSelect := True로 하신후에 멀티 선택을 하시고…
Ctrl-C를 누르시면.. 내용이 ClibBoard로 들어갑니다.
각각의 컬럼 내용은 Tab으로 구분하고 끝은 #13#10 ( 0x0D, 0x0A )로 들어 갑니다.
이부분을 잘라서 그리드에 넣으면 됩니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 |
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; |
좋은 하루가 되시길 바랍니다.
최신 댓글