Mini Kabibi Habibi

Current Path : C:/Users/ITO/Desktop/VF9/program files/microsoft visual foxpro 9/samples/solution/tahoe/
Upload File :
Current File : C:/Users/ITO/Desktop/VF9/program files/microsoft visual foxpro 9/samples/solution/tahoe/listdd.sct

V�VERSION =   3.00dataenvironmentdataenvironmentDataenvironmentLLeft = 251
Top = 242
Width = 520
Height = 200
Name = "Dataenvironment"
12frmsolution..\solution.vcxform	frmListDD�Height = 261
Width = 539
DoCreate = .T.
Caption = "Treeview/Listbox Drag and Drop"
Visible = .T.
HelpContextID = 236
Name = "frmListDD"
C_solutions1.Top = 228
C_solutions1.Left = 48
C_solutions1.Name = "C_solutions1"
Behindscenes1.Top = 228
Behindscenes1.Left = 12
Behindscenes1.TabIndex = 9
Behindscenes1.ZOrderSet = 2
Behindscenes1.Name = "Behindscenes1"
Shape2.Top = 12
Shape2.Left = 12
Shape2.Height = 48
Shape2.Width = 516
Shape2.ZOrderSet = 3
Shape2.Name = "Shape2"
Label1.Caption = "You can use the new OLE Drag and Drop features in VFP6 for moving items between listbox and treeview controls."
Label1.Height = 27
Label1.Left = 24
Label1.Top = 24
Label1.Width = 480
Label1.TabIndex = 2
Label1.ZOrderSet = 4
Label1.Name = "Label1"
Label4.TabIndex = 1
Label4.ZOrderSet = 5
Label4.Name = "Label4"
Cmdclose1.Top = 228
Cmdclose1.Left = 456
Cmdclose1.TabIndex = 10
Cmdclose1.ZOrderSet = 6
Cmdclose1.Name = "Cmdclose1"
�PROCEDURE Init
DODEFAULT()
LOCAL i
for i= 1 to 5
	this.olecontrol1.nodes.add(,,"LItem"+TRANS(m.i),"LItem"+TRANS(m.i))
	this.olecontrol2.nodes.add(,,"RItem"+TRANS(m.i),"RItem"+TRANS(m.i))
endfor

ENDPROC
w�� ^^�7%��U�	��C����������(������5��C���LItemC�
�_�LItemC�
�_������5��C���RItemC�
�_�RItemC�
�_��������UITHISOLECONTROL1NODESADDOLECONTROL2Init,��1�qqQQA2�)^^aitems[1,0] 
shapeshapeShape1	frmListDDdTop = 72
Left = 276
Height = 144
Width = 252
BackStyle = 0
SpecialEffect = 0
Name = "Shape1"
shapeshapeShape3	frmListDDcTop = 72
Left = 12
Height = 144
Width = 252
BackStyle = 0
SpecialEffect = 0
Name = "Shape3"
labellabelLabel2	frmListDD�DragMode = 1
FontName = "MS Sans Serif"
FontSize = 8
Caption = "Treeview  Drag  ->  Drop"
Height = 15
Left = 24
Top = 65
Width = 119
TabIndex = 3
Name = "Label2"
labellabellblTview	frmListDDnDragMode = 1
Caption = ""
Height = 17
Left = 24
Top = 192
Width = 228
TabIndex = 11
Name = "lblTview"
listboxlistboxLst1	frmListDD�OLEDragMode = 1
OLEDropMode = 1
FontName = "MS Sans Serif"
FontSize = 8
RowSourceType = 1
RowSource = "One,Two,Three,Four,Five"
Height = 96
Left = 288
MultiSelect = .T.
TabIndex = 7
Top = 84
Width = 108
IntegralHeight = .T.
Name = "Lst1"
$PROCEDURE OLEDragDrop
LPARAMETERS oDataObject, nEffect, nButton, nShift, nXCoord, nYCoord
LOCAL aValues[1],i 

DIMENSION THISFORM.aItems[1]
STORE "" TO THISFORM.aItems

#DEFINE	FROM_LOC	" from: "

*-- Remove items from source listbox
IF oDataObject.GetFormat("VFP Source Object")
	WITH oDataObject.GetData("VFP Source Object")
		IF .Name = THIS.Name	&&don't allow dragdrop on self
			RETURN
		ENDIF
		WAIT WINDOW JUSTEXT(PROGRAM())+FROM_LOC+.Name TIMEOUT .3
	ENDWITH
ENDIF

*-- If the DataObject has the CF_OLE_VARIANT_ARRAY format then
*   there is something to process. Add items to listbox 
IF oDataObject.GetFormat("OLE Variant Array")
	oDataObject.GetData("OLE Variant Array",@aValues)
	*-- For each item in the array
	FOR i = 1 to alen(aValues)
		This.AddItem(aValues[m.i])
	ENDFOR
	ACOPY(aValues,THISFORM.aItems)
ENDIF

*-- Let the source object know what operation occurred
IF nShift == 1		&& CTRL key is pressed => copy
	nEffect = 1		&& DROPEFFECT_COPY
ELSE
	nEffect = 2		&& DROPEFFECT_MOVE
ENDIF

ENDPROC
PROCEDURE OLEDragOver
LPARAMETERS oDataObject, nEffect, nButton, nShift, nXCoord, nYCoord, nState

DO CASE
CASE nState == 0  &&DRAG_ENTER
	*-- IF the data object contains CFSTR_OLEVARIANTARRAY data
	*   then we will communicate that we will accept a drop
	*   of this data by setting the OLEDropHasData property
	*   and specifying which drop effects we support.
	IF oDataObject.GetFormat("OLE Variant Array")
		This.OLEDropHasData = 1		&& DROPHASDATA_USEFUL
		This.OLEDropEffects = 1+2	&& DROPEFFECT_COPY + DROPEFFECT_MOVE
	ENDIF
CASE nState == 1  &&DRAG_LEAVE
CASE nState == 2  &&DRAG_OVER
ENDCASE
ENDPROC
PROCEDURE OLEStartDrag
LPARAMETERS oDataObject, nEffect
LOCAL aValues, i, nSelected

*-- Create an array containing the values of the items that
*   are currently selected in this listbox
nSelected = 0
FOR i = 1 to This.ListCount

	*-- If the item is selected, add it to an array
	IF This.Selected( i )
		nSelected = nSelected + 1

		DIMENSION aValues[ nSelected ]
		aValues[ nSelected ] = This.List( i )
	ENDIF
NEXT

*-- The automatic formats that a ListBox has are CF_TEXT, 
*   CFSTR_OLEVARIANT, and CFSTR_VFPSOURCEOBJECT.  Since we want 
*   to drag multiple items, we also will need to store the data 
*   in a CFSTR_OLEVARIANTARRAY format.
IF nSelected > 0
	oDataObject.SetData(@aValues)
ENDIF

ENDPROC
PROCEDURE OLECompleteDrag
LPARAMETERS nEffect
LOCAL i,oldExact

*-- If a move operation was performed, remove the moved items 
*  from the list
IF nEffect == 2		&&DROPEFFECT_MOVE
	IF EMPTY(THISFORM.aItems)
		RETURN
	ENDIF
	oldExact = SET("EXACT")
	SET EXACT ON
	FOR i = This.ListCount to 1 step -1
		IF ASCAN(THISFORM.aItems,THIS.List[m.i])#0
			This.RemoveItem(m.i)
		ENDIF
	NEXT
	SET EXACT &oldExact
ENDIF

ENDPROC
:�� !!	>%��C"�U������������������	����J���(��	�%%�C�VFP Source Object��
����%��C�VFP Source Object������%���
�����B��*R,��333333�?��CCt��� from: ������%%�C�OLE Variant Array��
��w�%��C�OLE Variant Array����������(�C���`���CC�
���
�������C���	�
���%�������
T��������
T������UODATAOBJECTNEFFECTNBUTTONNSHIFTNXCOORDNYCOORDAVALUESITHISFORMAITEMS	GETFORMATGETDATANAMETHISADDITEM����������
H�,����������%%�C�OLE Variant Array������T��	����T��
��������������������UODATAOBJECTNEFFECTNBUTTONNSHIFTNXCOORDNYCOORDNSTATE	GETFORMATTHISOLEDROPHASDATAOLEDROPEFFECTS����������
T����������(�������%�C�������T������
�����T�����C��������%���������C���	���U
ODATAOBJECTNEFFECTAVALUESI	NSELECTEDTHIS	LISTCOUNTSELECTEDLISTSETDATA��������%�������%�C�����9�B��T��C�EXACTv��G �!������(�����������$%�C��C�
�����������C�
��������SET EXACT &oldExact
�U	NEFFECTIOLDEXACTTHISFORMAITEMSTHIS	LISTCOUNTLIST
REMOVEITEMOLEDragDrop,��OLEDragOvere��OLEStartDrag���OLECompleteDrag���1�UQQAA�AATQ�qA1A���A3��UAA2����S��AAA3q�!AAAaA1AAqA24�'%�c	83�	S)!listboxlistboxLst2	frmListDD�OLEDragMode = 1
OLEDropMode = 1
FontName = "MS Sans Serif"
FontSize = 8
RowSourceType = 1
Height = 96
Left = 408
MultiSelect = .T.
TabIndex = 8
Top = 84
Width = 108
IntegralHeight = .T.
Name = "Lst2"
gPROCEDURE OLESetData
LPARAMETERS oDataObject, xFormat
ENDPROC
PROCEDURE OLEStartDrag
LPARAMETERS oDataObject, nEffect
LOCAL aValues, i, nSelected

*-- Create an array containing the values of the items that
*   are currently selected in this listbox
nSelected = 0
FOR i = 1 to This.ListCount

	*-- If the item is selected, add it to an array
	IF This.Selected( i )
		nSelected = nSelected + 1

		DIMENSION aValues[ nSelected ]
		aValues[ nSelected ] = This.List( i )
	ENDIF
NEXT

*-- The automatic formats that a ListBox has are CF_TEXT, 
*   CFSTR_OLEVARIANT, and CFSTR_VFPSOURCEOBJECT.  Since we want 
*   to drag multiple items, we also will need to store the data 
*   in a CFSTR_OLEVARIANTARRAY format.
IF nSelected > 0
	oDataObject.SetData(@aValues)
ENDIF

ENDPROC
PROCEDURE OLECompleteDrag
LPARAMETERS nEffect
LOCAL i,oldExact

*-- If a move operation was performed, remove the moved items 
*  from the list
IF nEffect == 2		&&DROPEFFECT_MOVE
	IF EMPTY(THISFORM.aItems)
		RETURN
	ENDIF
	oldExact = SET("EXACT")
	SET EXACT ON
	FOR i = This.ListCount to 1 step -1
		IF ASCAN(THISFORM.aItems,THIS.List[m.i])#0
			This.RemoveItem(m.i)
		ENDIF
	NEXT
	SET EXACT &oldExact
ENDIF

ENDPROC
PROCEDURE OLEDragDrop
LPARAMETERS oDataObject, nEffect, nButton, nShift, nXCoord, nYCoord
LOCAL aValues[1],i 

DIMENSION THISFORM.aItems[1]
STORE "" TO THISFORM.aItems

#DEFINE	FROM_LOC	" from: "

*-- Remove items from source listbox
IF oDataObject.GetFormat("VFP Source Object")
	WITH oDataObject.GetData("VFP Source Object")
		IF .Name = THIS.Name	&&don't allow dragdrop on self
			RETURN
		ENDIF
		WAIT WINDOW JUSTEXT(PROGRAM())+FROM_LOC+.Name TIMEOUT .3
	ENDWITH
ENDIF

*-- If the DataObject has the CF_OLE_VARIANT_ARRAY format then
*   there is something to process. Add items to listbox 
IF oDataObject.GetFormat("OLE Variant Array")
	oDataObject.GetData("OLE Variant Array",@aValues)
	*-- For each item in the array
	FOR i = 1 to alen(aValues)
		This.AddItem(aValues[m.i])
	ENDFOR
	ACOPY(aValues,THISFORM.aItems)
ENDIF

*-- Let the source object know what operation occurred
IF nShift == 1		&& CTRL key is pressed => copy
	nEffect = 1		&& DROPEFFECT_COPY
ELSE
	nEffect = 2		&& DROPEFFECT_MOVE
ENDIF

ENDPROC
PROCEDURE OLEDragOver
LPARAMETERS oDataObject, nEffect, nButton, nShift, nXCoord, nYCoord, nState

DO CASE
CASE nState == 0  &&DRAG_ENTER
	*-- IF the data object contains CFSTR_OLEVARIANTARRAY data
	*   then we will communicate that we will accept a drop
	*   of this data by setting the OLEDropHasData property
	*   and specifying which drop effects we support.
	IF oDataObject.GetFormat("OLE Variant Array")
		This.OLEDropHasData = 1		&& DROPHASDATA_USEFUL
		This.OLEDropEffects = 1+2	&& DROPEFFECT_COPY + DROPEFFECT_MOVE
	ENDIF
CASE nState == 1  &&DRAG_LEAVE
CASE nState == 2  &&DRAG_OVER
ENDCASE

ENDPROC
��� qq�%��E^�U����UODATAOBJECTXFORMAT����������
T����������(�������%�C�������T������
�����T�����C��������%���������C���	���U
ODATAOBJECTNEFFECTAVALUESI	NSELECTEDTHIS	LISTCOUNTSELECTEDLISTSETDATA��������%�������%�C�����9�B��T��C�EXACTv��G �!������(�����������$%�C��C�
�����������C�
��������SET EXACT &oldExact
�U	NEFFECTIOLDEXACTTHISFORMAITEMSTHIS	LISTCOUNTLIST
REMOVEITEM������������������	����J���(��	�%%�C�VFP Source Object��
����%��C�VFP Source Object������%���
�����B��*R,��333333�?��CCt��� from: ������%%�C�OLE Variant Array��
��w�%��C�OLE Variant Array����������(�C���`���CC�
���
�������C���	�
���%�������
T��������
T������UODATAOBJECTNEFFECTNBUTTONNSHIFTNXCOORDNYCOORDAVALUESITHISFORMAITEMS	GETFORMATGETDATANAMETHISADDITEM����������
H�,����������%%�C�OLE Variant Array������T��	����T��
��������������������UODATAOBJECTNEFFECTNBUTTONNSHIFTNXCOORDNYCOORDNSTATE	GETFORMATTHISOLEDROPHASDATAOLEDROPEFFECTS
OLESetData,��OLEStartDragT��OLECompleteDrago��OLEDragDrop���OLEDragOver���1�2����S��AAA3q�!AAAaA1AAqA3�UQQAA�AATQ�qA1A���A3��UAA26Y<�!��4:	\Z)qlabellabelLabel5	frmListDD�DragMode = 1
FontName = "MS Sans Serif"
FontSize = 8
Caption = "Listbox  Drag  ->  Drop"
Height = 15
Left = 288
Top = 65
Width = 108
TabIndex = 6
Name = "Label5"

olecontrol
olecontrolOlecontrol1	frmListDDSTop = 84
Left = 24
Height = 96
Width = 108
TabIndex = 4
Name = "Olecontrol1"

��ࡱ�>��	������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Root Entry������������0��OleObjectData�����AccessObjSiteData&������������\ChangedProps������������>����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Alj���j��(6(!C4*�	�<�j"��
�ͫ\$89368265E-85FE-11d1-8BE3-0000F8754DA1}Microsoft Date a�OLEDragMode	I
OLEDropMode	I
 ��(���\���R�������K�Q�DB
MS Sans Serif}Microsoft Flat Scrollbar Control, version 6.0	{FE38753A-44A3-11D1-B5B7-0000C09000C4},OLEObject = C:\WINNT\system32\MSCOMCTL.OCX

olecontrol
olecontrolOlecontrol2	frmListDDTTop = 84
Left = 144
Height = 96
Width = 108
TabIndex = 5
Name = "Olecontrol2"
�PROCEDURE NodeClick
*** OLE Control Event ***
LPARAMETERS node
IF TYPE("this.DropHighlight.enabled")#"L"
	THIS.DropHighlight = node
ENDIF

ENDPROC
PROCEDURE OLEDragOver
*** OLE Control Event ***
LPARAMETERS data, effect, button, shift, x, y, state
LOCAL oNode
oNode=this.Hittest(x/96*1440,y/96*1440)
IF TYPE("oNode")="O" AND !ISNULL(oNode)
	this.DropHighlight = oNode
	IF TYPE("this.DropHighlight.text")="C"
		THISFORM.lblTview.Forecolor = RGB(0,0,0)
		THISFORM.lblTview.Caption = JUSTEXT(PROGRAM())+": "+this.DropHighlight.text
	ENDIF
ENDIF

ENDPROC
PROCEDURE OLEDragDrop
*** OLE Control Event ***
LPARAMETERS data, effect, button, shift, x, y
LOCAL oNode
oNode=this.Hittest(x/96*1440,y/96*1440)

IF TYPE("oNode")="O" AND !ISNULL(oNode)
	this.DropHighlight = oNode
	THISFORM.lblTview.Forecolor = RGB(255,0,0)
	THISFORM.lblTview.Caption = JUSTEXT(PROGRAM())+": "+this.DropHighlight.text
ENDIF

ENDPROC
D�� ++(%Q���UL���.%�C�this.DropHighlight.enabledb�L��E�T�������UNODETHIS
DROPHIGHLIGHT�������������)T��C��`����`����	��#%�C�oNodeb�O�C��
	����T��
����+%�C�this.DropHighlight.textb�C����T���
�C����^��%T����CCt���: ��
�����UDATAEFFECTBUTTONSHIFTXYSTATEONODETHISHITTEST
DROPHIGHLIGHTTHISFORMLBLTVIEW	FORECOLORCAPTIONTEXT������������)T��C��`����`������#%�C�oNodeb�O�C��
	����T��	����T�
���C�����^��%T�
��
�CCt���: ��	����UDATAEFFECTBUTTONSHIFTXYONODETHISHITTEST
DROPHIGHLIGHTTHISFORMLBLTVIEW	FORECOLORCAPTIONTEXT	NodeClick,��OLEDragOver���OLEDragDrop��1r�A3�q�1��QAA3�q�2�QA2��2	T�)+
��ࡱ�>��	������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Root Entry������������0��OleObjectData�����AccessObjSiteData&������������\ChangedProps������������!����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Alj���j��(6(!C4*�	�<�j"���ͫ\$89368265E-85FE-11d1-8BE3-0000F8754DA1�6���OLEDropMode	I
P
v�
�� ���\���R�������K�Q�DB
MS Sans Serif,OLEObject = C:\WINNT\system32\MSCOMCTL.OCX
JArial, 0, 9, 5, 15, 12, 21, 3, 0
MS Sans Serif, 0, 8, 5, 13, 11, 11, 2, 0
�Height = 261
Width = 539
DoCreate = .T.
Caption = "Treeview/Listbox Drag and Drop"
Visible = .T.
HelpContextID = 1231621
Name = "frmListDD"
C_solutions1.Top = 228
C_solutions1.Left = 48
C_solutions1.Name = "C_solutions1"
Behindscenes1.Top = 228
Behindscenes1.Left = 12
Behindscenes1.TabIndex = 9
Behindscenes1.ZOrderSet = 2
Behindscenes1.Name = "Behindscenes1"
Shape2.Top = 12
Shape2.Left = 12
Shape2.Height = 48
Shape2.Width = 516
Shape2.ZOrderSet = 3
Shape2.Name = "Shape2"
Label1.Caption = "You can use the new OLE Drag and Drop features in VFP6 for moving items between listbox and treeview controls."
Label1.Height = 27
Label1.Left = 24
Label1.Top = 24
Label1.Width = 480
Label1.TabIndex = 2
Label1.ZOrderSet = 4
Label1.Name = "Label1"
Label4.TabIndex = 1
Label4.ZOrderSet = 5
Label4.Name = "Label4"
Cmdclose1.Top = 228
Cmdclose1.Left = 456
Cmdclose1.TabIndex = 10
Cmdclose1.ZOrderSet = 6
Cmdclose1.Name = "Cmdclose1"