|
에궁...
아래 소스를 직접 프로젝트에 담아서 해보려구 했는데.. 몇몇 변수가 무슨 역할을 하는지 몰라서 못하겠네요.. ㅠ_ㅠ
프로젝트 파일을 첨부해 주시면.. 가능한 열심히... -_-;;
에궁... 님이 쓰신 글 :
: 답변 감사드립니다..^^
:
: 다른 루틴에서 충돌이 날수도 있다고 하신 유영인님의 말씀대로 트리1과 트리2에서
:
: 사용된 루틴을 비교해 봤는데 저의 모자른 능력으론.. 충돌날 만한곳이 없는거 같아서요..
:
: 이리해 보고 저리 해봐도 ..해답이 안나와염.....
:
: 귀찮으시겠지만 아래에 소스좀 봐 주세요...ㅠ_ㅠ
:
: bool Check1,Chek2;
:
: void __fastcall TGroupMove::TreeView1DragDrop(TObject *Sender, TObject *Source,
: int X, int Y)
: {
:
: if(TreeView1->Selected == NULL ) return;
: TNodeAttachMode AttachMode;
: THitTests HT = TreeView1->GetHitTestInfoAt(X, Y);
: TTreeNode *Node = TreeView1->GetNodeAt(X, Y);
: if( HT.Contains(htOnItem) || HT.Contains(htOnIcon) || HT.Contains(htNowhere) || HT.Contains(htOnIndent) )
: {
: if( HT.Contains(htOnItem) || HT.Contains(htOnIcon) )
:
: AttachMode = naAddChild;
:
: else if( HT.Contains(htNowhere) )
: AttachMode = naAdd;
:
: else if( HT.Contains(htOnIndent) )
: if(!Node) return;
: if(Node == myNode)
: {
: Application->MessageBox("같은 노드로는 이동 안됨.", "Error",MB_ICONERROR|MB_OK);
: return;
: }
: AttachMode = naInsert;
:
: TreeView1->Selected->MoveTo(Node, AttachMode);
: }
:
:
: }
:
: TreeView1->FullExpand();
:
: }
: //---------------------------------------------------------------------------
:
: void __fastcall TGroupMove::TreeView1DragOver(TObject *Sender, TObject *Source,
: int X, int Y, TDragState State, bool &Accept)
: {
:
: if(Check1)
: Accept = true;
: else Accept = false;
:
: }
: //-----------------------------------------------------------------------------
: void __fastcall TGroupMove::TreeView1StartDrag(TObject *Sender,
: TDragObject *&DragObject)
: {
: Check1 = true ;
: }
: //------------------------------------------------------------------------------
: void __fastcall TGroupMove::TreeView1EndDrag(TObject *Sender,
: TObject *Target, int X, int Y)
: {
: Check1 = false;
: }
:
: //----------------------------------------------------------------------------
: void __fastcall TGroupMove::TreeView2DragDrop(TObject *Sender, TObject *Source,
: int X, int Y)
: {
:
: if(TreeView2->Selected == NULL ) return;
: TNodeAttachMode AttachMode;
:
: THitTests HT = TreeView2->GetHitTestInfoAt(X, Y);
: TTreeNode *NNode = TreeView2->GetNodeAt(X, Y);
:
: if( HT.Contains(htOnItem) || HT.Contains(htOnIcon) || HT.Contains(htNowhere) || HT.Contains(htOnIndent) )
: {
: if( HT.Contains(htOnItem) || HT.Contains(htOnIcon) )
: AttachMode = naAddChild;
:
: else if( HT1.Contains(htNowhere) )
: AttachMode = naAdd;
:
: else if( HT1.Contains(htOnIndent) )
: if(!NNode) return;
: if(NNode == myNode1)
: {
: Application->MessageBox("같은 노드로는 이동 안됨.", "Error",MB_ICONERROR|MB_OK);
: return;
: }
: AttachMode = naInsert;
:
: TreeView2->Selected->MoveTo(NNode, AttachMode);
: }
:
: }
: TreeView2->FullExpand();
:
:
: }
:
: //---------------------------------------------------------------------------
:
: void __fastcall TGroupMove::TreeView2DragOver(TObject *Sender, TObject *Source,
: int X, int Y, TDragState State, bool &Accept)
: {
:
: if(Check2)
: Accept = true;
: else Accept = false;
:
: }
:
: //-----------------------------------------------------------------------------
: void __fastcall TGroupMove::TreeView1StartDrag(TObject *Sender,
: TDragObject *&DragObject)
: {
: Check2 = true ;
: }
: //------------------------------------------------------------------------------
: void __fastcall TGroupMove::TreeView1EndDrag(TObject *Sender,
: TObject *Target, int X, int Y)
: {
: Check2 = false;
: }
:
|