퀀텀그리드(cxGrid) 드래그 드롭하기…
procedure TForm2.cxGrid2TableView1DragDrop(Sender, Source: TObject; X,
Y: Integer);
var
Source_Site: TcxGridSite;
Sender_Site: TcxGridSite;
idx,
복사할위치,
복사당할위치 : Integer;
복사당할_레코드 : TcxCustomGridRecord;
begin
if ( Source is TcxDragControlObject ) then
begin
Source_Site := TcxGridSite( TcxDragControlObject(Source).Control );
Sender_Site := TcxGridSite(Sender); // TcxGridSite( TcxDragControlObject(Sender).Control );
if Source_Site.GridView is TcxGridTableView then
begin
// TcxGridTableView ( 그리드_사이트.GridView ).ViewInfo.GetHitTest( Point( x,y ) ) )
// 복사할위치 := TcxGridTableView ( TcxGridSite( TcxDragControlObject(Source).Control ).GridView ).Controller.SelectedRecords[0];
if TcxGridTableView ( Sender_Site.GridView ).ViewInfo.GetHitTest( Point( x,y ) ) is TcxGridRecordCellHitTest then
복사당할_레코드 :=
TcxGridRecordCellHitTest(
TcxGridTableView ( Sender_Site.GridView ).ViewInfo.GetHitTest( Point( x,y ) )
).GridRecord
else
복사당할_레코드 := nil;
if 복사당할_레코드 <> nil then
idx := TcxGridTableView ( Sender_Site.GridView ).DataController.InsertRecord( 복사당할_레코드.RecordIndex )
else
idx := TcxGridTableView( Sender_Site.GridView ).DataController.AppendRecord;
TcxGridTableView ( Sender_Site.GridView ).DataController.Values[ idx, 0 ] :=
TcxGridTableView ( Source_Site.GridView ).Controller.SelectedRecords[0].Values[0];
end;
end;
end;
procedure TForm2.cxGrid2TableView1DragOver(Sender, Source: TObject; X,
Y: Integer; State: TDragState; var Accept: Boolean);
var
그리드_사이트: TcxGridSite;
begin
if ( Source is TcxDragControlObject ) then
begin
그리드_사이트 := TcxGridSite( TcxDragControlObject(Source).Control );
if 그리드_사이트.GridView is TcxGridTableView then
begin
Accept := TcxGridTableView ( 그리드_사이트.GridView ) = cxGrid1TableView1;
end;
end;
end;

최신 댓글