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;
좋은 하루가 되시길 바랍니다.

최신 댓글