티스토리 뷰
728x90
출처 : http://kjs1981.tistory.com/entry/%EB%8D%B8%ED%8C%8C%EC%9D%B4-Drag-Drop%EC%9D%98-%EC%A0%95%EB%A6%AC-%ED%8E%8C-softech%EA%B3%A8%EB%B1%85%EC%9D%B4pppkornet21net
1. 소스 : cxVirtualTreeList1.DragMode = dmAutomatic
DragMode = dmAutomatic의 경우 모든 객체에 대해서 Darg 모드가 적용되지만
특정객체만 선택적으로 Drag 모드가 적용되게 하려면 DragMode = dmManual 로 수정하고
MouseDown 이벤트에서 BeginDrag(False); 로 해준다.
cxVirtualTreeList1.DragMode = dmManual // 수정
procedure TObjectTreeForm.cxVirtualTreeList1MouseDown(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
var
TableItem : TTableItem;
begin
TableItem := DBManager.DBObjectTreeModel.DoSelectNode(cxVirtualTreeList1.GetNodeAt(x, y));
if Assigned(TableItem) then begin
cxVirtualTreeList1.BeginDrag(False); { 있다면 드랙을 시작한다. }
ColumnGridModel.ColumnList := TableItem.ColumnList;
ColumnGridModel.DataChanged;
end;
end;
2. 대상 : OnDragOver 이벤트
procedure TfrmSQLEditor.SyntaxMemo1DragOver(Sender, Source: TObject; X,
Y: Integer; State: TDragState; var Accept: Boolean);
var
TableItem : TTableItem;
begin
if (Source is TcxVirtualTreeList) then begin
TableItem := DBManager.DBObjectTreeModel.DoSelectNode((Source as TcxVirtualTreeList).DragNode);
if Assigned(TableItem) then begin
Accept := true;
end;
end;
end;
3. 대상 : DragDrop이벤트
procedure TfrmSQLEditor.SyntaxMemo1DragDrop(Sender, Source: TObject; X,
Y: Integer);
var
TableItem : TTableItem;
begin
if (Source is TcxVirtualTreeList) then begin
TableItem := DBManager.DBObjectTreeModel.DoSelectNode((Source as TcxVirtualTreeList).DragNode);
if Assigned(TableItem) then begin
SyntaxMemo1.InsertText(TableItem.Name);
end;
end;
end;
1. 소스 : cxVirtualTreeList1.DragMode = dmAutomatic
DragMode = dmAutomatic의 경우 모든 객체에 대해서 Darg 모드가 적용되지만
특정객체만 선택적으로 Drag 모드가 적용되게 하려면 DragMode = dmManual 로 수정하고
MouseDown 이벤트에서 BeginDrag(False); 로 해준다.
cxVirtualTreeList1.DragMode = dmManual // 수정
procedure TObjectTreeForm.cxVirtualTreeList1MouseDown(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
var
TableItem : TTableItem;
begin
TableItem := DBManager.DBObjectTreeModel.DoSelectNode(cxVirtualTreeList1.GetNodeAt(x, y));
if Assigned(TableItem) then begin
cxVirtualTreeList1.BeginDrag(False); { 있다면 드랙을 시작한다. }
ColumnGridModel.ColumnList := TableItem.ColumnList;
ColumnGridModel.DataChanged;
end;
end;
2. 대상 : OnDragOver 이벤트
procedure TfrmSQLEditor.SyntaxMemo1DragOver(Sender, Source: TObject; X,
Y: Integer; State: TDragState; var Accept: Boolean);
var
TableItem : TTableItem;
begin
if (Source is TcxVirtualTreeList) then begin
TableItem := DBManager.DBObjectTreeModel.DoSelectNode((Source as TcxVirtualTreeList).DragNode);
if Assigned(TableItem) then begin
Accept := true;
end;
end;
end;
3. 대상 : DragDrop이벤트
procedure TfrmSQLEditor.SyntaxMemo1DragDrop(Sender, Source: TObject; X,
Y: Integer);
var
TableItem : TTableItem;
begin
if (Source is TcxVirtualTreeList) then begin
TableItem := DBManager.DBObjectTreeModel.DoSelectNode((Source as TcxVirtualTreeList).DragNode);
if Assigned(TableItem) then begin
SyntaxMemo1.InsertText(TableItem.Name);
end;
end;
end;
댓글
300x250
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
TAG
- 전예희
- Spring
- flex
- 서울오토살롱
- Linux
- 동경
- sas2009
- SAS
- 일본여행
- ubuntu
- Delphi Tip
- 지스타2007
- Xcode
- 튜닝쇼 2008
- android
- Java
- Mac
- MySQL
- Delphi
- oracle
- Spring MVC
- 송주경
- BPI-M4
- NDK
- 레이싱모델 익스트림 포토 페스티벌
- JavaScript
- koba2010
- ffmpeg
- KOBA
- ble
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함