Mini Kabibi Habibi

Current Path : C:/Users/ITO/Desktop/VF9/program files/microsoft visual foxpro 9/ffc/
Upload File :
Current File : C:/Users/ITO/Desktop/VF9/program files/microsoft visual foxpro 9/ffc/_controls.vct

@VERSION =  0.029QMS Sans Serif, 0, 8, 5, 13, 11, 11, 2, 0
Courier New, 1, 11, 9, 17, 12, 11, 5, 0
_moverlistsPixels)MS Sans Serif, 0, 8, 5, 13, 11, 11, 2, 0
_foldermover list boxes
_resizableClass7
_container_moverlists_moverlists.PixelsClass7	container_folder_folder.chkCreateProjDir��� zzR+%1	�U����T���a�� �����(�������[�&��CC�
�����	�������������
�T���-��UITHISFORM
LOCKSCREENTHISPARENTLSTSELECTED	LISTCOUNT	LSTSOURCEADDITEMLISTCLEARClick,��1q�aA�1�)zcmdRemoveAll
commandbutton	_base.vcxminitialresize
initialformheight
initialformwidth
addtoarray
setsize
loopthroughcontrols
acontrolstats
PixelsClass1_custom
_resizablepHeight = 19
Width = 27
initialresize = .T.
initialformheight = 0
initialformwidth = 0
Name = "_resizable"
custom�PROCEDURE Click
LOCAL i
THISFORM.LockScreen = .T.
FOR i = 1 to THIS.Parent.lstSelected.ListCount
	THIS.Parent.lstSource.AddItem(THIS.Parent.lstSelected.List(m.i))
ENDFOR
THIS.Parent.lstSelected.Clear
THISFORM.LockScreen = .F.
ENDPROC
�Top = 102
Left = 186
Height = 25
Width = 37
FontBold = .T.
FontName = "Courier New"
FontSize = 11
Caption = "<<"
TabIndex = 6
ToolTipText = "Remove All Items"
Name = "cmdRemoveAll"
_commandbutton��� ����%q���U����T���a��
T�����+��
���������%�C�
���������&��CC�
�����
����	����C�
����������T���
������T���-��UNCNTTHISFORM
LOCKSCREENTHISPARENTLSTSELECTED	LISTCOUNTSELECTED	LSTSOURCEADDITEMLIST
REMOVEITEMClick,��1q����a��1AA�1_)�jPROCEDURE Click
LOCAL nCnt
THISFORM.LockScreen = .T.
nCnt = 1
DO WHILE m.nCnt <= THIS.Parent.lstSelected.ListCount
	IF THIS.Parent.lstSelected.Selected(m.nCnt)
		THIS.Parent.lstSource.AddItem(THIS.Parent.lstSelected.List(m.nCnt))
		THIS.Parent.lstSelected.RemoveItem(m.nCnt)
	ELSE
		nCnt = m.nCnt + 1
	ENDIF
ENDDO
THISFORM.LockScreen = .F.
ENDPROC
�Top = 71
Left = 186
Height = 25
Width = 37
FontBold = .T.
FontName = "Courier New"
FontSize = 11
Caption = "<"
TabIndex = 5
ToolTipText = "Remove Selected Items"
Name = "cmdRemove"
_moverlists.	cmdRemove
commandbutton	_base.vcx_commandbutton��� zzR+%1	�U����T���a�� �����(�������[�&��CC�
�����	�������������
�T���-��UITHISFORM
LOCKSCREENTHISPARENT	LSTSOURCE	LISTCOUNTLSTSELECTEDADDITEMLISTCLEARClick,��1q�aA�1�)z�PROCEDURE Click
LOCAL i
THISFORM.LockScreen = .T.
FOR i = 1 to THIS.Parent.lstSource.ListCount
	THIS.Parent.lstSelected.AddItem(THIS.Parent.lstSource.List(m.i))
ENDFOR
THIS.Parent.lstSource.Clear
THISFORM.LockScreen = .F.
ENDPROC
�Top = 33
Left = 186
Height = 25
Width = 37
FontBold = .T.
FontName = "Courier New"
FontSize = 11
Caption = ">>"
TabIndex = 4
ToolTipText = "Add All Items"
Name = "cmdAddAll"
_moverlists.	cmdAddAll
commandbutton	_base.vcx_commandbutton��� ����%q���U����T���a��
T�����+��
���������%�C�
���������&��CC�
�����
����	����C�
����������T���
������T���-��UNCNTTHISFORM
LOCKSCREENTHISPARENT	LSTSOURCE	LISTCOUNTSELECTEDLSTSELECTEDADDITEMLIST
REMOVEITEMClick,��1q����a��1AA�1�)�_initialresize Is this the first time the controls are being adjusted?
initialformheight
initialformwidth
*adjustcontrols Call from resize event of a form to adjust the placement and size of contained objects.
*addtoarray 
*setsize 
*loopthroughcontrols 
*reset Resets the Timer control so that it starts counting from 0.
^acontrolstats[1,5] 
�PROCEDURE Click
LOCAL nCnt
THISFORM.LockScreen = .T.
* The ListCount value changes whenever the RemoveItem method is called
nCnt = 1
DO WHILE m.nCnt <= THIS.Parent.lstSource.ListCount
	IF THIS.Parent.lstSource.Selected(m.nCnt)
		THIS.Parent.lstSelected.AddItem(THIS.Parent.lstSource.List(m.nCnt))
		THIS.Parent.lstSource.RemoveItem(m.nCnt)
	ELSE
		nCnt = m.nCnt + 1
	ENDIF
ENDDO
THISFORM.LockScreen = .F.
ENDPROC
�Top = 2
Left = 186
Height = 25
Width = 37
FontBold = .T.
FontName = "Courier New"
FontSize = 11
Caption = ">"
TabIndex = 3
ToolTipText = "Add Selected Items"
Name = "cmdAdd"
_moverlists.cmdAdd
commandbutton	_base.vcx_commandbutton�� ��%�m!+�UB����%���?���	��;���C�������UNKEYCODE
NSHIFTALTCTRLTHISPARENT	SELECTALLy������%�����r�@%�C��������C���������n�
���	���U
NBUTTONNSHIFTNXCOORDNYCOORDTHISPARENTMOUSEX
DRAGTHRESHOLDMOUSEYDRAG<������T�������T�������UNBUTTONNSHIFTNXCOORDNYCOORDTHISPARENTMOUSEXMOUSEY=�����%�������6��������UOSOURCENXCOORDNYCOORDNAMETHISPARENTCMDADDCLICK6 ��CC������������C������UTHISPARENT	LSTSOURCEADDITEMLIST	LISTINDEX
REMOVEITEMu������
H� �n������G�T�������������n�T���������U	OSOURCENXCOORDNYCOORDNSTATEDRAGICONTHISPARENTCANDROPICON
NODROPICONKeyPress,��	MouseMove���	MouseDownw��DragDrop���DblClickw��DragOver���1��AA21�AA31113�qA3131�aaA2���
�"A��"A#)PROCEDURE KeyPress
LPARAMETERS nKeyCode, nShiftAltCtrl
IF nKeyCode = 63 AND nShiftAltCtrl = 1
	THIS.Parent.SelectAll(THIS)
ENDIF
ENDPROC
PROCEDURE MouseMove
LPARAMETERS nButton, nShift, nXCoord, nYCoord
IF nButton = 1 && Left Mouse
	IF ABS(nXCoord - THIS.Parent.MouseX) > THIS.Parent.DragThreshold OR ;
			ABS(nYCoord - THIS.Parent.MouseY) > THIS.Parent.DragThreshold
		THIS.Drag
	ENDIF
ENDIF

ENDPROC
PROCEDURE MouseDown
LPARAMETERS nButton, nShift, nXCoord, nYCoord
THIS.Parent.MouseX = nXCoord
THIS.Parent.MouseY = nYCoord

ENDPROC
PROCEDURE DragDrop
LPARAMETERS oSource, nXCoord, nYCoord
IF oSource.Name != THIS.Name
	THIS.Parent.cmdAdd.Click
ENDIF

ENDPROC
PROCEDURE DblClick
THIS.Parent.lstSource.AddItem(This.List(This.ListIndex))
This.RemoveItem(This.ListIndex)

ENDPROC
PROCEDURE DragOver
LPARAMETERS oSource, nXCoord, nYCoord, nState
DO CASE
	CASE nState = 0 && Enter
		oSource.DragIcon = THIS.Parent.CanDropIcon
	CASE nState = 1 && Leave
		oSource.DragIcon = THIS.Parent.NoDropIcon
ENDCASE

ENDPROC
UDragMode = 0
DragIcon = grid\
FontBold = .F.
FontName = "MS Sans Serif"
FontSize = 8
ColumnCount = 0
ColumnWidths = ""
RowSourceType = 0
RowSource = ""
ControlSource = ""
FirstElement = 1
Height = 132
Left = 240
MoverBars = .T.
MultiSelect = .T.
NumberOfElements = 0
TabIndex = 2
Top = 0
Width = 169
Name = "lstSelected"
_moverlists.lstSelectedlistbox	_base.vcx_listbox_moverlists.	lstSourcelistbox	_base.vcx�Top = 98
Left = 10
Height = 21
Width = 218
FontName = "MS Sans Serif"
FontSize = 8
Caption = "\<Create project directory structure"
Value = .T.
TabIndex = 6
Name = "chkCreateProjDir"
checkboxcheckbox�Top = 68
Left = 260
Height = 23
Width = 66
FontName = "MS Sans Serif"
FontSize = 8
Caption = "Bro\<wse..."
TabIndex = 5
Name = "cmdProjectFile"
_folder.cmdProjectFile
commandbutton
commandbutton_folder.$�� �7%�r!0�UB����%���?���	��;���C�������UNKEYCODE
NSHIFTALTCTRLTHISPARENT	SELECTALLy������%�����r�@%�C��������C���������n�
���	���U
NBUTTONNSHIFTNXCOORDNYCOORDTHISPARENTMOUSEX
DRAGTHRESHOLDMOUSEYDRAG<������T�������T�������UNBUTTONNSHIFTNXCOORDNYCOORDTHISPARENTMOUSEXMOUSEY=�����%�������6��������UOSOURCENXCOORDNYCOORDNAMETHISPARENT	CMDREMOVECLICK6 ��CC������������C������UTHISPARENTLSTSELECTEDADDITEMLIST	LISTINDEX
REMOVEITEMu������
H� �n������G�T�������������n�T���������U	OSOURCENXCOORDNYCOORDNSTATEDRAGICONTHISPARENTCANDROPICON
NODROPICONKeyPress,��	MouseMove���	MouseDownw��DragDrop���DblClickz��DragOver���1��AA21�AA31113�qA3131�aaA3���
�"A��'F#)_listbox	container	_base.vcxG�� ..�	%f���U}���T��C�������*%�C��
�CC���@���
	��v�T��������T���������U
LCPROJECTFILETHISPARENTTXTPROJECTFILEVALUECEXT�����T��CC�3@��%�C����-�B��T��CC��������%�C����v�T��CC��������� %�CC���@���
����T���������T���������ULCDIRECTORY
LCPROJECTFILETHISPARENTTXTPROJECTFILEVALUETXTPROJECTNAMECEXT T���C�����
��UTHISENABLEDPARENTTXTPROJECTNAMEVALUEValid,��Click���Refresh��1q��qaA3���AA���AqA�3�2:�M).XPROCEDURE Valid
LOCAL lcProjectFile

lcProjectFile=ALLTRIM(this.parent.txtProjectFile.Value)
IF NOT EMPTY(lcProjectFile) AND NOT LOWER(RIGHTC(lcProjectFile,4))==THIS.PARENT.cExt
	lcProjectFile=lcProjectFile+THIS.PARENT.cExt
	this.parent.txtProjectFile.Value=lcProjectFile
ENDIF

ENDPROC
PROCEDURE Click
LOCAL lcDirectory,lcProjectFile

lcDirectory=LOWER(GETDIR())
IF EMPTY(lcDirectory)
	RETURN
ENDIF
lcProjectFile=JustStem(ALLTRIM(this.parent.txtProjectFile.Value))
IF EMPTY(lcProjectFile)
	lcProjectFile=JustStem(ALLTRIM(this.parent.txtProjectName.Value))
ENDIF
IF NOT LOWER(RIGHTC(lcProjectFile,4))==THIS.PARENT.cExt
	lcProjectFile=lcProjectFile+THIS.PARENT.cExt
ENDIF
this.parent.txtProjectFile.Value=lcDirectory+lcProjectFile

ENDPROC
PROCEDURE Refresh
this.Enabled=(NOT EMPTY(this.parent.txtProjectName.Value))

ENDPROC
��� oo0�%�"��U�������T������0T���?/,=;{}[]!@#$%^&*<>()+|C�" C�' ��T������T��C�����%���
����T������T���C���D���ULCVALUE
LCPROJECTFILE
LCBADCHARS
LNSELSTARTTHISSELSTARTVALUE T���C�����
��UTHISENABLEDPARENTTXTPROJECTNAMEVALUE�������T��C�����.T��CC�����	�PJX�C����6��%�C�����������	�B�C���
���0%���\�	��:�C����\����B�-���T��CCCC���곛����T��CCC��՛���%�C�\\����B�5T��C��\\�\CC����\\����6����T��CC����@��%���
��}�T�������B�CC��֡
��U
LCVALUELCEXT
LCPROJECTFILE
LCPROJECTPATHTHISVALUEPARENTCEXTTXTPROJECTNAMEINTERACTIVECHANGEInteractiveChange,��Refresh2��Valid���11a"�A3�31"��AqA�Q�QAQ!A�2Ki�
��)o�FontName = "MS Sans Serif"
FontSize = 8
Height = 22
InputMask = (REPLICATE("X",128))
Left = 10
TabIndex = 4
Top = 68
Width = 243
Name = "txtProjectFile"
txtProjectFiletextboxtextbox�FontName = "MS Sans Serif"
FontSize = 8
FontExtend = .T.
Caption = "Proj\<ect file:"
Height = 23
Left = 10
Top = 53
Width = 86
TabIndex = 3
Name = "lblProjectFile"
_folder.lblProjectFilelabellabel_folder.txtProjectName
2�� 

��%w�	I��Uh%�����C�%��C�INITIALIZE_AND_ADJUST����T���-���a���C�ADJUST�����UTHIS
INITIALRESIZELOOPTHROUGHCONTROLS������T��C�����&T���������������&T���������������&T���������������&T�����������	����ET���������CC�oControl.FontSizeb�U�����
6������������UOCONTROLNLENTHIS
ACONTROLSTATSTOPINITIALFORMHEIGHTLEFTINITIALFORMWIDTHHEIGHTWIDTHFONTSIZE�����"T�����C������"T�����C������"T�����C������$%���	�Textbox Spinner
����"T�����C�������U
OCONTROLNPOSTOPTHISFORMHEIGHTTHIS
ACONTROLSTATSLEFTWIDTH	BASECLASS������������T��C�f��T��C�DECIMALv��G
(����
T�����T���a����
����(���	����T��C�
���
���%����pCommandbutton Combobox Checkbox Listbox Form Grid Textbox Label Shape Editbox Olecontrol Pageframe Image Spinner����T������
H�B���&���INITIALIZE_AND_ADJUST������C���
����C���������ADJUST������C��������'%�C�
���
��	Pageframe����&��
����(�C�
���
�����!��C�
�C�
���
�������
����(��	�����%�C�
���
��pCommandbutton Combobox Checkbox Listbox Form Grid Textbox Label Shape Editbox Olecontrol Pageframe Image Spinner����T������
H�����&���INITIALIZE_AND_ADJUST��N���CC�
��
��
����CC�
��
��������ADJUST������CC�
��
����������������T���-��G
(����UCTASKNOLDDECIMALNPOSIJKOCONTROLTHISFORM
LOCKSCREENCONTROLCOUNTCONTROLS	BASECLASSTHIS
ADDTOARRAYSETSIZE	PAGECOUNTPAGES'T���a�����������UTHIS
INITIALRESIZE
ACONTROLSTATS)T�������T�������UTHISINITIALFORMHEIGHTTHISFORMHEIGHTINITIALFORMWIDTHWIDTHadjustcontrols,��
addtoarray���setsizeQ��loopthroughcontrolsg��reset���Init��1Q��aA2qqQaaaaQ�3�!!!A!A3q��b����qA�aQqQAArb���a��q�AAAAAAA��2�a2111���	�<�	C�	4
TFO
�
X)
	_base.vcx�PROCEDURE InteractiveChange
LOCAL lcValue,lcProjectFile,lcBadChars,lnSelStart

lnSelStart=this.SelStart
lcBadChars="?/,=;{}[]!@#$%^&*<>()+|"+CHR(34)+CHR(39)
lcValue=this.Value
lcProjectFile=CHRTRANC(lcValue,lcBadChars,"")

IF NOT lcValue=lcProjectFile
	this.Value=lcProjectFile
	this.SelStart=MAX(lnSelStart-1,0)
ENDIF

ENDPROC
PROCEDURE Refresh
this.Enabled=(NOT EMPTY(this.parent.txtProjectName.Value))

ENDPROC
PROCEDURE Valid
LOCAL lcValue,lcExt,lcProjectFile,lcProjectPath

lcValue=ALLTRIM(this.Value)
lcExt = IIF(EMPTY(THIS.PARENT.cExt),"PJX",ALLTRIM(THIS.PARENT.cExt))
IF EMPTY(lcValue)
	this.parent.txtProjectName.InteractiveChange
	RETURN (NOT EMPTY(this.Value))
ENDIF
IF lcValue=="\" OR lcValue==":" OR RIGHTC(lcValue,1)=="\"
	RETURN .F.
ENDIF

lcProjectFile=FORCEEXT(ALLTRIM(LEFTC(JUSTSTEM(lcValue),16)),lcExt)
lcProjectPath=ADDBS(ALLTRIM(JUSTPATH(lcValue)))

* check for invalid path (also handle network drives)
IF RATC("\\",lcProjectPath)>1
	lcProjectPath=STRTRAN(lcProjectPath,"\\","\",IIF(LEFTC(lcValue,2)="\\",2,1))
ENDIF
lcProjectFile=LOWER(FORCEPATH(lcProjectFile,lcProjectPath))
IF NOT lcValue==lcProjectFile
	this.Value=lcProjectFile
ENDIF

RETURN NOT EMPTY(JustStem(lcValue))

ENDPROC
�� ���(%PBD��U[����>%�CC� �?/\,=:;{}[]!@#$%^&*.<>()+|C�" C�' ���T���B�-���UNKEYCODE
NSHIFTALTCTRL����T��C�����*%��:��	�\��	�.���X�T���CC������"%�C���C�����
	����T�����������T�������ULCVALUETHISVALUEPARENTTXTPROJECTFILECLASTPROJECTFILE�����������4T��� ?/\,=:;{}[]!@#$%^&*.<>()+|C�" C�' ��%�C���	�����"T��CC��������
��
T�����T��CC��������%�C�����T��CC�]C�@��%��CC�Q@���T��CC�]�\@����%��\�
��.�T���\����#T��CCCC������긛��T��C�\���%�����'�!T��CC�C��C��F굛��%�C����\����T��CC�C��곛���%�C�@C�@��#�T��C�\���'T��CC���곛�\��\����&%��:�
�C����\\	��f�T��CC�]@����%�C����:\����T�����\��� %�CC���@���

����T������
���T����������������������ULCPROJECTDIR
LCPROJECTDIR2
LCPROJECTDIR3
LCPROJECTFILELCPROJECTFILE2
LCBADCHARSLNATPOSTHISPARENTCLASTPROJECTFILETRIMFILETXTPROJECTFILEVALUECEXTREFRESHCMDPROJECTFILE

����UTHISINTERACTIVECHANGEc���T��C�������%�CC���@CC���@��I�
T������T�������U
LCPROJECTFILETHISPARENTTXTPROJECTFILEVALUECLASTPROJECTFILEKeyPress,��Valid���InteractiveChange���ProgrammaticChangey��GotFocus���1��AqA3q"�QA!�A13q�BQ!���A1aAA1!A1A��AQAqAAaQA�aAqA�A3�3q���A12���
,;UmD=�`	H)��FontName = "MS Sans Serif"
FontSize = 8
Height = 22
InputMask = (REPLICATE("X",128))
Left = 10
TabIndex = 2
Top = 23
Width = 315
Name = "txtProjectName"
textboxtextbox�FontName = "MS Sans Serif"
FontSize = 8
Caption = "P\<roject name:"
Height = 23
Left = 10
Top = 8
Width = 98
TabIndex = 1
Name = "lblProjectName"
_folder.lblProjectNamelabellabel`clastprojectfile
cext
lrelease
*trimfile 
*release Releases a FormSet or Form from memory.
CPROCEDURE trimfile
LPARAMETERS tcFileName
LOCAL lcFileName,lnAtPos
lnAtPos=RATC("\",tcFileName)
lcFileName=ALLTRIM(IIF(lnAtPos=0,tcFileName,LEFTC(tcFileName,lnAtPos)))
RETURN LOWER(lcFileName)

ENDPROC
PROCEDURE release
IF this.lRelease
	NODEFAULT
	RETURN .F.
ENDIF
this.lRelease=.T.
RELEASE this

ENDPROC
%PROCEDURE KeyPress
LPARAMETERS nKeyCode, nShiftAltCtrl
IF nKeyCode = 63 AND nShiftAltCtrl = 1
	THIS.Parent.SelectAll(THIS)
ENDIF
ENDPROC
PROCEDURE MouseMove
LPARAMETERS nButton, nShift, nXCoord, nYCoord
IF nButton = 1 && Left Mouse
	IF ABS(nXCoord - THIS.Parent.MouseX) > THIS.Parent.DragThreshold OR ;
			ABS(nYCoord - THIS.Parent.MouseY) > THIS.Parent.DragThreshold
		THIS.Drag
	ENDIF
ENDIF

ENDPROC
PROCEDURE MouseDown
LPARAMETERS nButton, nShift, nXCoord, nYCoord
THIS.Parent.MouseX = nXCoord
THIS.Parent.MouseY = nYCoord

ENDPROC
PROCEDURE DragDrop
LPARAMETERS oSource, nXCoord, nYCoord
IF oSource.Name != THIS.Name
	THIS.Parent.cmdRemove.Click
ENDIF

ENDPROC
PROCEDURE DblClick
THIS.Parent.lstSelected.AddItem(This.List(This.ListIndex))
This.RemoveItem(This.ListIndex)

ENDPROC
PROCEDURE DragOver
LPARAMETERS oSource, nXCoord, nYCoord, nState
DO CASE
	CASE nState = 0 && Enter
		oSource.DragIcon = THIS.Parent.CanDropIcon
	CASE nState = 1 && Leave
		oSource.DragIcon = THIS.Parent.NoDropIcon
ENDCASE


ENDPROC
�Width = 409
Height = 132
BackStyle = 0
BorderWidth = 0
mousex = 0
mousey = 0
candropicon = DRAGMOVE.CUR
nodropicon = NODROP01.CUR
dragthreshold = 8
Name = "_moverlists"
`Width = 336
Height = 125
BorderWidth = 0
clastprojectfile = 
cext = .pjx
Name = "_folder"
.DragMode = 0
DragIcon = grid\
FontBold = .F.
FontName = "MS Sans Serif"
FontSize = 8
ColumnCount = 0
ColumnWidths = ""
RowSourceType = 0
RowSource = ""
ControlSource = ""
Height = 132
Left = 0
MultiSelect = .T.
NumberOfElements = 0
TabIndex = 1
Top = 0
Width = 169
Name = "lstSource"
�mousex Stores x coordinate of mouse pointer position.
mousey Stores y coordinate of mouse pointer position.
candropicon Cursor when dropping is okay.
nodropicon Cursor when dropping is not okay.
dragthreshold Number of pixels a user has to move the mouse with the left mouse button down for the drag method to be called.
*selectall Selects all items in the listbox passed in as a parameter.
��� ��>�%�3
�UC�����������(�����<�T������a����UOLISTLNCNT	LISTCOUNTSELECTED/T��������T��������UTHIS	LSTSOURCEDRAGICONCANDROPICONLSTSELECTED	selectall,��Init���1qq�AA2aa2{��)�
�PROCEDURE adjustcontrols
IF THIS.InitialResize
	THIS.LoopThroughControls("INITIALIZE_AND_ADJUST")
	THIS.InitialResize = .F.
ELSE
	THIS.LoopThroughControls("ADJUST")
ENDIF
ENDPROC
PROCEDURE addtoarray
LPARAMETERS oControl
LOCAL nLen
nLen = ALEN(THIS.aControlStats,1)
THIS.aControlStats[nLen,1] = oControl.Top / THIS.InitialFormHeight
THIS.aControlStats[nLen,2] = oControl.Left / THIS.InitialFormWidth
THIS.aControlStats[nLen,3] = oControl.Height / THIS.InitialFormHeight
THIS.aControlStats[nLen,4] = oControl.Width / THIS.InitialFormWidth
THIS.aControlStats[nLen,5] = IIF(TYPE("oControl.FontSize") = 'U', 0, oControl.FontSize)
DIMENSION THIS.aControlStats[nLen+1, 5]

ENDPROC
PROCEDURE setsize
LPARAMETERS oControl, nPos
oControl.Top = THISFORM.Height * THIS.aControlStats[nPos,1]
oControl.Left = THISFORM.Width * THIS.aControlStats[nPos,2]
oControl.Width = THISFORM.Width * THIS.aControlStats[nPos,4]
IF !oControl.Baseclass $ "Textbox Spinner"
	oControl.Height = THISFORM.Height * THIS.aControlStats[nPos,3]
ENDIF

ENDPROC
PROCEDURE loopthroughcontrols
LPARAMETERS cTask
* Valid parameters for cTask are 'Initialize_And_Adjust' and 'Adjust'

LOCAL nOldDecimal, nPos, i, j, k, oControl 

cTask = UPPER(cTask)

nOldDecimal = SET("DECIMAL")
SET DECIMAL TO 4

#define BASE_CLASS "Commandbutton Combobox Checkbox Listbox Form Grid Textbox Label Shape Editbox Olecontrol Pageframe Image Spinner"

nPos = 0
THISFORM.LockScreen = .T.
FOR m.i = 1 TO THISFORM.ControlCount
	oControl = THISFORM.Controls[m.i]
	IF oControl.Baseclass$BASE_CLASS
		nPos = nPos + 1
		DO CASE
			CASE cTask = 'INITIALIZE_AND_ADJUST'
				THIS.AddToArray(oControl)
				THIS.SetSize(oControl, nPos)
			CASE cTask = 'ADJUST'
				THIS.SetSize(oControl, nPos)
		ENDCASE
	ENDIF
	*A pageframe can contain only pages
	IF THISFORM.Controls[m.i].Baseclass$"Pageframe"
		*Loop through each page of the pageframe
		FOR m.j = 1 TO THISFORM.Controls[m.i].PageCount
			WITH THISFORM.Controls[m.i].pages[m.j]
				*loop through all the controls on the page
				FOR m.k = 1 TO .ControlCount
					IF .Controls[m.k].Baseclass$BASE_CLASS
						nPos = nPos + 1
						DO CASE
							CASE cTask = 'INITIALIZE_AND_ADJUST'
								THIS.AddToArray(.Controls[m.k])
								THIS.SetSize(.Controls[m.k], nPos)
							CASE cTask = 'ADJUST'
								THIS.SetSize(.Controls[m.k], nPos)
						ENDCASE
					ENDIF
				ENDFOR
			ENDWITH
		ENDFOR
	ENDIF			
ENDFOR

THISFORM.LockScreen = .F.
SET DECIMAL TO nOldDecimal
ENDPROC
PROCEDURE reset
THIS.InitialResize = .T.
DIMENSION THIS.aControlStats[1,5]
ENDPROC
PROCEDURE Init
THIS.InitialFormHeight = THISFORM.Height
THIS.InitialFormWidth = THISFORM.Width
ENDPROC
	container�PROCEDURE selectall
LPARAMETERS oList
LOCAL lnCnt
FOR lnCnt = 1 to oList.ListCount
	oList.Selected(lnCnt) = .T.
ENDFOR
ENDPROC
PROCEDURE Init
This.lstSource.DragIcon = This.CanDropIcon
This.lstSelected.DragIcon = This.CanDropIcon

ENDPROC
	kPROCEDURE KeyPress
LPARAMETERS nKeyCode, nShiftAltCtrl

IF AT(CHR(nKeyCode),"?/\,=:;{}[]!@#$%^&*.<>()+|"+CHR(34)+CHR(39))>0
	NODEFAULT
	RETURN .F.
ENDIF

ENDPROC
PROCEDURE Valid
LOCAL lcValue

lcValue=ALLTRIM(this.Value)
IF ":"$lcValue OR "\"$lcValue OR "."$lcValue
	this.Value=JustStem(ALLTRIM(lcValue))
ENDIF
IF EMPTY(lcValue) AND NOT EMPTY(this.parent.txtProjectFile.Value)
	this.parent.txtProjectFile.Value=THIS.Parent.cLastProjectFile
ENDIF
THIS.Parent.cLastProjectFile=""

ENDPROC
PROCEDURE InteractiveChange
LOCAL lcProjectDir,lcProjectDir2,lcProjectDir3,lcProjectFile,lcProjectFile2
LOCAL lcBadChars,lnAtPos

lcBadChars=" ?/\,=:;{}[]!@#$%^&*.<>()+|"+CHR(34)+CHR(39)
IF EMPTY(this.parent.cLastProjectFile)
	lcProjectDir=THIS.Parent.TrimFile(ALLTRIM(this.parent.txtProjectFile.Value))
	lcProjectDir3=lcProjectDir
	lcProjectFile2=JustStem(ALLTRIM(this.parent.txtProjectFile.Value))
	IF EMPTY(lcProjectDir)
		lcProjectDir=LOWER(SYS(5)+CURDIR())
		IF lcProjectDir==LOWER(HOME())
			lcProjectDir=LOWER(SYS(5)+"\")
		ENDIF
	ENDIF
	IF NOT "\"$lcProjectDir
		lcProjectDir="\"+lcProjectDir
	ENDIF
	lcProjectFile=ALLTRIM(CHRTRANC(LEFTC(ALLTRIM(this.Value),16),lcBadChars,""))
	lnAtPos=AT_C("\",lcProjectDir)
	IF lnAtPos>0
		lcProjectDir2=ALLTRIM(SUBSTRC(lcProjectDir,MIN(lnAtPos+1,LENC(lcProjectDir))))
		IF RIGHTC(lcProjectDir2,1)=="\"
			lcProjectDir2=ALLTRIM(LEFTC(lcProjectDir2,LENC(lcProjectDir2)-1))
		ENDIF
		IF LOWER(lcProjectDir2)==LOWER(lcProjectFile2)
			lnAtPos=AT_C("\",lcProjectDir3)
			lcProjectDir=ALLTRIM(LEFTC(lcProjectDir3,lnAtPos-1))+"\"+lcProjectFile+"\"
		ENDIF
	ENDIF
	IF NOT ":"$lcProjectDir AND LEFTC(lcProjectDir,2)#"\\"
		lcProjectDir=LOWER(SYS(5))+lcProjectDir
	ENDIF
	IF RIGHTC(lcProjectDir,2)==":\"
		lcProjectDir=lcProjectDir+lcProjectFile+"\"
	ENDIF
	IF NOT LOWER(RIGHTC(lcProjectFile,4))==THIS.PARENT.cExt
		lcProjectFile=lcProjectFile+THIS.PARENT.cExt
	ENDIF
	this.parent.txtProjectFile.Value=lcProjectDir+lcProjectFile
ENDIF
this.parent.txtProjectFile.Refresh
this.parent.cmdProjectFile.Refresh

ENDPROC
PROCEDURE ProgrammaticChange
this.InteractiveChange

ENDPROC
PROCEDURE GotFocus
LOCAL lcProjectFile

lcProjectFile=ALLTRIM(this.parent.txtProjectFile.Value)
IF LOWER(JustStem(lcProjectFile))=LOWER(ALLTRIM(this.Value))
	lcProjectFile=""
ENDIF
this.parent.cLastProjectFile=lcProjectFile

ENDPROC
��� ����%�6�U[�������T��C�\���'T��CC�����	C���6���B�C�@��U
TCFILENAME
LCFILENAMELNATPOS7%��������B�-���T���a��<��UTHISLRELEASEtrimfile,��release���1q�Aq�3AqA�q2��8	)�