Mini Kabibi Habibi

Current Path : C:/Users/ITO/Desktop/VF9/program files/microsoft visual foxpro 9/
Upload File :
Current File : C:/Users/ITO/Desktop/VF9/program files/microsoft visual foxpro 9/foxcode.fpt

�@RESERVEDCheckBoxRESERVEDColumnRESERVEDComboBoxRESERVED
CommandButtonRESERVEDCommandGroupRESERVED	ContainerRESERVEDControlRESERVEDCursorRESERVEDCustomRESERVEDDataEnvironmentRESERVEDEditBoxRESERVEDFormRESERVEDFormSetRESERVEDGridRESERVED	HyperLinkRESERVEDImageRESERVEDLabelRESERVEDLineRESERVEDListBoxRESERVEDOptionButtonRESERVEDOptionGroupRESERVEDPageRESERVED	PageFrameRESERVEDProjectHookRESERVEDRelationRESERVED	SeparatorRESERVEDSessionRESERVEDShapeRESERVEDSpinnerRESERVEDTextBoxRESERVEDTimerRESERVEDToolbarRESERVEDByteRESERVEDBooleanRESERVEDIntegerRESERVEDLongRESERVEDCurrencyRESERVEDSingleRESERVEDDoubleRESERVEDDecimalRESERVEDDateRESERVEDStringRESERVEDObjectRESERVEDVariantRESERVEDVOIDRESERVEDShortRESERVEDDatetimeRESERVEDNumberRESERVEDCharacter               RESERVEDHeader                  RESERVEDCollection              RESERVEDException               RESERVEDCursorAdapter           RESERVEDLogicalRESERVED
XMLAdapterRESERVEDXMLTableRESERVEDXMLField                RESERVEDXML Web Service         RESERVEDReportListener RESERVEDArrayName, oExpressionRESERVEDArrayName, cSetting2,ADBORESERVED�ADOCKSTATE() Parameter:

0 - returns all windows
1 - returns only IDE windows
2 - returns only toolbars
3 - returns only docking formsRESERVED}ADOCKSTATE() Parameter:

0 - returns a four-element array for forms and toolbars
1 - returns a six-element array for formsRESERVED	ArrayNameRESERVED5ArrayName [, cFileSkeleton [, cAttribute [, nFlags]]]3,ADIR
4,ADIRTIP,TRESERVED�ADIR() nFlags Parameter (additive):

1 - File name returned is with capitalization on disk (default is UPPERCASE)
2 - Return short file name (DOS 8.3)RESERVED!ArrayName [, nType [, nExtended]]2,ADOCKTIP,T
3,ADOCKTIP2,TRESERVED	ArrayNameRESERVED!arrayname, [0 | 1 | oEventObject]RESERVEDSAFONT() nFlags Parameter:

1 - Treat 3rd parameter as a font character set value.RESERVED%ArrayName [, nWorkArea | cTableAlias]RESERVED?ArrayName [, cFontName [, nFontSize | nFontCharSet [, nFlags]]]4,AFONTTIP,TRESERVED`ArrayName [, cLibraryName [, cClassName [, cTitleText [, cFileNameCaption [, cButtonCaption]]]]]RESERVEDArrayName, cFileNameRESERVEDArrayName, cClassNameRESERVED�ALINES nFlags Parameter (additive):

1 -  removes leading and trailing spaces from lines, or for Varbinary and Blob values, removes trailing zeroes (0s) instead of spaces (formerly lTrim parameter in VFP8)
2 - include last element in array even if empty due to cParseChar
4 - do not include empty elements in array
8 - case insensitive parsing
16 - include cParseChar with array element (at the end)
RESERVEDArrayName, nType2,ALANRESERVED/ArrayName, cExpression [, nFlags][, cParseChar]
3,ALINESTIP,TRESERVEDBArrayName, ObjectName | cClassName [, nArrayContentsID [, cFlags]]!3,AMEMBERSTIP2,T
4,AMEMBERSTIP,TRESERVEDArrayName [, 1]RESERVED&ArrayName, cNetworkName, nResourceTypeRESERVEDArrayName [,1]RESERVED!ArrayName, cProgramName [, nType]RESERVEDArrayName [, nStatementHandle]RESERVEDArrayName [, 1 | 2 | 3]2,ASELOBJTIP,TRESERVED	ArrayNameRESERVED2ArrayName [, cCDXName [, nWorkArea | cTableAlias]]RESERVED/ArrayName [, nDataSessionNumber [, cTableName]]RESERVEDArrayName, cLibraryNameRESERVEDnExpressionRESERVEDgSourceArrayName, DestinationArrayName [, nFirstSourceElement [, nNumberElements [, nFirstDestElement]]]RESERVEDnExpressionRESERVED$oObjectName, cPropertyName [,eValue]RESERVEDcPathRESERVEDArrayName, nElementNumber [, 2]RESERVED	ArrayNameRESERVED-ArrayName, nRowSubscript [, nColumnSubscript]RESERVEDArrayName, nElementNumber [, 2]RESERVEDArrayName [, nArrayAttribute]2,ALENTIP,TRESERVED�ALEN() nArrayAttribute Parameter:

0 - returns the number of elements in the array (default)
1 - returns the number of rows in the array
2 - returns the number of columns in the arrayRESERVED[nWorkArea | cTableAlias]RESERVED$cExpression [, nFlags][, cParseChar]2,TRIMTIP,TRESERVED�AMEMBERS() cFlags Parameter:

P - Protected
H - Hidden
G - Public
N - Native
U - User defined
C - Changed
I - Inherited
B - Base
R - Read only

# - Add new column with flags
+ - Logical AND between flagsRESERVED�AMEMBERS parameter tip:

0 - Specifies that the array contains a single column of property names (default).
1 - Specifies that the array contains the properties, methods, events and member objects.
2 - Specifies that the array contains just the member objects of the object reference passed.
3 - Specifies that the array contains the properties, methods, events and member objects of the passed COM or native VFP object.RESERVEDcExpressionRESERVED]ArrayName, eExpression [, nStartElement [, nElementsSearched [, nSearchColumn [, nFlags]]]]
6,ASCANTIP,TRESERVED�ASCAN() nFlags Parameter (additive):

1 - Case insensitive
2 - Exactness setting (ON) when overriding system value (see next flag)
4 - Override system SET EXACT setting
8 - Return row number if 2D arrayRESERVEDRASELOBJ parameter tip:

1 - Creates an array containing an object reference to the container for the currently selected control.
2 - Creates an array containing an object reference to the DataEnvironment object for the form.
3 - Creates an array containing an object reference to the container for the currently selected code snippet.RESERVED	ArrayNameRESERVEDnExpressionRESERVEDGArrayName [, nStartElement [, nNumberSorted [, nSortOrder [, nFlags]]]]4,ASORTTIP2,T
5,ASORTTIP,TRESERVEDEASORT() nFlags Parameter:

0 - Case sensitive
1 - Case insensitiveRESERVEDHASORT() nSortOrder Parameter:

0 - Sort ascending
1 - Sort descendingRESERVED%ArrayName, nElementNumber, nSubscriptRESERVED6cSearchExpression, cExpressionSearched [, nOccurrence]RESERVED6cSearchExpression, cExpressionSearched [, nOccurrence]RESERVEDnExpressionRESERVED6cSearchExpression, cExpressionSearched [, nOccurrence]RESERVED6cSearchExpression, cExpressionSearched [, nOccurrence]RESERVED&cSearchExpression, cExpressionSearchedRESERVED&cSearchExpression, cExpressionSearchedRESERVEDnYCoordinate, nXCoordinateRESERVEDeExpression RESERVEDBINDEVENT() nFlags Parameter (additive):

1 - Call event before delegate
2 - Do not allow an event  to be triggered with a simple method call *
4 - Only allow user code to execute (prevent recursion of Win Msg event)

* Note: certain native events may not work with this flag set.RESERVED�BINTOC() Parameter:

1 - size of result is 1 byte. nExpr is integer.
2  - size of result is 2 bytes. nExpr is integer.
4 - size of result is 4 bytes . nExpr is integer (default).
8  - size of result is 8 bytes. nExpr is numeric, double, or currency.
F - nExpr is interpreted as float and returns 4 byte binary.
B - nExpr is interpreted as double and returns 8 byte binary.
R - reverse the binary string. *
S - do not toggle the sign bit (XOR). *

* Settings are additiveRESERVED RESERVED!eTestValue, eLowValue, eHighValueRESERVEDnExpression [, eFlags]2, BINTOCTIP, TRESERVEDOoEventSource | hWnd | 0, eEvent | nMessage, oEventHandler, cDelegate [, nFlags]5,BINDEVENTTIP,TRESERVED-nExpression1, nExpression2, ..., nExpressionNRESERVEDnExpression1, nExpression2RESERVEDnExpression1, nExpression2RESERVEDnExpressionRESERVED-nExpression1, nExpression2, ..., nExpressionNRESERVEDnExpression1, nExpression2RESERVEDnExpression1, nExpression2RESERVEDnExpression1, nExpression2RESERVED-nExpression1, nExpression2, ..., nExpressionNRESERVED[nWorkArea | cTableAlias]RESERVED�COMARRAY() nFlags Parameter (additive):

1 - The array is one based.
10 - The array is passed by reference.
100 - The array is a fixed size array and cannot be redimensioned.
1000 - Don't convert byte array to string.RESERVED�COMPROP() cProperty Parameter:

UTF8 - Determines whether UNICODE strings returned from a COM object are converted to ANSI. Conversion is done by default.

PUTREF - Determines if initial object assignment is PROPERTY_PUT (Default) or PROPERTY_PUTREF.RESERVED�CTOBIN() Parameter:

1 - size of binary is 1 byte.
2  - size of binaryis 2 bytes.
4 - size of binaryis 4 bytes.
8  - size of binary is 8 bytes.
N - Y - size of binary is 4 or 8 bytes. Evaluates as Numeric type.
Y - size of binary is 8 bytes. Evaluates as Currency type.
B - size of binary is 8 bytes. Evaluates as Double type.
R - reverse the binary string. *
S - do not toggle the sign bit (XOR). *

* Settings are additiveRESERVEDcExpression [, cFlags]
2,CTOBINTIP,TRESERVED*[nIndexNumber [, nWorkArea | cTableAlias]]RESERVED
[lExpression]RESERVEDIeExpression AS cDataType [(nFieldWidth [, nPrecision])] [NULL | NOT NULL]RESERVEDdExpression | tExpressionRESERVED(nIndexNumber [, nWorkArea | cTableAlias]RESERVEDnExpressionRESERVED	nANSICodeRESERVED
[nSeconds]RESERVED>cSearchedExpression, cSearchExpression, cReplacementExpressionRESERVED>cSearchedExpression, cSearchExpression, cReplacementExpressionRESERVEDRESERVEDdExpression | tExpressionRESERVEDeExpression RESERVED	cMenuNameRESERVEDcMenuBarNameRESERVEDoObject [, nFlags]2, COMARRAYTIP, TRESERVEDoObject [, nInfoType]2,COMCRESERVED cExceptionSource, cExceptionTextRESERVEDoExpression1, oExpression2RESERVED oCOMObject, cProperty [, eValue]2,COMPROPTIP,TRESERVEDnExpressionRESERVEDeExpression RESERVED+nCurrentCodePage, nNewCodePage, cExpressionRESERVED[1 | 2]RESERVED[nWorkArea | cTableAlias]RESERVEDcExpressionRESERVED,cClassName [, eParameter1, eParameter2, ...]RESERVED(cCLSID | cPROGID, cComputerName [, cIID]RESERVEDViewName [, cPath]RESERVEDcExpressionRESERVEDcCharacterExpressionRESERVED
[cExpression]RESERVED%cProperty [, nWorkArea | cTableAlias]RESERVED5cProperty [, eExpression [, cTableAlias | nWorkArea]]RESERVED}nWorkArea | cTableAlias, cOutput [, nOutputFormat [, nFlags [, nRecords [, cSchemaName [, cSchemaLocation [, cNameSpace]]]]]]13,XMLTIP,T
4,XMLTIP3,T
5,XMLTIP6,T
6,XMLTIP2,TRESERVED'cExpression [, cTableAlias | nWorkArea]RESERVEDRESERVEDcName, cType, cProperty1,DBGETRESERVED'cName, cType, cProperty, ePropertyValue1,DBGETRESERVED
cDatabaseNameRESERVEDnTransactionNumberRESERVED.nChannelNumber, cItemName, cUDFName, nLinkTypeRESERVED0[lExpression1 | nChannelNumber [, lExpression2]]RESERVED%nChannelNumber, cCommand [, cUDFName]RESERVEDcServiceName, cTopicNameRESERVED�RESERVEDAnChannelNumber, cItemName, cDataSent [, cDataFormat [, cUDFName]]RESERVED6nChannelNumber, cItemName [, cDataFormat [, cUDFName]]RESERVED'cOption [, nTimeoutValue | lExpression]RESERVED3cServiceName, cOption [, cDataFormat | lExpression]RESERVED%cServiceName, cTopicName [, cUDFName]RESERVEDnChannelNumber | cServiceNameRESERVED�DIRECTORY() nFlags Parameter:

0 - If the directory exists, returns .F. if marked with a Hidden or System attribute (default).
1 - If the directory exists, returns .T. regardless of its attributes.RESERVED[nYear, nMonth, nDay]RESERVED:[nYear, nMonth, nDay [, nHours [, nMinutes [, nSeconds]]]]RESERVEDdExpression | tExpressionRESERVED�RESERVED[cTableAlias | nWorkArea]RESERVEDcFileName, cDefaultRESERVED[cTableAlias | nWorkArea]RESERVED:[CDXFileName [, nIndexNumber [, nWorkArea | cTableAlias]]]RESERVEDcExpression1, cExpression2RESERVEDcDirectoryName [, nFlags]
2,DIRTIP,TRESERVEDVolumeName [, nDiskInfo]]RESERVEDcFileName, nMaxLengthRESERVEDdExpression | tExpressionRESERVED![eParameter1 [, eParameter2] ...]RESERVED-dExpression | tExpression [, nFirstDayOfWeek]RESERVEDcDriveRESERVED	cViewNameRESERVEDdExpression | tExpression [, 1]RESERVEDnExpressionRESERVEDdExpression | tExpressionRESERVEDdDateExpressionRESERVED@nShortcutId | cFileName [, nLineno [, cClassName [, cProcName]]]RESERVEDeExpressionRESERVED[nWorkArea | cTableAlias]RESERVED�RESERVEDcExpressionRESERVED"oCOMObject, oVFPObject [, lUnbind]RESERVEDeExpression1, eExpression2RESERVED.cExpression [, eParameter1, eParameter2, ...] RESERVEDnExpressionRESERVEDWFCREATE() nFileAttribute Parameter (additive):

1 - Read-Only
2 - Hidden
4 - SystemRESERVED�FIELD() nFlags Parameter:

0 - Return actual field name.
1 - Return field caption. If the field caption is an expression, return its evaluated value.RESERVED�FILE() nFlags Parameter:

0 - If the file exists, returns .F. if marked with a Hidden or System attribute (default).
1 - If the file exists, returns .T. regardless of its attributes.RESERVED�FOPEN() nFileAttribute Parameter:

0 - (Default) Read-Only, Buffered
1 - Write-Only, Buffered
2 - Read-Write, Buffered
10 - Read-Only, Unbuffered
11 - Write-Only, Unbuffered
12 - Read-Write, UnbufferedRESERVED�FSEEK() nRelativePosition Parameter:

0 - (Default) The beginning of the file.
1 - The current file pointer position.
2 - The end of the file.RESERVEDnFileHandle, nNewFileSizeRESERVEDnFileHandleRESERVED[nWorkArea | cTableAlias]RESERVEDcFileName [, nFileAttribute]2,Fcreatetip,TRESERVEDcFileName [, nType]RESERVEDnFileHandleRESERVED�RESERVEDnFileHandle [, lForce]RESERVEDnFileHandle [, nBytes]RESERVED@nFieldNumber | cFieldName [, nWorkArea | cTableAlias [, nFlags]]3,FIELDTIP,TRESERVEDcFileName [, nFlags]2,FILETIP,TRESERVED	cFileNameRESERVED[nWorkArea | cTableAlias]RESERVEDnFunctionKeyNumberRESERVED�RESERVED[nWorkArea | cTableAlias]RESERVEDnExpressionRESERVED2nAttribute [, cFontName, nFontSize [, cFontStyle]]RESERVEDcFileName [, nAttribute]2,Fopentip,TRESERVED*[nIndexNumber [, nWorkArea | cTableAlias]]RESERVEDcFileName, cExtensionRESERVEDcFileName, cPathRESERVED[nWorkArea | cTableAlias]RESERVED/nFileHandle, cExpression [, nCharactersWritten]RESERVEDnFileHandle, nBytesRESERVED.nFileHandle, nBytesMoved [, nRelativePosition]3,Fseektip,TRESERVED2cFieldName [, nWorkArea | cTableAlias] | cFileNameRESERVED	cFileNameRESERVED&cFileName1 [, nMSDOSPath | cFileName2]RESERVED!nPayment, nInterestRate, nPeriodsRESERVED/nFileHandle, cExpression [, nCharactersWritten]RESERVED[nDataSessionNumber | 0]RESERVED&[nCodePage [, cText [, cDialogTitle]]]RESERVED[nDefaultColorNumber]RESERVED
[ cAlias ]RESERVED<[cDirectory [, cText [, cCaption [, nFlags [, lRootOnly]]]]]RESERVED
cVariableName�LPARAMETER oFoxcode
IF FILE(_CODESENSE)
	LOCAL eRetVal, loFoxCodeLoader
	SET PROCEDURE TO (_CODESENSE) ADDITIVE
	loFoxCodeLoader = CreateObject("FoxCodeLoader")
	eRetVal = loFoxCodeLoader.Start(m.oFoxCode)
	loFoxCodeLoader = NULL
	RELEASE PROCEDURE (_CODESENSE)
	RETURN m.eRetVal
ENDIF

DEFINE CLASS FoxCodeLoader as FoxCodeScript

	PROCEDURE Main
		IF RIGHT(THIS.oFoxcode.FullLine,1) # "("
			RETURN ""
		ENDIF

		LOCAL i, lnPtr, lnAddress, lnHandle

		THIS.lHideScriptErrors = .T.

		DECLARE integer GetModuleHandle in win32api string
		DECLARE integer GetProcAddress in win32api integer,string

		IF THIS.lHadError
			RETURN ""
		ENDIF
		
		lnHandle = GetModuleHandle("msvcrt.dll")
		IF THIS.lHadError
			RETURN ""
		ENDIF

		lnPtr = GetProcAddress(lnHandle,"_environ")
		IF lnPtr = 0 OR THIS.lHadError
			RETURN ""
		ENDIF
		
		lnPtr = THIS.Peek(lnPtr)
		IF lnPtr = 0 OR THIS.lHadError
			RETURN ""
		ENDIF

		i = 0
		DO WHILE .t.
			lnAddress = THIS.Peek(lnPtr + m.i * 4)
			IF lnAddress = 0 OR THIS.lHadError
				EXIT
			ENDIF
			i = m.i + 1
			DIMENSION THIS.oFoxcode.Items[m.i, 2]
			THIS.oFoxcode.Items[m.i, 1] = GETWORDNUM(THIS.GetStrSize(lnAddress),1,"=")
			THIS.oFoxcode.Items[m.i, 2] = GETENV(THIS.oFoxcode.Items[m.i, 1])
		ENDDO

		THIS.oFoxcode.ItemScript = "funcmenu2"
		THIS.oFoxcode.ValueType = "L"

		RETURN THIS.AdjustCase()
	ENDPROC
	
	PROCEDURE Destroy
		CLEAR DLLS GetModuleHandle
		CLEAR DLLS GetProcAddress
		DODEFAULT()
	ENDPROC

	PROCEDURE GetStrSize(nAddr as Number) as String
		LOCAL lcResult, lcChr, i
		lcResult = ""
		i = 0
		DO WHILE .t.
			lcChr = SYS(2600, m.nAddr + m.i, 1)
			IF ASC(lcChr) = 0
				EXIT
			ENDIF
			lcResult = lcResult + lcChr
			i = m.i + 1
		ENDDO
		RETURN lcResult
	ENDPROC

	PROCEDURE Peek(num as Integer) as integer
		LOCAL lcChr, lnResult
		lcChr= SYS(2600, m.num, 4)
		lnResult = THIS.Char4ToNum(lcChr)
		RETURN lnResult
	ENDPROC

	PROCEDURE Char4ToNum(cStr as String)
		LOCAL lnResult, i
		lnResult = 0
		IF VARTYPE(m.cStr)#"C" OR EMPTY(m.cStr)
			RETURN lnResult
		ENDIF
		FOR i = 0 TO 3
			lnResult = lnResult + ASC(SUBSTR(m.cStr, m.i + 1, 1)) * 256 ^ m.i
		ENDFOR
		RETURN lnResult
	ENDPROC

ENDDEFINERESERVEDW[cFileExtensions [, cText [, cOpenButtonCaption [, nButtonType [, cTitleBarCaption]]]]]RESERVED5cFieldName | nFieldNumber [, cTableAlias | nWorkArea]RESERVED9[cFontName [, nFontSize [, cFontStyle [, nFontCharSet]]]]RESERVED�RESERVED4oObject [, cIID | cInterface [, cTypelib | cProgID]]RESERVED5nRecordNumber [, cTableAlias | nWorkArea [, lNoFire]]RESERVED FileName | Moniker [, ClassName]RESERVED6oObjectName | cClassName, cProperty | cEvent | cMethodRESERVED=[cFileExtensions [, cFileNameCaption [, cOpenButtonCaption]]]RESERVED�RESERVEDRESERVEDcString [, cDelimiter]RESERVEDcString, nIndex [, cDelimiter]RESERVEDMenuItemName, nMenuPositionRESERVEDcMenuBarName, nMenuBarPositionRESERVED*dExpression | tExpression, nNumberOfMonthsRESERVED[nWorkArea | cTableAlias]RESERVED[nLocation]�LPARAMETER oFoxcode
IF FILE(_CODESENSE)
	LOCAL eRetVal, loFoxCodeLoader
	SET PROCEDURE TO (_CODESENSE) ADDITIVE
	loFoxCodeLoader = CreateObject("FoxCodeLoader")
	eRetVal = loFoxCodeLoader.Start(m.oFoxCode)
	loFoxCodeLoader = NULL
	RELEASE PROCEDURE (_CODESENSE)
	RETURN m.eRetVal
ENDIF

DEFINE CLASS FoxCodeLoader as FoxCodeScript

	PROCEDURE Main
		IF RIGHT(THIS.oFoxcode.FullLine,1) # "("
			RETURN ""	
		ENDIF
		DIMENSION THIS.oFoxcode.Items[9,2]
		WITH THIS.oFoxcode
			.Items[1,1] = '0'
			.Items[2,1] = '1'
			.Items[3,1] = '2'
			.Items[4,1] = '3'
			.Items[5,1] = '4'
			.Items[6,1] = '5'
			.Items[7,1] = '6'
			.Items[8,1] = '7'
			.Items[9,1] = '8'
		
			.Items[1,2] = 'The directory from which Visual FoxPro was started.'
			.Items[2,2] = 'The Visual FoxPro installation root directory.'
			.Items[3,2] = 'The directory containing the Visual FoxPro samples. This directory is identical to the samples directory in the _SAMPLES system variable.'
			.Items[4,2] = 'The Visual Studio Common directory.'
			.Items[5,2] = 'The Visual FoxPro Graphics directory.'
			.Items[6,2] = 'The Visual Studio MSDN directory.'
			.Items[7,2] = 'The Visual Studio Tools directory.'
			.Items[8,2] = 'The user application data directory.'
			.Items[9,2] = 'The default  directory for your Visual FoxPro projects.'
			.ValueType = "L"
		ENDWITH
			
		RETURN THIS.AdjustCase()
	ENDPROC

ENDDEFINERESERVEDtExpressionRESERVEDHlCondition1, eResult1 [, lCondition2, eResult2 ] �. [, eOtherwiseResult]RESERVED
[nExpression]RESERVED�RESERVED;[cCDXFileName [, nIndexNumber [, nWorkArea | cTableAlias]]]RESERVED'lExpression, eExpression1, eExpression2RESERVED/eExpression1, eExpression2 [, eExpression3 ...]RESERVEDcDatabaseObjectName, cType2,INDBCRESERVEDheExpression [, lMovePointer [, nWorkArea | cTableAlias [, nIndexNumber | cIDXIndexFileName | cTagName]]]RESERVED[nSeconds] [, cHideCursor]RESERVEDbcInputPrompt [, cDialogCaption [, cDefaultValue [, nTimeout [, cTimeoutValue [, cCancelValue ]]]]]RESERVED
[lExpression]RESERVEDnExpressionRESERVEDcExpressionRESERVEDeExpressionRESERVED�RESERVEDcExpressionRESERVED3[cTableAlias | nWorkArea | cDatabaseName [, nType]]RESERVED[nWorkArea | cTableAlias]RESERVED�RESERVEDcExpressionRESERVEDcExpressionRESERVED7cFieldName | nFieldNumber [,  nWorkArea | cTableAlias ]RESERVED�RESERVEDeExpressionRESERVEDRESERVED+[nRecordNumber [, nWorkArea | cTableAlias]]RESERVED[nWorkArea | cTableAlias | 0]RESERVED[nWorkArea | cAlias]RESERVEDcExpressionRESERVEDcPathRESERVEDcPathRESERVED	cFileNameRESERVED	cFileNameRESERVED	cFileNameRESERVED:[CDXFileName [, nIndexNumber [, nWorkArea | cTableAlias]]]RESERVED6eIndexKey [, nIndexNumber [, nWorkArea | cTableAlias]]RESERVED�RESERVEDcExpression, nExpressionRESERVEDcExpression, nExpressionRESERVEDcExpressionRESERVEDcExpressionRESERVEDcExpression1, cExpression2RESERVEDcExpression1, cExpression2RESERVED[1]RESERVED[cFileName]RESERVED2cFileName [, cFileExtensions [, cFileNameCaption]]RESERVEDH[nWorkArea | cTableAlias] | [cRecordNumberList, nWorkArea | cTableAlias]RESERVEDnExpressionRESERVEDnExpressionRESERVED:ReturnField, eSearchExpression, SearchedField [, cTagName]RESERVEDcExpressionRESERVED$cExpression [, nFlags][, cParseChar]2,TRIMTIP,TRESERVED[nWorkArea | cTableAlias]RESERVED[nWorkArea | cAlias]RESERVED/eExpression1, eExpression2 [, eExpression3 ...]RESERVED[cWindowName [, nScaleMode]]RESERVEDRESERVED(nIndexNumber [, nWorkArea | cTableAlias]RESERVEDdExpression | tExpressionRESERVED
MemoFieldNameRESERVED�RESERVED�RESERVED[1]RESERVED>eMessageText [, nDialogBoxType] [, cTitleBarText] [, nTimeout]
2,Msgboxtip,TRESERVED>eMessageText [, nDialogBoxType] [, cTitleBarText] [, nTimeout]
2,Msgboxtip,TRESERVED/eExpression1, eExpression2 [, eExpression3 ...]RESERVEDtExpressionRESERVED2MemoFieldName, nLineNumber [, nNumberOfCharacters]RESERVEDnDividend, nDivisorRESERVEDdExpression | tExpressionRESERVED0cMenuName, nMenuItemNumber | cSystemMenuItemNameRESERVEDcMenuBarName, cMenuTitleNameRESERVED[cWindowName [, nScaleMode]]RESERVEDfMESSAGEBOX() nDialogBoxType Parameter (additive):

 0 - OK button only
 1 - OK and Cancel buttons
 2 - Abort, Retry and Ignore buttons
 3 - Yes, No and Cancel buttons
 4 - Yes and No buttons
 5 - Retry and Cancel buttons
-------------------------------------
 16 - Stop sign
 32 - Question mark
 48 - Exclamation point
 64 - Information icon
-------------------------------------
 256 - 2nd button default
 512 - 3rd button default
-------------------------------------
 4096 - System modal (use with Timeout parameter)
 
 Return values:
 OK-1, Cancel-2, Abort-3, Retry-4, Ignore-5, Yes-6, No-7RESERVEDmExpressionRESERVED
[cWindowName]RESERVED(nIndexNumber [, nWorkArea | cTableAlias]RESERVEDOcClassName [, cModule [, cInApplication | 0 [, eParameter1, eParameter2, ...]]]RESERVEDKcClassName [, cModule [, cInApplication [, eParameter1, eParameter2, ...]]]RESERVEDcExpressionRESERVEDnExpressionRESERVED
[lExpression]RESERVEDeExpression1, eExpression2RESERVEDObjectName, nPositionRESERVED&cSearchExpression, cExpressionSearchedRESERVED'cExpression [, cTableAlias | nWorkArea]RESERVEDcONCommand [, KeyLabelName]RESERVED#[nWorkArea | cTableAlias [, nPath]]RESERVED	[nOSInfo]�LPARAMETER oFoxcode
IF FILE(_CODESENSE)
	LOCAL eRetVal, loFoxCodeLoader
	SET PROCEDURE TO (_CODESENSE) ADDITIVE
	loFoxCodeLoader = CreateObject("FoxCodeLoader")
	eRetVal = loFoxCodeLoader.Start(m.oFoxCode)
	loFoxCodeLoader = NULL
	RELEASE PROCEDURE (_CODESENSE)
	RETURN m.eRetVal
ENDIF

DEFINE CLASS FoxCodeLoader as FoxCodeScript

	PROCEDURE Main
		IF RIGHT(THIS.oFoxcode.FullLine,1) # "("
			RETURN ""	
		ENDIF
		DIMENSION THIS.oFoxcode.Items[11,2]
		THIS.oFoxcode.ItemSort = .F.
		THIS.oFoxcode.Items[1,1] = '1'
		THIS.oFoxcode.Items[2,1] = '2'
		THIS.oFoxcode.Items[3,1] = '3'
		THIS.oFoxcode.Items[4,1] = '4'
		THIS.oFoxcode.Items[5,1] = '5'
		THIS.oFoxcode.Items[6,1] = '6'
		THIS.oFoxcode.Items[7,1] = '7'
		THIS.oFoxcode.Items[8,1] = '8'
		THIS.oFoxcode.Items[9,1] = '9'
		THIS.oFoxcode.Items[10,1] = '10'
		THIS.oFoxcode.Items[11,1] = '11'
		THIS.oFoxcode.Items[1,2] = 'Specifies that the name and version number of the operating system is returned.'
		THIS.oFoxcode.Items[2,2] = 'Return the character string "DBCS" if the operating system supports double-byte character sets (DBCS). Otherwise, return an empty string.'
		THIS.oFoxcode.Items[3,2] = 'Identifies the major version number of the operating system.'
		THIS.oFoxcode.Items[4,2] = 'Identifies the minor version number of the operating system.'
		THIS.oFoxcode.Items[5,2] = 'Identifies the build number of the operating system.'
		THIS.oFoxcode.Items[6,2] = 'Identifies the operating system platform.'
		THIS.oFoxcode.Items[7,2] = 'Contains a string, such as "Service Pack 3", that indicates the latest Service Pack installed on the system.'
		THIS.oFoxcode.Items[8,2] = 'Identifies the major version number of the latest Service Pack installed on the system.'
		THIS.oFoxcode.Items[9,2] = 'Identifies the minor version number of the latest Service Pack installed on the system.'
		THIS.oFoxcode.Items[10,2] = 'A set of bit flags that identify the product suites available on the system. See help for more details.'
		THIS.oFoxcode.Items[11,2] = 'Indicates additional information about the system. See help for more details.'
		THIS.oFoxcode.ValueType = "L"		
		RETURN THIS.AdjustCase()
	ENDPROC
ENDDEFINERESERVED[cMenuTitle [, cMenuBarName]]RESERVED*eExpression, nResultSize [, cPadCharacter]RESERVED*eExpression, nResultSize [, cPadCharacter]RESERVED*eExpression, nResultSize [, cPadCharacter]RESERVED�RESERVED$nPrincipal, nInterestRate, nPaymentsRESERVED�RESERVED�RESERVEDLoObjectName | cClassName, cProperty | cEvent | cMethod | cObject, nAttribute3,PEMSRESERVED�RESERVED[cMenuName]RESERVED*[nIndexNumber [, nWorkArea | cTableAlias]]RESERVED�RESERVEDcMenuName, nMenuItemNumberRESERVEDcMenuBarName, cMenuTitleNameRESERVED[nLevel]RESERVED�RESERVEDcExpressionRESERVED�RESERVED nPrinterSetting [, cPrinterName]RESERVED/[cCustomText [, cFileName [, cFileExtensions]]]RESERVED'nPayment, nInterestRate, nTotalPaymentsRESERVED$dExpression | tExpression [, nMonth]RESERVED#oEventSource, cEvent [, eParm1,...]RESERVED[nSeedValue]RESERVED6cSearchExpression, cExpressionSearched [, nOccurrence]RESERVED6cSearchExpression, cExpressionSearched [, nOccurrence]RESERVED&cSearchExpression, cExpressionSearchedRESERVED[nWorkArea | cTableAlias]RESERVED[nWorkArea | cTableAlias]RESERVED[nWorkArea | cTableAlias]RESERVED8[nRecords [, nRecordOffset]] [, cTableAlias | nWorkArea]RESERVED+nRelationNumber [, nWorkArea | cTableAlias]RESERVEDoObjectName, cPropertyNameRESERVEDcExpression, nTimesRESERVED[nWorkArea | cTableAlias]RESERVED"nRedValue, nGreenValue, nBlueValueRESERVED)nColorSchemeNumber [, nColorPairPosition]RESERVEDcExpression, nCharactersRESERVEDcExpression, nCharactersRESERVEDH[nWorkArea | cTableAlias] | [cRecordNumberList, nWorkArea | cTableAlias]RESERVEDnExpression, nDecimalPlacesRESERVEDnExpressionRESERVED$cExpression [, nFlags][, cParseChar]2,TRIMTIP,TRESERVEDnConnectionHandleRESERVEDEnConnectionHandle, cTableName [, "FOXPRO" | "NATIVE" [, cCursorName]]RESERVEDnConnectionHandleRESERVED_[nStatementHandle | [cConnectionName | cDataSourcename [, cUserID[, cPassword]][, lSharable]]] RESERVEDnConnectionHandleRESERVED@nConnectionHandle [, cSQLCommand [, cCursorName [, aCountInfo]]]RESERVEDnConnectionHandle, cSetting2,SQLSERESERVEDnConnectionHandleRESERVED0nConnectionHandle [, cCursorName [, aCountInfo]]RESERVED.nConnectionHandle, cSQLCommand [, cCursorName]RESERVEDnConnectionHandleRESERVED+nConnectionHandle, cSetting [, eExpression]2,SQLSERESERVED(lShared | cConnectString [, lSharable]
RESERVED1nConnectionHandle [, cTableTypes [, cCursorName]]RESERVED�STRTOFILE() eFlags Parameter:

0 - The file is overwritten with the character string (can also pass .F.) 
1 - The string is appended to the end of the file (can also pass .T.)
2 - Write UNICODE Byte Order Mark at beginning of file. String is assumed to be UNICODE (no translation is done). File is overwritten.
4 - Write UTF-8 Byte Order Mark at the beginning of file. String is assumed to be UTF-8 (no translation is done). File is overwritten.RESERVEDoObjectReference, cFileNameRESERVED"nSchemeNumber [, nColorPairNumber]RESERVED�RESERVEDtExpressionRESERVED�RESERVEDWeExpression [, nWorkArea | cTableAlias [, nIndexNumber | cIDXIndexFileName | cTagName]]RESERVED[0 | 1 | cTableAlias]RESERVED'cSETCommand [, 1 | cExpression | 2 | 3]RESERVEDBcFieldName | nFieldNumber, nFieldState [, cTableAlias | nWorkArea]RESERVED<nWorkArea> | <cTableAlias>RESERVEDnExpressionRESERVEDnExpressionRESERVEDcMenuName, MenuItemNumberRESERVEDcMenuBarName, cMenuTitleNameRESERVEDcExpressionRESERVEDnSpacesRESERVEDnExpressionRESERVED�RESERVED*nExpression [, nLength [, nDecimalPlaces]]RESERVED�STREXTRACT() nFlags Parameter (additive):

1 - Case insensitive search
2 - Do not require end delimiter to be found
4 - Include delimiters with returned expressionRESERVEDGcSearchExpression, cBeginDelim [, cEndDelim [, nOccurrence [, nFlags]]]5,STREXTIP,TRESERVED!cExpression, cFileName [, eFlags]3,STRTOFILETIP,TRESERVEDKcExpression, nConversionSetting [, nRegionalIdentifier [, nRegionalIDType]]2,STRCVRESERVEDfcSearched, cExpressionSought [, cReplacement [, nStartOccurrence [, nNumberOfOccurrences [, nFlags]]]]6,STRTRANTIP,TRESERVED]STRTRAN() nFlags Parameter (additive):

1 - Case insensitive
2 - Match string case replaceRESERVEDAcExpression, nStartReplacement, nCharactersReplaced, cReplacementRESERVEDAcExpression, nStartReplacement, nCharactersReplaced, cReplacementRESERVED3cExpression, nStartPosition [, nCharactersReturned]RESERVED3cExpression, nStartPosition [, nCharactersReturned]RESERVEDeExpression RESERVEDnValue [, eValue]RESERVEDnScreenElementRESERVED6TRIM nFlags Parameter:

1 - Case insensitive trims
RESERVED&[lAllRows [, cTableAlias | nWorkArea]]RESERVEDK[lAllRows | nRows [, lForce [, cTableAlias | nWorkArea [, cErrorArray]]]]
RESERVED8[CDXFileName [, nTagNumber [, nWorkArea | cTableAlias]]]RESERVED)[CDXFileName [, nWorkArea | cTableAlias]]RESERVED9[IndexName [, CDXFileName [, nExpression | cExpression]]]RESERVEDnExpressionRESERVED/nRelationshipNumber [, nWorkArea | cTableAlias]RESERVED9cExpression [, lRecursive [, cLeftDelim [, cRightDelim]]]RESERVED
[nExpression]RESERVEDeExpression [, cFormatCodes]RESERVED$cExpression [, nFlags][, cParseChar]2,TRIMTIP,TRESERVEDtExpression [, 1 | 2 | 3]RESERVEDtExpressionRESERVED�RESERVED3cExpression [, cFontName, nFontSize [, cFontStyle]]RESERVEDcExpression [,1]RESERVEDXoEventObject | hWnd | [oEventSource | hWnd, cEvent | nMessage, oEventHandler, cDelegate]RESERVEDcExpressionRESERVED[nWorkArea | cTableAlias]RESERVEDcExpressionRESERVEDeExpression [, lNullDataType]RESERVEDRESERVEDWindowName [, .T. | .F.]RESERVED[WindowName]RESERVEDindowName] [nChildWindow]RESERVED[WindowName]RESERVED<dExpression | tExpression [, nFirstWeek [, nFirstDayOfWeek]]RESERVED
WindowNameRESERVEDnFontAttribute [, WindowName]RESERVED[WindowName]RESERVED[WindowName]RESERVED[WindowName]RESERVED[WindowName]RESERVED[WindowName]RESERVED[WindowName]RESERVED[WindowName]RESERVED[WindowName]RESERVED[WindowName]RESERVED[WindowName]RESERVED
WindowNameRESERVED@CURSORTOXML() nOutputFormat Parameter:

1  ELEMENTS - (default) outputs element-centric, 
   XSD based XML that can be consumed by Visual 
   Studio.Net DataSets and by other applications
   that understand XSD schemas
2  ATTRIBUTES - outputs attribute-centric XML
3  RAW - outputs a generic attribute-centric XMLRESERVED�CURSORTOXML() cSchemaName Parameter:

"" - no schema produced (default)
"1" - inline schema is produced
"<cSchemaName>" - external schema is produced, name = schemaName.xmlRESERVED�CURSORTOXML() nFlags Parameter (additive):

0 - Creates pretty formatted XML with encoding="Windows-1252" (default).
1 - Produces unformatted continous XML.
2 - Empty elements are written with open/close tags.
4 - Preserve white space in fields.
8 - Wrap Memo fields in CDATA sections.
16 - Output encoding attribute is set to code page of cursor.  
32 - Output encoding attribute is set to UTF-8 (no character translation).
48 - Output encoding attribute is set to UTF-8 (character data translated to UTF-8).
512 - Treat cOutput parameter as a file name (default is memory variable).
4096 - Disable conversion of Memo Binary fields using base64 encoding.RESERVED;XMLTOCURSOR() nFlags Parameter (additive):

4 - Preserve white space in data. Overrides the xml:space attribute of the XML data.
512 - The first parameter is a literal file name or memvar containing same that represents a valid XML file. Otherwise, it is an expression that returns XML or memory variable containing an XML string.
1024 - Character and Memo fields in the resultant cursor will be created with the NOCPTRANS option, and the text/xml values in the incoming elements will be inserted into the Character/Memo field on an untranslated, byte for byte basis.
2048 - Map xsd:decimal types with totalDigits="19" and fractionDigits="4" to Currency field instead of default Numeric one.
4096 - Disable base64 decoding for Memo Binary fields.
8192 - cCursorName refers to an existing table or cursor, or the alias of an existing table or cursor.
65536 - MapVarchar support. Maps XML Char fields to Varchar instead of Character fields.
131072 - MapBinary support. Maps XML base64Binary fields to Varbinary if shorter than 255 bytes otherwise Blob, instead of Memo fields.RESERVEDXMLUPDATEGRAM() nFlags Parameter (additive):

1 - Produces unformatted continous XML (default is pretty formatting).
2 - Empty elements are written with open/close tags.
4 - Preserve white space in fields.
8 - Wrap Memo fields in CDATA sections.
16 - Output encoding attribute is set to code page of cursor.  
32 - Output encoding attribute is set to UTF-8 (no character translation).
48 - Output encoding attribute is set to UTF-8 (double byte chars translated to UTF-8).

* default encoding is Windows-1252RESERVED�CURSORTOXML() nRecords Parameter (additive):

0 - Outputs all rows (Record pointer moves to EOF) (Default).
<n> - Outputs <n> rows (Record pointer moves to last row processed).RESERVED1eExpression | cXMLFile [, cCursorName [, nFlags]]3,XMLTIP4,TRESERVED+[cAliasList [, nFlags [, cSchemaLocation]]]2,XMLTIP5,TRESERVEDdExpression | tExpressionRESERVEDMenu
Popup
Screen
WindowRESERVED7ACTIVATE MENU MenuBarName [NOWAIT] [PAD MenuTitleName]
RESERVEDQACTIVATE POPUP MenuName [AT nRow, nColumn] [BAR nMenuItemNumber] [NOWAIT] [REST]
RESERVEDzACTIVATE WINDOW WindowName1 [, WindowName2 ...] | ALL [IN [WINDOW] WindowName3 | IN SCREEN] [BOTTOM | TOP | SAME] [NOSHOW]RESERVEDClass
Object
TableRESERVEDLADD CLASS ClassName [OF ClassLibraryName1] TO ClassLibraryName2 [OVERWRITE]
RESERVEDMADD OBJECT [PROTECTED] ObjectName AS ClassName2 [NOINIT] [WITH cPropertylist]RESERVED.ADD TABLE TableName | ? [NAME LongTableName]
RESERVED�ALTER TABLE TableName1  ADD | ALTER [COLUMN] FieldName1
     FieldType [(nFieldWidth [, nPrecision])] [NULL | NOT NULL]
     [CHECK lExpression1 [ERROR cMessageText1]]
     [AUTOINC [NEXTVALUE nValue [STEP nValue]]]
     [DEFAULT eExpression1]
     [PRIMARY KEY | UNIQUE [ COLLATE cCollateSequence]] 
     [REFERENCES TableName2 [TAG TagName1]]
     [NOCPTRANS] [NOVALIDATE]

* see help for other variationsRESERVED4Blank
From
From Array
General
Memo
Procedures
RESERVED5APPEND [BLANK] [IN nWorkArea | cTableAlias] [NOMENU]
RESERVED,APPEND FROM FileName | ?[FIELDS FieldList] [FOR lExpression] [[TYPE] [DELIMITED [WITH Delimiter | WITH BLANK | WITH TAB | WITH CHARACTER Delimiter] | DIF | FW2 | MOD | PDOX | RPD | SDF | SYLK | WK1 | WK3 | WKS | WR1 | WRK | CSV| XLS | XL5 [SHEET cSheetName] | XL8 [SHEET cSheetName]]] [AS nCodePage]
RESERVEDqAPPEND FROM ARRAY ArrayName [FOR lExpression] [FIELDS FieldList | FIELDS LIKE Skeleton | FIELDS EXCEPT Skeleton]
RESERVED`APPEND GENERAL GeneralFieldName [FROM FileName] [DATA cExpression] [LINK] [CLASS OLEClassName] 
RESERVEDBAPPEND MEMO MemoFieldName FROM FileName[OVERWRITE] [AS nCodePage]
RESERVED;APPEND PROCEDURES FROM FileName [AS nCodePage] [OVERWRITE]
RESERVED)ASSERT lExpression [MESSAGE cMessageText]RESERVEDxAVERAGE [ExpressionList] [Scope] [FOR lExpression1] [WHILE lExpression2] [TO VarList | TO ARRAY ArrayName] [NOOPTIMIZE] RESERVEDRESERVED�BLANK [FIELDS FieldList] [DEFAULT [AUTOINC]] [Scope] [FOR lExpression1] [WHILE lExpression2] [NOOPTIMIZE] [IN nWorkArea | cTableAlias]
RESERVED�BROWSE [FIELDS FieldList] [FONT cFontName [, nFontSize [, nFontCharSet]]] [STYLE cFontStyle] [FOR lExpression1 [REST]] [FORMAT] [FREEZE FieldName] [KEY eExpression1 [, eExpression2]] [LAST | NOINIT] [LOCK nNumberOfFields] [LPARTITION] [NAME ObjectName] [NOAPPEND] [NODELETE] [NOEDIT | NOMODIFY] [NOLGRID] [NORGRID] [NOLINK] [NOMENU] [NOOPTIMIZE] [NOREFRESH] [NORMAL] [NOWAIT] [PARTITION nColumnNumber [LEDIT] [REDIT]] [PREFERENCE PreferenceName] [SAVE] [TIMEOUT nSeconds] [TITLE cTitleText] [VALID [:F] lExpression2 [ERROR cMessageText]] [WHEN lExpression3] [WIDTH nFieldWidth] [WINDOW WindowName1] [IN [WINDOW] WindowName2 | IN SCREEN] [COLOR SCHEME nSchemeNumber] [NOCAPTIONS] [LOCK nNumberOfFields]RESERVEDApp
Dll
Exe
Mtdll
ProjectRESERVED3BUILD APP APPFileName FROM ProjectName [RECOMPILE]
RESERVED3BUILD DLL DLLFileName FROM ProjectName [RECOMPILE]
RESERVED3BUILD EXE EXEFileName FROM ProjectName [RECOMPILE]
RESERVED7BUILD MTDLL MTDLLFileName FROM ProjectName [RECOMPILE]
RESERVED�BUILD PROJECT ProjectFileName [RECOMPILE] [FROM ProgramName1 | MenuName1 | ReportName1 | LabelName1 | FormName1 | LibraryName1 [, ProgramName2 | MenuName2 | ReportName2 | LabelName2 | FormName2 | LibraryName2 ...]]RESERVED_CALCULATE eExpressionList [Scope] [FOR lExpression1] [WHILE lExpression2] [TO VarList | TO ARRAY ArrayName] [NOOPTIMIZE] [IN nWorkArea | cTableAlias]

eExpressionList::
  AVG(nExpression)
  CNT()
  MAX(eExpression)
  MIN(eExpression)
  NPV(nExpression1, nExpression2 [, nExpression3])
  STD(nExpression)
  SUM(nExpression)
  VAR(nExpression)RESERVEDRESERVEDRESERVED�TRY
  [ tryCommands ]
  [ CATCH [ TO VarName ] [ WHEN lExpression ]
  [ catchCommands ]]
  [ FINALLY 
  [ finallyCommands ]]
ENDTRYRESERVEDRESERVEDRESERVED�CHANGE [FIELDS FieldList] [Scope] [FOR lExpression1] [WHILE lExpression2] [FONT cFontName [, nFontSize [, nFontCharSet]]] [STYLE cFontStyle] [FREEZE FieldName] [KEY eExpression1 [, eExpression2]] [LAST | NOINIT] [LPARTITION] [NAME ObjectName] [NOAPPEND] [NOCLEAR] [NODELETE] [NOEDIT | NOMODIFY] [NOLINK] [NOMENU] [NOOPTIMIZE] [NORMAL] [NOWAIT] [PARTITION nColumnNumber [LEDIT] [REDIT]] [PREFERENCE PreferenceName] [REST] [SAVE] [TIMEOUT nSeconds] [TITLE cTitleText] [VALID [:F] lExpression3 [ERROR cMessageText]] [WHEN lExpression4] [WIDTH nFieldWidth] [WINDOW WindowName1][IN [WINDOW] WindowNam2 | IN SCREEN | IN MACDESKTOP]] [COLOR SCHEME nSchemeNumber | COLOR ColorPairList] [NOCAPTIONS]
RESERVED~All
Class
Classlib
Debug
Dlls
Error
Events
Fields
Macros
Memory
Menus
Popups
Program
Resources
Typeahead
WindowRESERVEDCLEAR CLASS ClassNameRESERVEDCLEAR CLASSLIB ClassLibraryNameRESERVEDCLEAR DLLS [cAliasname]RESERVEDCLEAR RESOURCES [FileName]RESERVED@All
Alternate
Databases
Debugger
Indexes
Procedures
TablesRESERVEDCLOSE DATABASES [ALL]RESERVEDCLOSE TABLES [ALL]RESERVED�COMPILE [DATABASE | FORM | CLASSLIB | LABEL | REPORT] FileName | FileSkeleton [?]

COMPILE FileName | FileSkeleton | ? [ENCRYPT] [NODEBUG] [AS nCodePage]RESERVEDRESERVEDGFile
Indexes
Memo
Procedures
Structure
Structure Extended
Tag
ToRESERVED!COPY FILE FileName1 TO FileName2
RESERVED3COPY INDEXES IndexFileList | ALL [TO CDXFileName] 
RESERVED>COPY MEMO MemoFieldName TO FileName [ADDITIVE] [AS nCodePage]
RESERVED6COPY PROCEDURES TO FileName [AS nCodePage] [ADDITIVE]
RESERVED{COPY STRUCTURE TO TableName [FIELDS FieldList] [[WITH] CDX | [WITH] PRODUCTION] [DATABASE cDatabaseName [NAME cTableName]]
RESERVEDdCOPY STRUCTURE EXTENDED TO FileName [DATABASE DatabaseName [NAME LongTableName]] [FIELDS FieldList]
RESERVED3COPY TAG TagName [OF CDXFileName] TO IndexFileName
RESERVED<COPY TO FileName [DATABASE DatabaseName [NAME LongTableName]] [FIELDS FieldList | FIELDS LIKE Skeleton | FIELDS EXCEPT Skeleton] [Scope] [FOR lExpression1] [WHILE lExpression2] [[WITH] CDX] | [[WITH] PRODUCTION] [NOOPTIMIZE] [[TYPE] [FOXPLUS | FOX2X | DIF | MOD | SDF | SYLK | WK1 | WKS | WR1 | WRK | CSV | | XLS | XL5 | DELIMITED [WITH Delimiter | WITH BLANK | WITH TAB | WITH CHARACTER Delimiter]]] [AS nCodePage]

COPY TO ARRAY ArrayName [FIELDS FieldList | FIELDS LIKE Skeleton | FIELDS EXCEPT Skeleton] [Scope] [FOR lExpression1] [WHILE lExpression2] [NOOPTIMIZE]
RESERVED�COPY TO ARRAY ArrayName [FIELDS FieldList | FIELDS LIKE Skeleton | FIELDS EXCEPT Skeleton] [Scope] [FOR lExpression1] [WHILE lExpression2] [NOOPTIMIZE]
RESERVEDPCOUNT [Scope] [FOR lExpression1] [WHILE lExpression2] [TO VarName] [NOOPTIMIZE]
RESERVED�*<tablename>
Class
Classlib
Color Set
Connection
Cursor
Database
Form
Label
Menu
Project
Query
Report
SQL View
Table
Trigger On
View
RESERVEDkCREATE CLASS ClassName | ?[OF ClassLibraryName1 | ?] [AS cBaseClassName [FROM ClassLibraryName2]] [NOWAIT]
RESERVED!CREATE CLASSLIB ClassLibraryName
RESERVEDCREATE COLOR SET ColorSetName
RESERVED�CREATE CONNECTION [ConnectionName | ?] [DATASOURCE cDataSourceName] [USERID cUserID] [PASSWORD cPassWord] [DATABASE cDatabaseName] | CONNSTRING cConnectionString]
RESERVEDFCREATE CURSOR alias_name [CODEPAGE = nCodePage] 
  (fname1 type [(precision [, scale]) 
    [NULL | NOT NULL] [CHECK lExpression [ERROR cMessageText]]
    [AUTOINC [NEXTVALUE NextValue [STEP StepValue]]]
    [DEFAULT eExpression] [UNIQUE [COLLATE cCollateSequence]]
    [NOCPTRANS] [, fname2 ...])  | FROM ARRAY ArrayNameRESERVED#CREATE DATABASE [DatabaseName | ?]
RESERVED�CREATE FORM [FormName | ?] [AS cClassName FROM cClassLibraryName | ?] [NOWAIT] [SAVE] [DEFAULT] [[WINDOW WindowName1] [IN [WINDOW] WindowName2 | IN SCREEN]]
RESERVEDhCREATE LABEL [FileName | ?] [NOWAIT] [SAVE] [WINDOW WindowName1] [IN [WINDOW] WindowName2 | IN SCREEN]
RESERVEDeCREATE MENU [FileName | ?] [NOWAIT] [SAVE] [WINDOW WindowName1] [IN [WINDOW] WindowName2 | IN SCREEN
RESERVED�CREATE PROJECT [FileName | ?] [NOWAIT] [SAVE] [WINDOW WindowName1] [IN [WINDOW] WindowName2 | IN SCREEN [NOSHOW] [NOPROJECTHOOK]
RESERVED%CREATE QUERY [FileName | ?] [NOWAIT]
RESERVED�CREATE REPORT [FileName | ?] [NOWAIT] [SAVE] [PROTECTED] [WINDOW WindowName1] [IN [WINDOW] WindowName2 | IN SCREEN]

CREATE REPORT FileName1 | ? FROM FileName2 [FORM | COLUMN] [FIELDS FieldList] [ALIAS] [NOOVERWRITE] [WIDTH nColumns]RESERVED}CREATE SQL VIEW [ViewName] [REMOTE] [CONNECTION ConnectionName [SHARE] | CONNECTION DataSourceName] [AS SQLSELECTStatement]
RESERVED�CREATE TABLE | DBF TableName1 [NAME LongTableName] [FREE] [CODEPAGE = nCodePage]
  (FieldName1 FieldType [(nFieldWidth [, nPrecision])] [NULL | NOT NULL] 
    [CHECK lExpression1 [ERROR cMessageText1]] 
    [ AUTOINC [NEXTVALUE nValue [STEP nValue]]]
    [DEFAULT eExpression1]
    [PRIMARY KEY | UNIQUE [ COLLATE cCollateSequence]] 
    [REFERENCES TableName2 [TAG TagName1]] 
    [NOCPTRANS] [, FieldName2 ...] 
    [, PRIMARY KEY eExpression2 TAG TagName2 |, UNIQUE eExpression3 TAG TagName3 
    [ COLLATE cCollateSequence]] [, FOREIGN KEY eExpression4 TAG TagName4 [NODUP] 
    [ COLLATE cCollateSequence] REFERENCES TableName3 [TAG TagName5]] 
    [, CHECK lExpression2 [ERROR cMessageText2]]
    ) | FROM ARRAY ArrayNameRESERVEDHCREATE TRIGGER ON TableName FOR DELETE | INSERT | UPDATE AS lExpression
RESERVEDCREATE VIEW FileName
RESERVEDMenu
Popup
WindowRESERVED1DEACTIVATE MENU MenuName1 [, MenuName2 ...] | ALLRESERVED2DEACTIVATE POPUP MenuName1 [, MenuName2 ...] | ALLRESERVED7DEACTIVATE WINDOW WindowName1 [, WindowName2 ...] | ALLRESERVEDRESERVED(DEBUGOUT eExpression1 [, eExpression2] �RESERVED�DECLARE [cFunctionType] FunctionName IN WIN32API | LibraryName [AS AliasName]
  [cParamType1 [@] ParamName1, cParamType2 [@] ParamName2, ...]RESERVED$Bar
Class
Menu
Pad
Popup
WindowRESERVED�DEFINE BAR nMenuItemNumber1 | SystemItemName OF MenuName MRU | PROMPT cMenuItemText [BEFORE nMenuItemNumber2 | AFTER nMenuItemNumber3] [FONT cFontName [, nFontSize [, nFontCharSet]]] [STYLE cFontStyle] [KEY KeyLabel [, cKeyText]] [MARK cMarkCharacter] [MESSAGE cMessageText] [SKIP [FOR lExpression]] [COLOR SCHEME nSchemeNumber | COLOR ColorPairList] [PICTURE cFileName | PICTRES cMenubarName] [INVERT]
RESERVEDDEFINE CLASS ClassName1 AS ParentClass [OF ClassLibrary][OLEPUBLIC]

  [[PROTECTED | HIDDEN] PropertyName1, ...]
  [Object.]PropertyName = eExpression]
  
  [ADD OBJECT [PROTECTED] ObjectName AS ClassName2 [NOINIT][WITH cPropertylist]...]
  
  [IMPLEMENTS InterfaceName [EXCLUDE] IN Typelib | Typelibguid | ProgID]
   
  [[PROTECTED | HIDDEN] FUNCTION | PROCEDURE Name[_ACCESS | _ASSIGN]([parm1 | array1[] [AS type][@], ...])
      [AS type][HelpString helpstring]
  [ENDFUNC | ENDPROC]]
  
ENDDEFINERESERVEDDEFINE MENU MenuBarName [BAR [AT LINE nRow]] [IN [WINDOW] WindowName | IN SCREEN] [FONT cFontName [, nFontSize [, nFontCharSet]]] [STYLE cFontStyle] [KEY KeyLabel] [MARK cMarkCharacter] [MESSAGE cMessageText] [NOMARGIN] [COLOR SCHEME nSchemeNumber | COLOR ColorPairList]
RESERVEDDEFINE PAD MenuTitle1 OF MenuBarName PROMPT cMenuTitleText [AT nRow, nColumn] [BEFORE MenuName2 | AFTER MenuName3] [NEGOTIATE cContainerPosition [, cObjectPosition]] [FONT cFontName [, nFontSize [, nFontCharSet]]] [STYLE cFontStyle] [KEY KeyLabel [, cKeyText]] [MARK cMarkCharacter] [SKIP [FOR lExpression]] [MESSAGE cMessageText] [COLOR SCHEME nSchemeNumber | COLOR ColorPairList]
RESERVED�DEFINE POPUP MenuName [FROM nRow1, nColumn1] [TO nRow2, nColumn2] [IN [WINDOW] WindowName | IN SCREEN] [FONT cFontName [, nFontSize [, nFontCharSet]]] [STYLE cFontStyle] [FOOTER cFooterText] [KEY KeyLabel] [MARGIN] [MARK cMarkCharacter] [MESSAGE cMessageText] [MOVER] [MULTISELECT] [PROMPT FIELD FieldName | PROMPT FILES [LIKE FileSkeleton]| PROMPT STRUCTURE] [RELATIVE] [SCROLL] [SHORTCUT] [TITLE cMenuTitleText] [RTLJUSTIFY] [COLOR SCHEME nSchemeNumber | COLOR ColorPairList]
RESERVED8DEFINE WINDOW WindowName1 FROM nRow1, nColumn1 TO nRow2, nColumn2 | AT nRow3, nColumn3 SIZE nRow4, nColumn4 [IN [WINDOW] WindowName2 | IN SCREEN | IN DESKTOP[NAME ObjectName] [FONT cFontName [, nFontSize [, nFontCharSet]]] [STYLE cFontStyle] [FOOTER cFooterText] [TITLE cTitleText] [HALFHEIGHT] [DOUBLE | PANEL | NONE | SYSTEM | cBorderString] [CLOSE | NOCLOSE] [FLOAT | NOFLOAT] [GROW | NOGROW] [MDI | NOMDI] [MINIMIZE | NOMINIMIZE] [ZOOM | NOZOOM] [ICON FILE FileName1] [FILL cFillCharacter | FILL FILE FileName2] [COLOR SCHEME nSchemeNumber | COLOR ColorPairList]
RESERVEDSAll
For
From
Connection
Database
File
In
Next
Rest
Tag
Trigger On
View
RESERVEDbDELETE [Scope] [FOR lExpression1] [WHILE lExpression2] [IN nWorkArea | cTableAlias] [NOOPTIMIZE]
RESERVED!DELETE CONNECTION ConnectionName
RESERVED;DELETE DATABASE DatabaseName | ? [DELETETABLES] [RECYCLE]
RESERVED$DELETE FILE [FileName | ?][RECYCLE]
RESERVEDbDELETE [Scope] [FOR lExpression1] [WHILE lExpression2] [IN nWorkArea | cTableAlias] [NOOPTIMIZE]
RESERVED^DELETE FROM [DatabaseName!]TableName [WHERE FilterCondition1 [AND | OR FilterCondition2 ...]]
RESERVEDbDELETE [Scope] [FOR lExpression1] [WHILE lExpression2] [IN nWorkArea | cTableAlias] [NOOPTIMIZE]
RESERVEDbDELETE [Scope] [FOR lExpression1] [WHILE lExpression2] [IN nWorkArea | cTableAlias] [NOOPTIMIZE]
RESERVEDwDELETE TAG TagName1 [OF CDXFileName1]
  [, TagName2 [OF CDXFileName2]] ... 

-or-

DELETE TAG ALL [OF CDXFileName]RESERVED9DELETE TRIGGER ON TableName FOR DELETE | INSERT | UPDATE
RESERVEDDELETE VIEW ViewName
RESERVEDdDIMENSION ArrayName1(nRows1 [, nColumns1]) [AS cType]
 [, ArrayName2(nRows2 [, nColumns2])] ...
  RESERVEDoDIR | DIRECTORY [ON Drive] [[LIKE] [Path] [FileSkeleton]] [TO PRINTER [PROMPT] | TO FILE FileName [ADDITIVE]]
RESERVEDiConnections
Database
Dlls
Fields
Files
Memory
Objects
Procedures
Status
Structure
Tables
ViewsRESERVED�DISPLAY [[FIELDS] FieldList] [Scope] [FOR lExpression1] [WHILE lExpression2] [OFF] [NOCONSOLE] [NOOPTIMIZE] [TO PRINTER [PROMPT] | TO FILE FileName [ADDITIVE]]
RESERVEDUDISPLAY CONNECTIONS [TO PRINTER [PROMPT] | TO FILE FileName [ADDITIVE]] [NOCONSOLE]
RESERVEDRDISPLAY DATABASE [TO PRINTER [PROMPT] | TO FILE FileName [ADDITIVE]] [NOCONSOLE]
RESERVEDNDISPLAY DLLS [TO PRINTER [PROMPT] | TO FILE FileName [ADDITIVE]] [NOCONSOLE]
RESERVED�DISPLAY [[FIELDS] FieldList] [Scope] [FOR lExpression1] [WHILE lExpression2] [OFF] [NOCONSOLE] [NOOPTIMIZE] [TO PRINTER [PROMPT] | TO FILE FileName [ADDITIVE]]RESERVED`DISPLAY FILES [ON Drive] [LIKE FileSkeleton] [TO PRINTER [PROMPT] | TO FILE FileName [ADDITIVE]]RESERVEDeDISPLAY MEMORY [LIKE VarSkeleton] [TO PRINTER [PROMPT] | TO [FILE] FileName [ADDITIVE]] [NOCONSOLE]
RESERVEDfDISPLAY OBJECTS [LIKE cObjectSkeleton] [TO PRINTER [PROMPT] | TO FILE FileName [ADDITIVE]] [NOCONSOLE]RESERVEDTDISPLAY PROCEDURES [TO PRINTER [PROMPT] | TO FILE FileName [ADDITIVE]] [NOCONSOLE]
RESERVEDPDISPLAY STATUS [TO PRINTER [PROMPT] | TO FILE FileName [ADDITIVE]] [NOCONSOLE]
RESERVEDpDISPLAY STRUCTURE [IN nWorkArea | cTableAlias] [TO PRINTER [PROMPT] | TO FILE FileName [ADDITIVE]] [NOCONSOLE]
RESERVEDPDISPLAY TABLES [TO PRINTER [PROMPT] | TO FILE FileName [ADDITIVE]] [NOCONSOLE]
RESERVEDODISPLAY VIEWS [TO PRINTER [PROMPT] | TO FILE FileName [ADDITIVE]] [NOCONSOLE]
RESERVEDRESERVED�DO CASE
  CASE lExpression1
     Commands
  [CASE lExpression2
     Commands
   ... 
  CASE lExpressionN
     Commands]
  [OTHERWISE
     Commands]
ENDCASE
RESERVED^DO FORM FormName | ? [NAME VarName [LINKED]][WITH cParameterList][TO VarName][NOREAD] [NOSHOW]RESERVED=DO WHILE lExpression
  Commands
  [LOOP]
  [EXIT]
ENDDO
RESERVED�DOCK WINDOW WindowName | NAME ObjectName POSITION nPosition [ WINDOW WindowName | NAME ObjectName ]

Position:
 0 Top
 1 Left
 2 Right
 3 Bottom
 4 Tabbed
-1 Undock Window
-2 Undock Outer Container
-3 Undock Inner ContainerRESERVEDDOEVENTS [FORCE]RESERVEDEDO ProgramName1 | ProcedureName [IN ProgramName2][WITH ParameterList]RESERVEDTable
ViewRESERVED-DROP TABLE TableName | FileName | ?[RECYCLE]
RESERVEDDROP VIEW ViewName
RESERVED�EDIT [FIELDS FieldList] [Scope] [FOR lExpression1] [WHILE lExpression2] [FONT cFontName [, nFontSize [, nFontCharSet]]] [STYLE cFontStyle] [FREEZE FieldName] [KEY eExpression1 [, eExpression2]] [LAST | NOINIT] [LPARTITION] [NAME ObjectName] [NOAPPEND] [NODELETE] [NOEDIT | NOMODIFY] [NOLINK] [NOMENU] [NOOPTIMIZE] [NORMAL] [NOWAIT] [PARTITION nColumnNumber [LEDIT] [REDIT]] [PREFERENCE PreferenceName] [REST] [SAVE] [TIMEOUT nSeconds] [TITLE cTitleText] [VALID [:F] lExpression3 [ERROR cMessageText]] [WHEN lExpression4] [WIDTH nFieldWidth] [WINDOW WindowName1][IN [WINDOW] WindowName2 | IN SCREEN [COLOR SCHEME nSchemeNumber] [NOCAPTIONS]
RESERVEDEJECT PAGE
RESERVEDRESERVEDRESERVEDRESERVEDRESERVEDRESERVEDRESERVEDRESERVEDRESERVEDRESERVEDRESERVEDRESERVEDRESERVEDRESERVEDRESERVEDERASE FileName | ?[RECYCLE]
RESERVEDCERROR nErrorNumber | nErrorNumber, cMessageText1 | [cMessageText2]
RESERVEDRESERVED�EXPORT TO FileName [TYPE] DIF | MOD | SYLK | WK1 | WKS | WR1 | WRK | XLS | XL5 [FIELDS FieldList] [Scope] [FOR lExpression1] [WHILE lExpression2] [NOOPTIMIZE] [AS nCodePage]
RESERVED~EXTERNAL FILE FileList | ARRAY ArrayList| CLASS | FORM | LABEL | LIBRARY | MENU | PROCEDURE | QUERY | REPORT | SCREEN | TABLE
RESERVED�TRY
  [ tryCommands ]
  [ CATCH [ TO VarName ] [ WHEN lExpression ]
  [ catchCommands ]]
  [ FINALLY 
  [ finallyCommands ]]
ENDTRYRESERVED9[(IN <nWorkArea> | <cTableAlias>) | <cFileSpec> ] [FORCE]RESERVED�FOR Var = nInitialValue TO nFinalValue [STEP nIncrement]
  Commands
  [EXIT]
  [LOOP]
ENDFOR | NEXT

FOR EACH Var [AS type [OF class library]] IN Group [FOXOBJECT]
   Commands
   [EXIT]
   [LOOP]
ENDFOR | NEXT [Var]
RESERVEDFREE TABLE TableName
RESERVEDwFUNCTION FunctionName 
   [LPARAMETERS parameter1 [,parameter2, ...]
   Commands 
   [RETURN [eExpression]]
ENDFUNCRESERVEDzGATHER FROM ArrayName | NAME ObjectName | MEMVAR [FIELDS FieldList | FIELDS LIKE Skeleton | FIELDS EXCEPT Skeleton] [MEMO]RESERVEDoGETEXPR [cCaptionText] TO MemVarName [TYPE cExpressionType [; cErrorMessageText]] [DEFAULT cDefaultExpression]
RESERVEDHGO TOP | BOTTOM | [RECORD] nRecordNumber [IN nWorkArea | IN cTableAlias]RESERVEDJGOTO TOP | BOTTOM | [RECORD] nRecordNumber [IN nWorkArea | IN cTableAlias]RESERVED`HELP [Topic | ID nContextID] [IN [WINDOW] WindowName | IN [WINDOW] SCREEN| IN [WINDOW] [NOWAIT]
RESERVED(HIDDEN [PROCEDURE | FUNCTION] MemberNameRESERVEDMenu
Popup
WindowRESERVED8HIDE MENU MenuBarName1 [, MenuBarName2 ...] | ALL [SAVE]RESERVED5HIDE POPUP PopupName1 [, PopupName2 ...] | ALL [SAVE]RESERVEDHIDE WINDOW WindowName1 [, WindowName2 ...] | ALL | SCREEN [IN [WINDOW] WindowNameN | IN [WINDOW] SCREEN] [BOTTOM | TOP | SAME]RESERVED>IF lExpression [THEN]
  Commands
[ELSE
  Commands]
ENDIF
RESERVEDEIMPLEMENTS cInterfaceName [EXCLUDE] IN TypeLib | TypeLibGUID | ProgIDRESERVED�IMPORT FROM FileName [DATABASE DatabaseName [NAME LongTableName]] [TYPE] FW2 | MOD | PDOX | RPD | WK1| WK3 | WKS | WR1 | WRK | XLS| XL5 [SHEET cSheetName] | XL8 [SHEET cSheetName] [AS nCodePage]
RESERVED�INDEX ON eExpression TO IDXFileName | TAG TagName [BINARY] [COLLATE cCollateSequence] [OF CDXFileName] [FOR lExpression] [COMPACT] [ASCENDING | DESCENDING] [UNIQUE | CANDIDATE] [ADDITIVE]
RESERVED!INSERT INTO dbf_name [(fname1 [, fname2, ...])] VALUES (eExpression1 [, eExpression2, ...])

INSERT INTO dbf_name FROM ARRAY ArrayName | FROM MEMVAR | FROM NAME ObjectName

INSERT INTO dbf_name [(fname1 [, fname2, ...])] SELECT [(fname1 [, fname2, ...])] FROM tablename WHERE conditionRESERVED(KEYBOARD cKeyboardValue [PLAIN] [CLEAR]
	'{LEFTARROW}'
'{RIGHTARROW}'
'{UPARROW}'
'{DNARROW}'
'{HOME}'
'{END}'
'{PGUP}'
'{PGDN}'
'{ESC}'
'{DEL}'
'{BACKSPACE}'
'{SPACEBAR}'
'{INS}'
'{TAB}'
'{BACKTAB}'
'{ENTER}'
'{CTRL+A}'
'{SHIFT+F1}'
'{ALT+F1}'
'{LEFTMOUSE}'
'{RIGHTMOUSE}'
'{MOUSE}'
RESERVED�LABEL [FORM FileName1 | FORM ?] [ENVIRONMENT] [Scope][FOR lExpression1] [WHILE lExpression2] [NOCONSOLE] [NOOPTIMIZE] [PDSETUP] [PREVIEW [NOWAIT]] [NAME ObjectName] [TO PRINTER [PROMPT] | TO FILE FileName2]
RESERVEDkConnections
Database
Dlls
Fields
Files
Memory
Objects
Procedures
Status
Structure
Tables
Views
RESERVED�LIST [[FIELDS] FieldList] [Scope] [FOR lExpression1] [WHILE lExpression2] [OFF] [NOCONSOLE] [NOOPTIMIZE] [TO PRINTER [PROMPT] | TO FILE FileName [ADDITIVE]]RESERVEDRLIST CONNECTIONS [TO PRINTER [PROMPT] | TO FILE FileName [ADDITIVE]] [NOCONSOLE]
RESERVEDOLIST DATABASE [TO PRINTER [PROMPT] | TO FILE FileName [ADDITIVE]] [NOCONSOLE]
RESERVEDKLIST DLLS [TO PRINTER [PROMPT] | TO FILE FileName [ADDITIVE]] [NOCONSOLE]
RESERVED�LIST [[FIELDS] FieldList] [Scope] [FOR lExpression1] [WHILE lExpression2] [OFF] [NOCONSOLE] [NOOPTIMIZE] [TO PRINTER [PROMPT] | TO FILE FileName [ADDITIVE]]RESERVED]LIST FILES [ON Drive] [LIKE FileSkeleton] [TO PRINTER [PROMPT] | TO FILE FileName [ADDITIVE]]RESERVEDbLIST MEMORY [LIKE VarSkeleton] [TO PRINTER [PROMPT] | TO [FILE] FileName [ADDITIVE]] [NOCONSOLE]
RESERVEDeLIST OBJECTS [LIKE cObjectSkeleton] [TO PRINTER [PROMPT] | TO FILE FileName [ADDITIVE]] [NOCONSOLE]
RESERVEDQLIST PROCEDURES [TO PRINTER [PROMPT] | TO FILE FileName [ADDITIVE]] [NOCONSOLE]
RESERVEDMLIST STATUS [TO PRINTER [PROMPT] | TO FILE FileName [ADDITIVE]] [NOCONSOLE]
RESERVEDmLIST STRUCTURE [IN nWorkArea | cTableAlias] [TO PRINTER [PROMPT] | TO FILE FileName [ADDITIVE]] [NOCONSOLE]
RESERVEDMLIST TABLES [TO PRINTER [PROMPT] | TO FILE FileName [ADDITIVE]] [NOCONSOLE]
RESERVEDLLIST VIEWS [TO PRINTER [PROMPT] | TO FILE FileName [ADDITIVE]] [NOCONSOLE]
RESERVED�LOCAL cVariable1 [AS cType [OF cClassLib]], cVariable2, ..., cVariableN

LOCAL [ARRAY] ArrayName1(nRows1 [, nColumns1])
  [, ArrayName2(nRows2 [, nColumns2])] ...
  RESERVED6LOCATE FOR lExpression1 [Scope] [WHILE] [NOOPTIMIZE]
RESERVEDRESERVEDLPARAMETERS ParameterListRESERVEDMD cPath | MKDIR cPathRESERVEDMD cPath | MKDIR cPathRESERVED�Class
Command
Connection
Database
File
Form
General
Label
Memo
Menu
Procedure
Project
Query
Report
Structure
View
Window
RESERVED�MODIFY CLASS ClassName [OF ClassLibraryName1] [AS cBaseClassName [FROM ClassLibraryName2]] [NOWAIT] [METHOD MethodName] [SAVE]
RESERVED�MODIFY COMMAND [FileName | ?] [NOEDIT][NOMENU] [NOWAIT] [RANGE nStartCharacter, nEndCharacter] [[WINDOW WindowName1] [IN [WINDOW] WindowName2 | IN SCREEN]] [AS nCodePage] [SAME] [SAVE]
RESERVED'MODIFY CONNECTION [ConnectionName | ?]
RESERVED5MODIFY DATABASE [DatabaseName | ?] [NOWAIT] [NOEDIT]
RESERVED�MODIFY FILE [FileName | ?] [NOEDIT][NOMENU] [NOWAIT] [RANGE nStartCharacter, nEndCharacter] [[WINDOW WindowName1] [IN [WINDOW] WindowName2 | IN SCREEN]] [AS nCodePage] [SAME] [SAVE]
RESERVED�MODIFY FORM [FormName | ?] [NOWAIT] [METHOD MethodName] [NOENVIRONMENT] [SAVE] [[WINDOW WindowName1] [IN [WINDOW] WindowName2 | IN SCREEN]] 
RESERVED�MODIFY LABEL [FileName | ?] [[WINDOW WindowName1] [IN [WINDOW] WindowName2 | IN SCREEN]] [NOENVIRONMENT] [NOWAIT] [PROTECTED] [SAVE]
RESERVED�MODIFY MEMO MemoField1 [, MemoField2 ...] [NOEDIT] [NOMENU] [NOWAIT] [RANGE nStartCharacter, nEndCharacter] [[WINDOW WindowName1] [IN [WINDOW] WindowName2 | IN SCREEN]] [SAME] [SAVE]RESERVEDhMODIFY MENU [FileName | ?] [[WINDOW WindowName1] [IN [WINDOW] WindowName2 | IN SCREEN]] [NOWAIT] [SAVE]
RESERVEDHMODIFY PROJECT [FileName | ?] [NOWAIT] [SAVE] [NOSHOW] [NOPROJECTHOOK]
RESERVED]MODIFY QUERY [FileName | ?] [[WINDOW WindowName1] [IN SCREEN] [NOWAIT] [SAVE] [AS nCodePage]
RESERVED�MODIFY REPORT [FileName | ?] [[WINDOW WindowName1] [IN [WINDOW] WindowName2 | IN SCREEN]] [NOENVIRONMENT] [NOWAIT] [PROTECTED] [SAVE]
RESERVED(MODIFY VIEW ViewName [REMOTE] [NOWAIT]
RESERVED�MODIFY WINDOW WindowName | SCREEN [FROM nRow1, nColumn1 TO nRow2, nColumn2 | AT nRow3, nColumn3 SIZE nRow4, nColumn4] [FONT cFontName [, nFontSize [, nFontCharSet]]] [STYLE cFontStyle] [TITLE cTitleText] [HALFHEIGHT] [DOUBLE | PANEL | NONE | SYSTEM] [CLOSE | NOCLOSE] [FLOAT | NOFLOAT] [GROW | NOGROW] [MINIMIZE | NOMINIMIZE] [ZOOM | NOZOOM] [ICON FILE FileName1][FILL FILE FileName2] [COLOR SCHEME nSchemeNumber | COLOR ColorPairList]
RESERVED�MOUSE [CLICK | DBLCLICK] [AT nRow1, nColumn1] | DRAG TO nRow2, nColumn2, nRow3, nColumn3 ...] [PIXELS] [WINDOW cWindowName] [LEFT | MIDDLE | RIGHT] [SHIFT] [CONTROL] [ALT]RESERVED
Popup
WindowRESERVED<MOVE POPUP MenuName TO nRow1, nColumn1 | BY nRow2, nColumn2
RESERVED=MOVE POPUP MenuName TO nRow1, nColumn1 | BY nRow2, nColumn2
RESERVEDHMOVE WINDOW WindowName TO nRow1, nColumn1 | BY nRow2, nColumn2 | CENTER
RESERVEDGMOVE WINDOW WindowName TO nRow1, nColumn1 | BY nRow2, nColumn2 | CENTERRESERVEDRESERVEDRESERVEDNOTE [Comments]RESERVEDsBar
Error
Escape
Key Label
Pad
Page
Selection Bar
Selection Menu
Selection Pad
Selection Popup
Shutdown
RESERVEDZON BAR nMenuItemNumber OF MenuName1 [ACTIVATE POPUP MenuName2 | ACTIVATE MENU MenuBarName]RESERVEDON ERROR [Command]
RESERVEDON ESCAPE [Command]
RESERVED%ON KEY LABEL KeyLabelName [Command]
RESERVED%ON KEY [LABEL KeyLabelName] [Command]RESERVED[ON PAD MenuTitleName OF MenuBarName1 [ACTIVATE POPUP MenuName | ACTIVATE MENU MenuBarName2
RESERVED(ON PAGE [AT LINE nLineNumber [Command]]
RESERVED7ON SELECTION BAR nMenuItemNumber OF MenuName [Command]
RESERVED.ON SELECTION MENU MenuBarName | ALL [Command]
RESERVED8ON SELECTION PAD MenuTitleName OF MenuBarName [Command]
RESERVED,ON SELECTION POPUP MenuName | ALL [Command]
RESERVEDON SHUTDOWN [Command]
RESERVEDRESERVEDDOPEN DATABASE [FileName | ?][EXCLUSIVE | SHARED][NOUPDATE][VALIDATE]RESERVEDRESERVEDKPACK [MEMO | DBF] [Tablename] [IN nWorkarea | cTableAlias]

PACK DATABASERESERVEDPARAMETERS ParameterListRESERVED#PLAY MACRO MacroName [TIME nDelay]
RESERVEDKey
Menu
PopupRESERVED
POP KEY [ALL]RESERVED POP MENU MenuBarName [TO MASTER]RESERVEDPOP POPUP MenuNameRESERVEDPRINTJOB Commands
RESERVEDBPRIVATE VarList

PRIVATE ALL [LIKE Skeleton | EXCEPT Skeleton]
RESERVEDxPROCEDURE ProcedureName
   [LPARAMETERS parameter1 [,parameter2, ...]
   Commands 
   [RETURN [eExpression]]
ENDPROCRESERVED+PROTECTED [PROCEDURE | FUNCTION] MemberNameRESERVED�PUBLIC cVariable1 [AS cType [OF cClassLib]], cVariable2, ..., cVariableN

PUBLIC [ARRAY] ArrayName1(nRows1 [, nColumns1]) [, ArrayName2(nRows2 [, nColumns2])] ...
RESERVEDKey
Menu
PopupRESERVEDPUSH KEY [CLEAR]RESERVEDPUSH MENU MenuBarNameRESERVEDPUSH POPUP MenuNameRESERVEDRESERVEDRD cPath | RMDIR cPathRESERVEDREAD EVENTS
RESERVEDdRECALL [Scope] [FOR lExpression1] [WHILE lExpression2] [NOOPTIMIZE] [IN nWorkArea | cTableAlias]

RESERVEDREINDEX [COMPACT]RESERVEDBAll
Bar
Classlib
Library
Menus
Pad
Popup
Procedure
WindowsRESERVED8RELEASE ALL [EXTENDED | LIKE Skeleton | EXCEPT Skeleton]RESERVED9RELEASE BAR nMenuItemNumber OF MenuName | ALL OF MenuNameRESERVED�RELEASE CLASSLIB ClassLibraryName1 | ALIAS AliasName1 [, ClassLibraryName2 | ALIAS AliasName2 ...] [IN APPFileName | EXEFileName]RESERVEDRELEASE LIBRARY LibraryNameRESERVED*RELEASE MENUS [MenuBarNameList [EXTENDED]]RESERVED=RELEASE PAD MenuTitleName OF MenuBarName | ALL OF MenuBarNameRESERVED(RELEASE POPUPS [MenuNameList [EXTENDED]]RESERVED-RELEASE PROCEDURE FileName1 [, FileName2 ...]RESERVED RELEASE WINDOWS [WindowNameList]RESERVEDClass
TableRESERVED*REMOVE CLASS ClassName OF ClassLibraryNameRESERVED.REMOVE TABLE TableName | ?  [DELETE] [RECYCLE]RESERVEDRENAME File1 TO File2&<file>
Class
Connection
Table
ViewRESERVED9RENAME CLASS ClassName1 OF ClassLibraryName TO ClassName2RESERVED-RENAME CONNECTION|TABLE|VIEW Name1 TO Name2
RESERVED&RENAME TABLE TableName1 TO TableName2
RESERVED#RENAME VIEW ViewName1 TO ViewName2
RESERVEDRESERVED2REPLACE FieldName1 WITH eExpression1 [ADDITIVE] [, FieldName2 WITH eExpression2 [ADDITIVE]] ... 
  [Scope] [FOR lExpression1] [WHILE lExpression2] [IN nWorkArea | cTableAlias] [NOOPTIMIZE]
  
REPLACE FROM ARRAY ArrayName [FIELDS FieldList] [Scope]
  [FOR lExpression1] [WHILE lExpression2] [NOOPTIMIZE]RESERVED}REPORT FORM FileName1 | ? [ENVIRONMENT] [Scope] [FOR lExpression1] [WHILE lExpression2] [HEADING cHeadingText] [NOCONSOLE] [NOOPTIMIZE] [PLAIN] [RANGE nStartPage [, nEndPage]] [PREVIEW [[IN] WINDOW WindowName | IN SCREEN] [NOWAIT]] [TO PRINTER [PROMPT] [NODIALOG] | TO FILE FileName2 [ADDITIVE][ASCII]] [NAME ObjectName] [OBJECT [TYPE] ObjectName] [SUMMARY] [NORESET] [NOPAGEEJECT]RESERVEDFrom
Macros
Screen
Window
RESERVED6RESTORE FROM FileName | MEMO MemoFieldName [ADDITIVE]
RESERVED9RESTORE MACROS [FROM FileName | FROM MEMO MemoFieldName]
RESERVEDRESTORE SCREEN [FROM VarName]
RESERVEDLRESTORE WINDOW WindowNameList | ALL FROM FileName | FROM MEMO MemoFieldName
RESERVEDRESERVEDRESERVED3RETURN [eExpression | TO MASTER | TO ProcedureName]RESERVEDRD cPath | RMDIR cPathRESERVEDRESERVED
RUN [/N]
RESERVEDMacros
Screen
Windows
RESERVED0SAVE MACROS TO FileName | TO MEMO MemoFieldName
RESERVEDSAVE SCREEN [TO VarName]
RESERVEDPSAVE TO FileName | MEMO MemoFieldName [ALL LIKE Skeleton | ALL EXCEPT Skeleton]
RESERVEDFSAVE WINDOWS WindowNameList | ALL TO FileName | TO MEMO MemoFieldName
RESERVEDuSCAN [NOOPTIMIZE]
  [Scope] [FOR lExpression1] [WHILE lExpression2] 
     [Commands]
  [LOOP]
  [EXIT]
ENDSCAN
RESERVED�SCATTER [FIELDS FieldNameList | FIELDS LIKE Skeleton | FIELDS EXCEPT Skeleton] [MEMO] [BLANK] TO ArrayName | MEMVAR | NAME ObjectName [ADDITIVE]
RESERVED�SEEK eExpression [ORDER nIndexNumber | IDXIndexFileName| [TAG] TagName [OF CDXFileName][ASCENDING | DESCENDING]] [IN nWorkArea | cTableAlias]
RESERVEDSELECT [ALL | DISTINCT] [TOP nExpr [PERCENT]] Select_List_Item [, ...]
 FROM [FORCE] Table_List_Item [, ...] [WITH (BUFFERING = lExpr)]
   [[JoinType] JOIN DatabaseName!]Table [[AS] Local_Alias]
   [ON JoinCondition [AND | OR [JoinCondition | FilterCondition] ...]
 [WHERE JoinCondition | FilterCondition [AND | OR JoinCondition | FilterCondition] ...]
 [GROUP BY Column_List_Item [, ...]]
 [HAVING FilterCondition [AND | OR ...]]
 [UNION [ALL] SELECTCommand]
 [ORDER BY Order_Item [ASC | DESC] [, ...]]
 [StorageDestination | DisplayDestination]
 [PREFERENCE PreferenceName] [NOCONSOLE] [PLAIN] [NOWAIT]

 JoinType - INNER | LEFT | RIGHT | FULL  [OUTER]
 StorageDestination - INTO [ARRAY ArrayName | CURSOR CursorName 
   [NOFILTER | READWRITE] | TABLE TableName]
 DisplayDestination - TO [FILE FileName [ADDITIVE] | PRINTER [PROMPT] | SCREEN]

SELECT nWorkArea | cTableAlias
RESERVEDRESERVED1SET ALTERNATE ON | OFF | TO [filename [ADDITIVE]]RESERVEDSET ANSI ON | OFFRESERVEDSET ASSERTS ON | OFFRESERVEDSET AUTOINCERROR ON | OFFRESERVEDSET AUTOSAVE ON | OFFRESERVED"SET BELL ON | OFF | TO [cWaveFile]RESERVEDSET BLOCKSIZE TO nBytesRESERVEDSET BROWSEIME ON | OFFRESERVED.SET CARRY ON | OFF | TO [fieldlist [ADDITIVE]]RESERVED5SET CENTURY ON | OFF | TO [nCentury [ROLLOVER nYear]]RESERVED\SET CLASSLIB TO ClassLibraryName [IN APPFileName | EXEFileName] [ADDITIVE] [ALIAS AliasName]RESERVED/SET CLOCK ON | OFF | STATUS | TO [nRow,nColumn]RESERVEDSET COLLATE TO cSequenceName�LPARAMETER oFoxCode
DIMENSION oFoxcode.Items[23,2]
WITH oFoxCode
	.Items[1,1] = "DUTCH"
	.Items[2,1] = "GENERAL"
	.Items[3,1] = "GERMAN"
	.Items[4,1] = "ICELAND"
	.Items[5,1] = "MACHINE"
	.Items[6,1] = "NORDAN"
	.Items[7,1] = "SPANISH"
	.Items[8,1] = "SWEFIN"
	.Items[9,1] = "UNIQWT"
	.Items[10,1] = "CZECH"
	.Items[11,1] = "GREEK"
	.Items[12,1] = "HUNGARY"
	.Items[13,1] = "JAPANESE"
	.Items[14,1] = "KOREAN"
	.Items[15,1] = "PINYIN"
	.Items[16,1] = "POLISH"
	.Items[17,1] = "RUSSIAN"
	.Items[18,1] = "SLOVAK"
	.Items[19,1] = "STROKE"
	.Items[20,1] = "ARABIC"
	.Items[21,1] = "THAI"
	.Items[22,1] = "HEBREW"
	.Items[23,1] = "TURKISH"
	.ItemScript = "funcmenu2"
	.ValueType = "L"
ENDWITHRESERVEDdSET COLOR SET TO [ColorSetName]
SET COLOR OF SCHEME nScheme1 TO [SCHEME nScheme2 | ColorPairList]
RESERVED;SET COMPATIBLE FOXPLUS | OFF | DB4 | ON [PROMPT | NOPROMPT]RESERVEDSET CONFIRM ON | OFFRESERVEDSET CONSOLE ON | OFFRESERVED%SET COVERAGE TO [FileName [ADDITIVE]]RESERVEDSET CPCOMPILE TO [nCodePage]RESERVEDSET CPDIALOG ON | OFFRESERVED>SET CURRENCY TO [cCurrencySymbol]

SET CURRENCY LEFT | RIGHTRESERVEDSET CURSOR ON | OFFRESERVEDSET DATABASE TO [DatabaseName](LPARAMETER oFoxCode
LOCAL aDBCs,i,lnData
DIMENSION aDBCs[1]
lnData = ADATA(aDBCs)
IF m.lnData = 0
 	RETURN .F.
ENDIF
DIMENSION oFoxcode.Items[lnData,2]
FOR i = 1 TO m.lnData 
	oFoxcode.Items[m.i,1] = aDBCs[m.i,1]
	oFoxcode.Items[m.i,2] = aDBCs[m.i,2]
ENDFOR
oFoxcode.ValueType = "L"
RESERVED'SET DATASESSION TO [nDataSessionNumber]RESERVEDzSET DATE [TO] AMERICAN | ANSI | BRITISH | FRENCH | GERMAN| ITALIAN | JAPAN | TAIWAN | USA | MDY | DMY | YMD | SHORT | LONG�LPARAMETER oFoxCode
DIMENSION oFoxcode.Items[14,2]
WITH oFoxCode
	.Items[1,1] = "AMERICAN"
	.Items[1,2] = "mm/dd/yy"
	.Items[2,1] = "ANSI"
	.Items[2,2] = "yy.mm.dd"
	.Items[3,1] = "BRITISH"
	.Items[3,2] = "dd/mm/yy"
	.Items[4,1] = "FRENCH"
	.Items[4,2] = "dd/mm/yy"
	.Items[5,1] = "GERMAN"
	.Items[5,2] = "dd.mm.yy"
	.Items[6,1] = "ITALIAN"
	.Items[6,2] = "dd-mm-yy"
	.Items[7,1] = "JAPAN"
	.Items[7,2] = "yy/mm/dd"
	.Items[8,1] = "TAIWAN"
	.Items[8,2] = "yy/mm/dd"
	.Items[9,1] = "USA"
	.Items[9,2] = "mm-dd-yy"
	.Items[10,1] = "MDY"
	.Items[10,2] = "mm/dd/yy"
	.Items[11,1] = "DMY"
	.Items[11,2] = "dd/mm/yy"
	.Items[12,1] = "YMD"
	.Items[12,2] = "yy/mm/dd"
	.Items[13,1] = "SHORT"
	.Items[13,2] = "Short date format determined by the Windows Control Panel short date setting."
	.Items[14,1] = "LONG"
	.Items[14,2] = "Long date format determined by the Windows Control Panel long date setting."
	.ValueType = "L"
ENDWITHRESERVEDSET DEBUG ON | OFFRESERVED%SET DEBUGOUT TO [FileName [ADDITIVE]]RESERVED SET DECIMALS TO [nDecimalPlaces]RESERVEDSET DEFAULT TO [cPath]RESERVEDSET DELETED ON | OFFRESERVEDSET DEVELOPMENT ON | OFFRESERVED7SET DEVICE TO SCREEN | PRINTER [PROMPT] | FILE FileNameRESERVED2SET DISPLAY TO CGA | EGA25 | EGA43 | VGA25 | VGA50RESERVEDSET DOHISTORY ON | OFF
RESERVEDSET ECHO ON | OFFRESERVEDSET ENGINEBEHAVIOR 90 | 80 | 70RESERVEDSET ESCAPE ON | OFFRESERVED;SET EVENTLIST TO [EventName1 [, EventName2 ...] [ADDITIVE]]RESERVED>SET EVENTTRACKING ON | OFF | PROMPT | TO [FileName [ADDITIVE]]RESERVEDSET EXACT ON | OFFRESERVEDSET EXCLUSIVE ON | OFFRESERVEDSET FDOW TO [nExpression]RESERVED}SET FIELDS ON | OFF | LOCAL | GLOBAL
SET FIELDS TO [[FieldName1 [, FieldName2 ...]] | ALL [LIKE Skeleton | EXCEPT Skeleton]]RESERVED8SET FILTER TO [lExpression] [IN nWorkArea | cTableAlias]RESERVEDSET FIXED ON | OFFRESERVEDSET FULLPATH ON | OFFRESERVED?SET FUNCTION nFunctionKeyNumber | KeyLabelName TO [eExpression]RESERVEDSET FWEEK TO [nExpression]RESERVEDSET HEADINGS ON | OFFRESERVEDUSET HELP ON | OFF

SET HELP [TO [cFileName]] [COLLECTION [cCollectionURL]] [SYSTEM]RESERVED+SET HELPFILTER [AUTOMATIC] TO [lExpression]RESERVEDSET HOURS TO [12 | 24]RESERVED�SET INDEX TO [IndexFileList | ?] [ORDER nIndexNumber | IDXIndexFileName | [TAG] TagName [OF CDXFileName] [ASCENDING | DESCENDING]] [ADDITIVE]
RESERVED\SET KEY TO [eExpression1 | RANGE eExpression2 [, eExpression3]] [IN cTableAlias | nWorkArea]RESERVEDSET KEYCOMP TO DOS | WINDOWSRESERVED$SET LIBRARY TO [FileName [ADDITIVE]]RESERVEDSET LOCK ON | OFFRESERVEDSET LOGERRORS ON | OFFRESERVEDSET MACKEY TO [KeyLabelName]RESERVEDSET MARGIN TO nColumnsRESERVED�SET MARK TO [cDelimiter]
SET MARK OF MENU MenuBarName1 TO lExpression1
SET MARK OF POPUP MenuName1 TO lExpression3
SET MARK OF BAR nMenuItemNumber OF MenuName2 TO lExpression4RESERVEDSET MEMOWIDTH TO nColumnsRESERVEDmSET MESSAGE TO [cMessageText]
SET MESSAGE TO [nRow [LEFT | CENTER | RIGHT]]
SET MESSAGE WINDOW [WindowName]RESERVEDSET MULTILOCKS ON | OFFRESERVEDSET NEAR ON | OFFRESERVED0SET NOCPTRANS TO [FieldName1 [, FieldName2 ...]]RESERVED/SET NOTIFY ON | OFF
SET NOTIFY CURSOR ON | OFFRESERVEDSET NULL ON | OFFRESERVEDSET NULLDISPLAY TO [cNullText]RESERVEDSET ODOMETER TO [nRecords]RESERVEDSET OLEOBJECT ON | OFFRESERVEDSET OPTIMIZE ON | OFFRESERVED�SET ORDER TO [nIndexNumber | IDXIndexFileName | [TAG] TagName [OF CDXFileName] [IN nWorkArea | cTableAlias] [ASCENDING | DESCENDING]]0LPARAMETER oFoxCode
LOCAL atags,lnTags,i
IF EMPTY(ALIAS())
 	RETURN .F.
ENDIF
DIMENSION aTags[1]
DIMENSION oFoxcode.Items[1,2]
lnTags = ATAGINFO(atags)
IF m.lnTags = 0
 	RETURN .F.
ENDIF
FOR i = 1 TO m.lnTags
	IF ATC("BINARY", atags[m.i,2] )#0
		LOOP
	ENDIF
	IF !EMPTY(oFoxcode.Items[1,1])
		DIMENSION oFoxcode.Items[ALEN(oFoxcode.Items,1)+1,2]
	ENDIF
	oFoxcode.Items[ALEN(oFoxcode.Items,1),1] = atags[m.i,1] + "   " + CHR(38) + CHR(38) + " " + atags[m.i,3]
ENDFOR
IF EMPTY(oFoxcode.Items[1,1])
	RETURN .F.
ENDIF
oFoxcode.ValueType = "L"RESERVEDSET PALETTE ON | OFFRESERVEDSET PATH TO [Path] [ADDITIVE]:LPARAMETER oFoxCode
LOCAL lcPath
lcPath = SET("PATH")
IF EMPTY(m.lcPath)
	RETURN .F.
ENDIF
IF LEN(m.lcPath)-LEN(LTRIM(m.lcPath,1,"\"))>0
	m.lcPath="\"+m.lcPath
ENDIF
DIMENSION oFoxcode.Items[1,2]
oFoxcode.Items[1,1] = lcPath
oFoxcode.Items[1,2] = "(your current search path)"
oFoxcode.ValueType = "L"
RESERVEDlSET PDSETUP TO [[cPrinterDriverSetup [, Parameter1[, Parameter2 ...]]] [WITH Parameter3 [, Parameter4 ...]]]RESERVED%SET POINT TO [cDecimalPointCharacter]RESERVED�SET PRINTER ON [PROMPT] | OFF
SET PRINTER FONT cFontName [, nFontSize [, nFontCharSet]] [STYLE cFontStyle]
SET PRINTER TO [FileName [ADDITIVE] | PortName]
SET PRINTER TO [DEFAULT | NAME WindowsPrinterName]
SET PRINTER TO NAME \\ServerName\PrinterNameRESERVED:SET PROCEDURE TO [FileName1 [, FileName2, ...]] [ADDITIVE]RESERVEDSET READBORDER ON | OFFRESERVED�SET REFRESH TO nSeconds1 [, nSeconds2]

Special nSeconds2 settings:

-1  always read data from disk
 0  always use data in memory buffer, never refresh bufferRESERVED�SET RELATION TO [eExpression1 INTO nWorkArea1 | cTableAlias1 [, eExpression2 INTO nWorkArea2 | cTableAlias2 ...] [IN nWorkArea | cTableAlias] [ADDITIVE]]

SET RELATION OFF INTO nWorkArea | cTableAliasRESERVEDSET REPORTBEHAVIOR 90 | 80RESERVED<SET REPROCESS TO nAttempts [SECONDS] | TO AUTOMATIC [SYSTEM]RESERVED%SET RESOURCE ON | OFF | TO [filename]RESERVEDSET SQLBUFFERING ON | OFF
RESERVEDSET SAFETY ON | OFFRESERVEDSET SECONDS ON | OFFRESERVED&SET SEPARATOR TO [cSeparatorCharacter]RESERVEDSET SKIP TO [TableAlias1 [, TableAlias2] ...]
SET SKIP OF MENU MenuBarName1 lExpression1
SET SKIP OF PAD MenuTitleName OF MenuBarName2 lExpression2
SET SKIP OF POPUP MenuName1 lExpression3
SET SKIP OF BAR nMenuItemNumber | SystemItemName OF MenuName2 lExpression4RESERVEDSET SPACE ON | OFFRESERVEDSET STATUS ON | OFFRESERVEDSET STATUS BAR ON | OFFRESERVEDSET STEP ONRESERVEDSET STRICTDATE TO [0 | 1 | 2]�LPARAMETER oFoxCode
DIMENSION oFoxcode.Items[3,2]
WITH oFoxCode
	.Items[1,1] = "0"
	.Items[1,2] = "Specifies that strict date format checking is off."
	.Items[2,1] = "1"
	.Items[2,2] = "Specifies that all Date and DateTime constants be in the strict date format. Any constant that is not in the strict format will generate an error  (either during compilation, runtime, or interactive). 1 is the default setting."
	.Items[3,1] = "2"
	.Items[3,2] = "Identical to setting STRICTDATE to 1, but also generates a compilation error (2033 � CTOD and CTOT can produce incorrect results) whenever CTOD( ) and CTOT( ) functions appear in code."
	.ValueType = "L"
ENDWITHRESERVEDSET SYSFORMATS ON | OFFRESERVED�SET SYSMENU ON | OFF | AUTOMATIC | TO [MenuList] | TO [MenuTitleList] | TO [DEFAULT] | TO LTRJUSTIFY | TO RTLJUSTIFY | SAVE | NOSAVERESERVED�SET TABLEVALIDATE TO [nLevel]

nLevel Values (additive):

1 - When a table is opened, the record count is validated. *
2 - When records are appended (or inserted) and written to disk, the record count is validated.
4 - Suppress �File is in use� error (Error 3) if header cannot be locked for table open operation. **
8 - Check DBF header before append is saved to disk and the header is modified. This affects insert operations.

Note: No table validation is performed for value of 0.

* The table (dbf) header is locked during validation, which can impact scalability for shared/multi-user scenarios.
** Requires nLevel value of 1 to also be set..RESERVED2SET TALK ON | OFF | WINDOW [WindowName] | NOWINDOWRESERVED�SET TEXTMERGE [ON | OFF] [TO [FileName] [MEMVAR varname] [ADDITIVE]] [WINDOW WindowName] [SHOW | NOSHOW]

SET TEXTMERGE DELIMITERS [TO cLeftDelimiter [, cRightDelimiter]]RESERVEDKSET TOPIC TO [cHelpTopicName | lExpression]
SET TOPIC ID TO nHelpContextIDRESERVEDSET TRBETWEEN ON | OFFRESERVEDSET TYPEAHEAD TO nCharactersRESERVED!SET UDFPARMS TO VALUE | REFERENCE�LPARAMETER oFoxCode
DIMENSION oFoxcode.Items[2,2]
WITH oFoxCode
	.Items[1,1] = "VALUE"
	.Items[1,2] = "Specifies that a variable be passed to a user-defined function by value. When a variable is passed by value, the variable's value can be changed in the user-defined function, but the variable's original value in the calling program isn't changed."
	.Items[2,1] = "REFERENCE"
	.Items[2,2] = "Specifies that a variable be passed to a user-defined function by reference. When a variable is passed by reference and the user-defined function changes the value of the passed variable, the variable's original value is also changed."
	.ValueType = "L"
ENDWITHRESERVEDSET UNIQUE ON | OFFRESERVEDSET VARCHARMAPPING ON | OFF
RESERVED#SET VIEW ON | OFF | TO filename | ?RESERVEDMenu
Popup
WindowRESERVEDLSHOW MENU MenuBarName1 [, MenuBarName2 ...] | ALL [PAD MenuTitleName] [SAVE]RESERVED5SHOW POPUP PopupName1 [, PopupName2 ...] | ALL [SAVE]RESERVEDzSHOW WINDOW WindowName1 [, WindowName2 ...] | ALL | SCREEN [IN [WINDOW] WindowName3 [REFRESH] [TOP | BOTTOM | SAME] [SAVE]RESERVED
Popup
WindowRESERVED<SIZE POPUP MenuName TO nRow1, nColumn1 | BY nRow2, nColumn2
RESERVED?SIZE WINDOW WindowName TO nRow1, nColumn1 | BY nRow2, nColumn2
RESERVED-SKIP [nRecords] [IN nWorkArea | cTableAlias]
RESERVED�SORT TO TableName ON FieldName1 [/A | /D] [/C] [, FieldName2 [/A | /D] [/C] ...] [ASCENDING | DESCENDING] [Scope] [FOR lExpression1] [WHILE lExpression2] [FIELDS FieldNameList | FIELDS LIKE Skeleton | FIELDS EXCEPT Skeleton] [NOOPTIMIZE]RESERVED2STORE eExpression TO VarNameList | ArrayNameList
RESERVED|SUM [eExpressionList] [Scope] [FOR lExpression1] [WHILE lExpression2] [TO MemVarNameList | TO ARRAY ArrayName] [NOOPTIMIZE]
RESERVEDRESERVEDyTEXT [TO VarName [ADDITIVE] [TEXTMERGE] [NOSHOW] [FLAGS nValue] [PRETEXT eValue]]

ENDTEXT


Special FLAGS Values (additive):
1 - suppress output to _TEXT file
2 - preserve blank lines preceding any text

Special PRETEXT Values (additive):
1 - eliminate spaces before each line
2 - eliminate tabs before each line
4 - eliminate blank lines
8 - eliminate line feedsRESERVEDTHROW [ <eUserExpression> ]RESERVEDtTOTAL TO TableName ON FieldName [FIELDS FieldNameList] [Scope] [FOR lExpression1] [WHILE lExpression2] [NOOPTIMIZE]
RESERVED�TRY
  [ tryCommands ]
  [ CATCH [ TO VarName ] [ WHEN lExpression ]
  [ catchCommands ]]
  [ FINALLY 
  [ finallyCommands ]]
ENDTRYRESERVEDPTYPE FileName1 [AUTO] [WRAP] [TO PRINTER [PROMPT] | TO FILE FileName2] [NUMBER]
RESERVED@UNLOCK[RECORD nRecordNumber] [IN nWorkArea | cTableAlias] [ALL]
RESERVED�UPDATE [DatabaseName1!]TableName1 SET Column_Name1 = eExpression1 [, Column_Name2 = eExpression2 ...] WHERE FilterCondition1 [AND | OR FilterCondition2 ...]]
RESERVEDRESERVED�USE [[DatabaseName!]Table | SQLViewName | ?]
  [IN nWorkArea | cTableAlias]
  [ONLINE]
  [ADMIN]
  [AGAIN]
  [NOREQUERY [nDataSessionNumber]]
  [NODATA]
  [INDEX IndexFileList | ?
  [ORDER [nIndexNumber | IDXFileName
  | [TAG] TagName [OF CDXFileName]
     [ASCENDING | DESCENDING]]]]
  [ALIAS cTableAlias]
  [EXCLUSIVE]
  [SHARED]
  [NOUPDATE]
  [CONNSTRING cConnectionString | (cStatementHandleMemvar)]
RESERVEDQVALIDATE DATABASE [RECOVER] [NOCONSOLE] [TO PRINTER [PROMPT] | TO FILE FileName]
RESERVEDlWAIT [eMessageText] [TO VarName] [WINDOW [AT nRow, nColumn]] [NOWAIT] [CLEAR | NOCLEAR] [TIMEOUT nSeconds]
RESERVEDRESERVED ZAP [IN nWorkArea | cTableAlias]RESERVED�ZOOM WINDOW WindowName MIN | MAX | NORM [AT nRow1, nColumn1 | FROM AT nRow1, nColumn1 [SIZE AT nRow2, nColumn2 | TO nRow2, nColumn2]]
RESERVEDRESERVEDRESERVEDRESERVEDRESERVEDRESERVEDRESERVEDRESERVEDRESERVEDRESERVEDRESERVEDRESERVEDRESERVEDRESERVEDRESERVEDRESERVEDRESERVEDRESERVEDRESERVEDRESERVEDRESERVEDRESERVEDRESERVEDRESERVEDRESERVEDILPARAMETER oFoxcode
LOCAL eRetVal, loFoxCodeLoader
IF !FILE(_CODESENSE)
	RETURN ""
ENDIF
SET PROCEDURE TO (_CODESENSE) ADDITIVE
loFoxCodeLoader = CreateObject("FoxCodeLoader")
eRetVal = loFoxCodeLoader.Start(m.oFoxCode)
loFoxCodeLoader = NULL
IF ATC(_CODESENSE,SET("PROC"))#0
	RELEASE PROCEDURE (_CODESENSE)
ENDIF
RETURN eRetVal

DEFINE CLASS FoxCodeLoader as FoxCodeScript

	PROCEDURE Main
		DO CASE
		CASE VARTYPE(THIS.lPropertyValueEditors)#"L" OR !THIS.lPropertyValueEditors
			RETURN
		CASE EMPTY(THIS.oFoxcode.MenuItem)  AND UPPER(ALLTRIM(THIS.oFoxCode.Abbrev))=="FONT"
			RETURN
		CASE EMPTY(THIS.oFoxcode.MenuItem) 
			DIMENSION THIS.oFoxcode.Items[1,2]
			THIS.oFoxcode.Items[1,1] = "Font Picker..."
			THIS.oFoxcode.Items[1,2] = ""
			THIS.oFoxcode.ItemScript = "Font"
			THIS.oFoxCode.ValueType = "L"
			RETURN ""
		OTHERWISE
			LOCAL lcTyped		
			lcTyped = SUBSTR(THIS.oFoxcode.FullLine,RATC(".",THIS.oFoxcode.FullLine))		
			THIS.oFoxcode.ValueType = "V"
			DO CASE
			CASE ATC(".fontname", lcTyped)#0
				RETURN ["] + GETWORDNUM(GetFont(), 1, ",") +["]
			CASE ATC(".fontsize", lcTyped)#0
				RETURN GETWORDNUM(GetFont(), 2, ",")
			CASE ATC(".fontcharset", lcTyped)#0
				RETURN GETWORDNUM(GetFont("_", 0, "", 1), 4, ",")
			OTHERWISE
				RETURN ""	
			ENDCASE
		ENDCASE
	ENDPROC
		
ENDDEFINERESERVEDoLPARAMETER oFoxcode
LOCAL eRetVal, loFoxCodeLoader
IF !FILE(_CODESENSE)
	RETURN ""
ENDIF
SET PROCEDURE TO (_CODESENSE) ADDITIVE
loFoxCodeLoader = CreateObject("FoxCodeLoader")
eRetVal = loFoxCodeLoader.Start(m.oFoxCode)
loFoxCodeLoader = NULL
IF ATC(_CODESENSE,SET("PROC"))#0
	RELEASE PROCEDURE (_CODESENSE)
ENDIF
RETURN eRetVal

DEFINE CLASS FoxCodeLoader as FoxCodeScript
	
	PROCEDURE Main
		LOCAL lnColor
		DO CASE
		CASE VARTYPE(THIS.lPropertyValueEditors)#"L" OR !THIS.lPropertyValueEditors
			RETURN
		CASE EMPTY(THIS.oFoxcode.MenuItem)  AND UPPER(ALLTRIM(THIS.oFoxCode.Abbrev))=="COLOR"
			RETURN
		CASE EMPTY(THIS.oFoxcode.MenuItem) 
			DIMENSION THIS.oFoxcode.Items[1,2]
			THIS.oFoxcode.Items[1,1] = "Color Picker..."
			THIS.oFoxcode.Items[1,2] = ""
			THIS.oFoxcode.ItemScript = "Color"
			THIS.oFoxCode.ValueType = "L"
			RETURN ""
		OTHERWISE
			lnColor = GETCOLOR()			
			IF lnColor=-1
				RETURN
			ENDIF
			THIS.oFoxcode.ValueType = "V"
			RETURN TEXTMERGE("RGB(<<MOD(lnColor,256)>>,<<MOD(INT(lnColor/256),256))>>,<<MOD(INT(lnColor/65536),256)))>>)")
		ENDCASE
	ENDPROC
ENDDEFINERESERVED5LPARAMETER oFoxcode
LOCAL eRetVal, loFoxCodeLoader
IF !FILE(_CODESENSE)
	RETURN ""
ENDIF
SET PROCEDURE TO (_CODESENSE) ADDITIVE
loFoxCodeLoader = CreateObject("FoxCodeLoader")
eRetVal = loFoxCodeLoader.Start(m.oFoxCode)
loFoxCodeLoader = NULL
IF ATC(_CODESENSE,SET("PROC"))#0
	RELEASE PROCEDURE (_CODESENSE)
ENDIF
RETURN eRetVal 

DEFINE CLASS FoxCodeLoader as FoxCodeScript
	
	PROCEDURE Main
		DO CASE	
		CASE VARTYPE(THIS.lPropertyValueEditors)#"L" OR !THIS.lPropertyValueEditors
			RETURN
		CASE EMPTY(THIS.oFoxcode.MenuItem)  AND UPPER(ALLTRIM(THIS.oFoxCode.Abbrev))=="PICTURE"
			RETURN
		CASE EMPTY(THIS.oFoxcode.MenuItem) 
			DIMENSION THIS.oFoxcode.Items[1,2]
			THIS.oFoxcode.Items[1,1] = "Image Picker..."
			THIS.oFoxcode.Items[1,2] = ""
			THIS.oFoxcode.ItemScript = "Picture"
			THIS.oFoxCode.ValueType = "L"
			RETURN ""
		OTHERWISE
			LOCAL lcPicture
			lcPicture = GETPICT()
			IF LEN(lcPicture) > 0
			  lcPicture = ['] + lcPicture+ [']
			ENDIF
			THIS.oFoxcode.ValueType = "V"
			RETURN lcPicture
		ENDCASE

ENDDEFINE
RESERVEDQ* Default script triggered by a space -- used for commands only
LPARAMETER oFoxCode
LOCAL loFoxCodeLoader, lcLine, lcCmd, lnWords, lcLastCmd, lcTalk
IF !FILE(_CODESENSE)
	RETURN ""
ENDIF

lcLine = ALLTRIM(oFoxCode.FullLine)
lcCmd =  UPPER(ALLTRIM(GETWORDNUM(lcLine,1)))
lnWords = GETWORDCOUNT(lcLine)
lcLastCmd = GETWORDNUM(lcLine,lnWords)
IF EMPTY(lcLine) OR LEFT(lcLine,1)="*" OR ;
    UPPER(lcLastCmd)=="AS" OR;
	(ATC("L", _VFP.EditorOptions)=0 AND _VFP.StartMode=0)
	RETURN ""
ENDIF

SET PROCEDURE TO (_CODESENSE) ADDITIVE
loFoxCodeLoader = CreateObject("FoxCodeLoader")
loFoxCodeLoader.Start(m.oFoxCode)
loFoxCodeLoader = NULL
IF ATC(_CODESENSE,SET("PROC"))#0
	RELEASE PROCEDURE (_CODESENSE)
ENDIF
RETURN ""

DEFINE CLASS FoxCodeLoader AS FoxCodeScript
	PROCEDURE Main()
		THIS.DefaultScript()
	ENDPROC
ENDDEFINE
RESERVED�LPARAMETER oFoxcode
LOCAL eRetVal, loFoxCodeLoader
IF !FILE(_CODESENSE)
	RETURN ""
ENDIF
SET PROCEDURE TO (_CODESENSE) ADDITIVE
loFoxCodeLoader = CreateObject("FoxCodeLoader")
eRetVal = loFoxCodeLoader.Start(m.oFoxCode)
loFoxCodeLoader = NULL
IF ATC(_CODESENSE,SET("PROC"))#0
	RELEASE PROCEDURE (_CODESENSE)
ENDIF
RETURN m.eRetVal

DEFINE CLASS FoxCodeLoader as FoxCodeScript

	PROCEDURE Main()
		LOCAL lnItems,i,aItems,lcCase
		DO CASE
		CASE EMPTY(THIS.oFoxCode.Data)
			THIS.DisplayTip(THIS.oFoxCode.tip)
		OTHERWISE
			IF THIS.nWords > 1
				RETURN ""
			ENDIF
			DIMENSION aItems[1]
			lnItems = ALINES(aItems, THIS.oFoxCode.Data)
			IF EMPTY(THIS.oFoxCode.Data) OR m.lnItems=0
				RETURN ""
			ENDIF
			DIMENSION THIS.oFoxcode.Items[m.lnItems,2]
			lcCase = THIS.oFoxCode.Case
			IF EMPTY(m.lcCase)  && Use default case
				m.lcCase = THIS.oFoxCode.DefaultCase
			ENDIF
			IF UPPER(m.lcCase)="X"   && Don't Expand
				RETURN ""
			ENDIF
			FOR i = 1 TO m.lnItems
				THIS.oFoxcode.Items[m.i,1] = THIS.AdjustCase(ALLTRIM(aItems[m.i]),lcCase)
			ENDFOR
			THIS.oFoxcode.ValueType = "L"
		ENDCASE
		RETURN THIS.AdjustCase()
	ENDPROC
ENDDEFINE
RESERVED�LPARAMETER oFoxcode
LOCAL eRetVal, loFoxCodeLoader
IF !FILE(_CODESENSE)
	RETURN ""
ENDIF
SET PROCEDURE TO (_CODESENSE) ADDITIVE
loFoxCodeLoader = CreateObject("FoxCodeLoader")
eRetVal = loFoxCodeLoader.Start(m.oFoxCode)
loFoxCodeLoader = NULL
IF ATC(_CODESENSE,SET("PROC"))#0
	RELEASE PROCEDURE (_CODESENSE)
ENDIF
RETURN m.eRetVal

DEFINE CLASS FoxCodeLoader as FoxCodeScript

	PROCEDURE Main()
		LOCAL lcItem, lnpos
		DO CASE
		CASE !EMPTY(THIS.oFoxcode.MenuItem) OR EMPTY(THIS.oFoxcode.cmd) OR;
			(THIS.oFoxcode.ParamNum<1 AND RIGHT(THIS.oFoxcode.FullLine,1) #  "(" )
		  	* returns item from dropmenu
			lcItem = THIS.oFoxcode.MenuItem
			IF !EMPTY(m.lcItem)
				THIS.oFoxcode.ValueType = "V"
				lnpos = ATC(' ',m.lcItem)
				IF m.lnpos > 0
					lcItem = LEFT(m.lcItem , m.lnpos - 1)
				ENDIF
			ENDIF
		  	IF !ISDIGIT(m.lcItem)
		  		lcItem = ["] + m.lcItem + ["]
		  	ENDIF
			RETURN  m.lcItem
		CASE RIGHT(THIS.oFoxcode.FullLine,1) = "("
 		 	* returns dropdown menu of available items
			THIS.GetItemList(UPPER(ALLTRIM(THIS.oFoxcode.Expanded)), .T., "funcmenu")
			RETURN THIS.AdjustCase()
		OTHERWISE
		 	RETURN ""
		ENDCASE
	ENDPROC

ENDDEFINE
RESERVED�LPARAMETER oFoxcode
LOCAL eRetVal, loFoxCodeLoader
IF !FILE(_CODESENSE)
	RETURN ""
ENDIF
SET PROCEDURE TO (_CODESENSE) ADDITIVE
loFoxCodeLoader = CreateObject("FoxCodeLoader")
eRetVal = loFoxCodeLoader.Start(m.oFoxCode)
loFoxCodeLoader = NULL
IF ATC(_CODESENSE,SET("PROC"))#0
	RELEASE PROCEDURE (_CODESENSE)
ENDIF
RETURN m.eRetVal

DEFINE CLASS FoxCodeLoader as FoxCodeScript

	PROCEDURE Main()
		LOCAL lnParmNum,lcLookupCode,lcItem,lnPos,lnLines,i
		LOCAL aTmpData, aParmData, lcType
		lcItem = THIS.oFoxcode.menuitem	
		IF ALLTRIM(LOWER(THIS.oFoxCode.abbrev))=="funcmenu2"
			IF EMPTY(m.lcItem)
				RETURN lcItem
			ENDIF
			* Handle menu item returned
			THIS.oFoxcode.valuetype = "V"
			lnpos = ATC(' ',m.lcItem)
			IF m.lnpos > 0
				lcItem = LEFT(m.lcItem , m.lnpos - 1)
			ENDIF
		    IF !ISDIGIT(m.lcItem)
		  		lcItem = ["] + m.lcItem + ["]
		  	ENDIF
			RETURN  m.lcItem
		ENDIF
		DIMENSION aTmpData[1]
		DIMENSION aParmData[1,3]
		STORE "" TO aParmData
		lnLines = ALINES(aTmpData,ALLTRIM(THIS.oFoxCode.data))
		FOR i = 1 TO lnLines
			IF ISDIGIT(aTmpData[m.i])
				lnParmNum = VAL(ALLTRIM(GETWORDNUM(aTmpData[m.i],1,",")))
				lcLookupCode = ALLTRIM(GETWORDNUM(aTmpData[m.i],2,","))
				lcType = ALLTRIM(GETWORDNUM(aTmpData[m.i],3,","))
				IF !EMPTY(lcLookupCode)
					IF !EMPTY(aParmData)
						DIMENSION aParmData[ALEN(aParmData,1)+1,3]
					ENDIF
					aParmData[ALEN(aParmData,1),1] = lnParmNum
					aParmData[ALEN(aParmData,1),2] = lcLookupCode
					aParmData[ALEN(aParmData,1),3] = lcType
				ENDIF
			ENDIF
		ENDFOR
		lnPos = ASCAN(aParmData,THIS.oFoxCode.paramnum+1,-1,-1,1)
		IF lnPos>0
			IF aParmData[lnPos+2]="T"
				* Display parameter tip
				THIS.GetCmdTip(aParmData[lnPos+1],"F")
			ELSE
				* Display parameter menu
				THIS.GetItemList(aParmData[lnPos+1], .T., "funcmenu2")
			ENDIF
		  	RETURN ""
		ENDIF
		THIS.oFoxCode.valuetype='V'
		RETURN THIS.AdjustCase()
	ENDPROC

ENDDEFINE
RESERVED�LPARAMETER oFoxcode
LOCAL eRetVal, loFoxCodeLoader
IF !FILE(_CODESENSE)
	RETURN ""
ENDIF
SET PROCEDURE TO (_CODESENSE) ADDITIVE
loFoxCodeLoader = CreateObject("FoxCodeLoader")
eRetVal = loFoxCodeLoader.Start(m.oFoxCode)
loFoxCodeLoader = NULL
IF ATC(_CODESENSE,SET("PROC"))#0
	RELEASE PROCEDURE (_CODESENSE)
ENDIF
RETURN m.eRetVal

DEFINE CLASS FoxCodeLoader as FoxCodeScript

	* Some folks do not like to have entire SET command expanded for them.
	* For example: selecting STEP would autoexpand to STEP ON
	* lEnableFullSetDisplay controls if we expand to STEP or STEP ON
	lEnableFullSetDisplay = .T.
	
	PROCEDURE Main()
		LOCAL lcMenu, lcItem, lcCmd, lEnableFullSetDisplay, lcFirstWord
		DO CASE
		CASE !EMPTY(THIS.oFoxcode.MenuItem) OR THIS.oFoxcode.ParamNum=0
			* Next time to display value
		  	lcMenu = THIS.oFoxcode.menuitem
		  	IF EMPTY(m.lcMenu)
				RETURN
		  	ENDIF
		  	lcCmd = UPPER(LEFT(THIS.oFoxCode.FullLine, ATC(' ', THIS.oFoxCode.FullLine)))
			THIS.GetCmdTip(m.lcCmd+m.lcMenu)
			lcFirstWord = GETWORDNUM(m.lcMenu,1)
			IF VARTYPE(THIS.lEnableFullSetDisplay)="L" AND !THIS.lEnableFullSetDisplay ;
				AND !INLIST(UPPER(lcFirstWord),"COLLATE","DATABASE","STRICTDATE") ;
				AND !INLIST(UPPER(m.lcMenu),"STATUS BAR")
				lcMenu = lcFirstWord
			ENDIF
			THIS.oFoxcode.ValueType = "V"
			RETURN m.lcMenu
		CASE RIGHT(THIS.oFoxcode.FullLine,1) = ' ' AND UPPER(GETWORDNUM(THIS.oFoxcode.FullLine,1)) = "SET"
			* First time to display entire SET list
			lcItem = ALLTRIM(THIS.oFoxcode.Expanded)
			THIS.GetItemList(m.lcItem,.T.,"setmenu","",.T.)
			RETURN THIS.AdjustCase()
		OTHERWISE
			RETURN ""
		ENDCASE
	ENDPROC
	
ENDDEFINERESERVED�* Note: this script doesn't get called directly, but rather from default script
LPARAMETER oFoxcode
LOCAL i,lnPJX
lnPJX = _VFP.Projects.Count
IF m.lnPJX = 0
 	RETURN .F.
ENDIF
DIMENSION oFoxcode.Items[m.lnPJX,2]
FOR i = 1 TO m.lnPJX
	oFoxcode.Items[m.i,1] = ["]+FORCEEXT(_VFP.Projects[m.i].Name,"") +["]+ " FROM " + ["]+_VFP.Projects[m.i].Name+["]
	oFoxcode.Items[m.i,2] = ""
ENDFOR
oFoxcode.ValueType = "L"
RESERVED�* Note: this script doesn't get called directly, but rather from default script
LPARAMETER oFoxcode
DIMENSION oFoxcode.Items[22,2]
WITH oFoxcode
	.Items[1,1] = 'LEFTARROW'
	.Items[2,1] = 'RIGHTARROW'
	.Items[3,1] = 'UPARROW'
	.Items[4,1] = 'DNARROW'
	.Items[5,1] = 'HOME'
	.Items[6,1] = 'END'
	.Items[7,1] = 'PGUP'
	.Items[8,1] = 'PGDN'
	.Items[9,1] = 'ESC'
	.Items[10,1] = 'DEL'
	.Items[11,1] = 'BACKSPACE'
	.Items[12,1] = 'SPACEBAR'
	.Items[13,1] = 'INS'
	.Items[14,1] = 'TAB'
	.Items[15,1] = 'BACKTAB'
	.Items[16,1] = 'ENTER'
	.Items[17,1] = 'CTRL+A'
	.Items[18,1] = 'SHIFT+F1'
	.Items[19,1] = 'ALT+F1'
	.Items[20,1] = 'LEFTMOUSE'
	.Items[21,1] = 'RIGHTMOUSE'
	.Items[22,1] = 'MOUSE'
	.ValueType = "L"
ENDWITHRESERVED	LPARAMETER oFoxcode
LOCAL eRetVal, loFoxCodeLoader
IF !FILE(_CODESENSE)
	RETURN ""
ENDIF
SET PROCEDURE TO (_CODESENSE) ADDITIVE
loFoxCodeLoader = CreateObject("FoxCodeLoader")
eRetVal = loFoxCodeLoader.Start(m.oFoxCode)
loFoxCodeLoader = NULL
IF ATC(_CODESENSE,SET("PROC"))#0
	RELEASE PROCEDURE (_CODESENSE)
ENDIF
RETURN m.eRetVal

DEFINE CLASS FoxCodeLoader as FoxCodeScript
	
	PROCEDURE Main()
		LOCAL lcDBGetCode
		DO CASE
	  	CASE THIS.oFoxCode.paramnum < 1
			THIS.oFoxCode.valuetype='V'
			RETURN THIS.AdjustCase()
		CASE THIS.oFoxCode.paramnum = 1
			THIS.GetItemList("DBGET", .T., "funcmenu2", '', This.oFoxCode.Case)
		CASE THIS.oFoxCode.paramnum = 2
		  	DO CASE	  	
			CASE ATC(["CONNECTION"],THIS.oFoxCode.FullLine)#0
				lcDBGetCode = "DBGE1"
			CASE ATC(["DATABASE"],THIS.oFoxCode.FullLine)#0
				lcDBGetCode = "DBGE2"
			CASE ATC(["FIELD"],THIS.oFoxCode.FullLine)#0
				lcDBGetCode = "DBGE3"
			CASE ATC(["TABLE"],THIS.oFoxCode.FullLine)#0
				lcDBGetCode = "DBGE4"
			CASE ATC(["VIEW"],THIS.oFoxCode.FullLine)#0
				lcDBGetCode = "DBGE5"
		  	OTHERWISE
		  		THIS.oFoxCode.valuetype='V'
				RETURN THIS.AdjustCase()
		  	ENDCASE
			THIS.GetItemList(lcDBGetCode, .T., "funcmenu2", '')
		ENDCASE
		RETURN ""
	ENDPROC
	
ENDDEFINE
RESERVED!LPARAMETER oFoxcode
LOCAL eRetVal, loFoxCodeLoader
IF !FILE(_CODESENSE)
	RETURN ""
ENDIF
SET PROCEDURE TO (_CODESENSE) ADDITIVE
loFoxCodeLoader = CreateObject("FoxCodeLoader")
eRetVal = loFoxCodeLoader.Start(m.oFoxCode)
loFoxCodeLoader = NULL
IF ATC(_CODESENSE,SET("PROC"))#0
	RELEASE PROCEDURE (_CODESENSE)
ENDIF
RETURN m.eRetVal

DEFINE CLASS FoxCodeLoader as FoxCodeScript

	PROCEDURE Main()
		LOCAL lcItem, lnPos, lcMenu, lcFuncKey,lnParm, lSaveError
		lcMenu = THIS.oFoxcode.MenuItem
		lnParm = THIS.oFoxcode.ParamNum
		DO CASE
		CASE !EMPTY(m.lcMenu) OR EMPTY(THIS.oFoxcode.cmd) OR m.lnParm>-1 OR;
			(m.lnParm<1 AND RIGHT(THIS.oFoxcode.FullLine,1)#"(")
		  	* returns item from dropmenu
			lcItem = lcMenu
			lcFuncKey = ALLTRIM(UPPER(THIS.oFoxCode.Abbrev))
			IF !EMPTY(m.lcItem)
				THIS.oFoxcode.valuetype = "V"
				lnpos = ATC(' ',m.lcItem)
				* Handle multi words except status
				IF m.lnpos > 0 AND ATC("STATUS BAR",m.lcItem)=0
					lcItem = LEFT(m.lcItem , m.lnpos - 1)
				ENDIF
			ENDIF
		  	IF !ISDIGIT(m.lcItem) AND (lnParm = -1 OR !EMPTY(lcItem))
		  		lcItem = ["] + m.lcItem + ["]
		  		RETURN m.lcItem
		  	ENDIF
			IF lnParm >0
				lnPos = RATC(m.lcFuncKey+"(", UPPER(THIS.oFoxCode.FullLine))
				lcItem = SUBSTR(THIS.oFoxCode.FullLine,m.lnPos+4)
				IF ISDIGIT(lcItem) AND ATC(")",lcItem)=0
					lcItem = TRANS(VAL(lcItem))					
				ELSE	
					lcItem = GETWORDNUM(lcItem,1,",")
				ENDIF
			ENDIF
			lcItem = CHRTRAN(m.lcItem,",","")
			IF ATC(LEFT(m.lcItem,1),['"[])#0
				lSaveError = THIS.lHideScriptErrors
				THIS.lHideScriptErrors=.T.
				lcItem = EVAL(m.lcItem)
				THIS.lHideScriptErrors=lSaveError
			ENDIF
			THIS.GetSysTip(lcItem,lcFuncKey)
			IF EMPTY(lcItem)
				RETURN ""
			ENDIF
			RETURN lcItem
		CASE RIGHT(THIS.oFoxcode.FullLine,1)="("
			* returns dropdown menu of available items
			lcItem = UPPER(ALLTRIM(THIS.oFoxcode.Expanded))
			THIS.GetItemList(m.lcItem , .T., "setsysmenu")
			RETURN THIS.AdjustCase()
		OTHERWISE
		 	RETURN ""
		ENDCASE
	ENDPROC
	
ENDDEFINERESERVED�* Note: this script doesn't get called directly, but rather from default script
#DEFINE CURRENTSETTING_LOC	"(current setting)"
#DEFINE	ON_LOC	"On"
#DEFINE	OFF_LOC	"Off"

LPARAMETER oFoxcode
LOCAL lcSetCmd, lcCmd, lcCase
DIMENSION oFoxcode.Items[2,2]
lcCase = oFoxCode.Case
IF EMPTY(ALLTRIM(lcCase))
	lcCase = oFoxCode.DefaultCase
	IF EMPTY(ALLTRIM(lcCase))
		lcCase = "M"
	ENDIF
ENDIF
oFoxcode.Items[1,1] = AdjustCase(ON_LOC,lcCase)
oFoxcode.Items[2,1] = AdjustCase(OFF_LOC,lcCase)
IF UPPER(GETWORDNUM(oFoxCode.FullLine,1)) = "SET"
	lcSetCmd = ALLTRIM(GETWORDNUM(oFoxCode.FullLine,2))
	IF EMPTY(lcSetCmd)
		lcSetCmd = ALLTRIM(oFoxCode.MenuItem)
	ENDIF
	lcCmd = UPPER(lcSetCmd)
	IF !INLIST(lcCmd,"TALK","ESCAPE","EXCLUSIVE","CONSOLE","DEBUG")
		oFoxcode.Items[IIF(SET(m.lcSetCmd)="ON",1,2),2] = CURRENTSETTING_LOC
	ENDIF
ENDIF
oFoxcode.ValueType = "L"

PROCEDURE AdjustCase(cItem,cCase)
	* Adjusts case of keyword expanded to that specified in the _Foxcode script.
	* Use Version record default if empty
	DO CASE
	CASE UPPER(m.cCase)="U"
	 	RETURN UPPER(m.cItem)
	CASE UPPER(m.cCase)="L"
	 	RETURN LOWER(m.cItem)
	CASE UPPER(m.cCase)="P"
	 	RETURN PROPER(m.cItem)
	OTHERWISE
		RETURN m.cItem
	ENDCASE
ENDPROC
RESERVED:LPARAMETER oFoxCode
LOCAL loFoxWS
loFoxWS = CreateObject("FoxWSHandler")
loFoxWS.cWSIsenseClass = "wsclient"
loFoxWS.cWSIsenseClassLib = HOME() + "ffc\_webservices"
RETURN loFoxWS.Main(oFoxCode)

DEFINE CLASS FoxWSHandler as Session
	cWSIsenseClass = ""
	cWSIsenseClassLib = ""
	PROCEDURE Main(oFoxCode)
		LOCAL loWS
		loWS = NEWOBJECT(THIS.cWSIsenseClass, THIS.cWSIsenseClasslib)
		IF VARTYPE(loWS)#"O"
			RETURN ""
		ENDIF	
		RETURN loWS.Main(oFoxCode)
	ENDPROC
	PROCEDURE Error(nError, cMethod, nLine)
		MESSAGEBOX(MESSAGE())
	ENDPROC
ENDDEFINE
RESERVEDNLPARAMETERS oFoxcode

IF oFoxcode.Location #1
   RETURN "DC"
ENDIF

oFoxcode.valuetype = "V"

TEXT TO myvar TEXTMERGE NOSHOW
DEFINE CLASS ~classname~ AS Session OLEPUBLIC

PROCEDURE Init

ENDPROC

PROCEDURE Destroy

ENDPROC

PROCEDURE Error(nError, cMethod, nLine)

ENDPROC

ENDDEFINE

ENDTEXT

RETURN myvar@lEnableFullSetDisplay Controls whether autoexpansion of a SET command includes the second word (e.g., TO).
lHideScriptErrors Suppresses output to screen of error information when an Intellisense script error occurs (applies to FoxCodeScript objects).
lKeywordCapitalization Enables capitalization and expansion of keywords associated with Visual FoxPro commands.
lPropertyValueEditors Enables scripts, which trigger value editors, for certain properties.
lExpandCOperators Auto expands C type operators such as ++,--,+=,-=,*= and /=.
lAllowCustomDefScripts Enable scripts to be plugged into the default script handler.
lEnableMultiWordCmdExpansion Controls whether expansion of multi word commands occur (e.g., ZOOM WINDOW).
lDebugScripts Allows debugging (tracing) of IntelliSense scripts (applies to FoxCodeScript objects).�lEnableFullSetDisplay = .T.
lHideScriptErrors = .T.
lKeywordCapitalization = .T.
lPropertyValueEditors = .T.
lExpandCOperators = .T.
lAllowCustomDefScripts = .T.
lEnableMultiWordCmdExpansion = .F.
lDebugScripts = .F.
RESERVED
zdef
zlocRESERVEDHDO CASE
<<lcSpace>>CASE ~

<<lcSpace>>OTHERWISE

<<lcSpace>>ENDCASEDO WHILE ~

<<lcSpace>>ENDDOIF ~

<<lcSpace>>ENDIF+IF ~

<<lcSpace>>ELSE

<<lcSpace>>ENDIFFOR EACH ~

<<lcSpace>>ENDFORFOR ~

<<lcSpace>>ENDFORSCAN ~

<<lcSpace>>ENDSCAN0TEXT TO ~ NOSHOW TEXTMERGE

<<lcSpace>>ENDTEXTWITH ~

<<lcSpace>>ENDWITHOTRY 
<<lcSpace>>~
<<lcSpace>>CATCH

<<lcSpace>>FINALLY

<<lcSpace>>ENDTRY�LPARAMETER oFoxcode
LOCAL eRetVal, loFoxCodeLoader
IF !FILE(_CODESENSE)
	RETURN ""
ENDIF
SET PROCEDURE TO (_CODESENSE) ADDITIVE
loFoxCodeLoader = CreateObject("FoxCodeLoader")
eRetVal = loFoxCodeLoader.Start(m.oFoxCode)
loFoxCodeLoader = NULL
IF ATC(_CODESENSE,SET("PROC"))#0
	RELEASE PROCEDURE (_CODESENSE)
ENDIF
RETURN eRetVal 

DEFINE CLASS FoxCodeLoader as FoxCodeScript

	PROCEDURE Main
		LOCAL lcActxDBF, lcLastKey
		lcActxDBF = HOME() + "foxrefs.dbf"
		DO CASE
		CASE !FILE(lcActxDBF) OR THIS.oFoxCode.Location=0
			THIS.oFoxCode.ValueType = "L"
			RETURN THIS.AdjustCase()
		CASE EMPTY(THIS.oFoxcode.MenuItem)  AND UPPER(THIS.oFoxCode.Abbrev)="IMPL"
			DIMENSION THIS.oFoxcode.Items[1,2]
			THIS.oFoxcode.Items[1,1] = "Select Interface..."
			THIS.oFoxcode.Items[1,2] = ""
			THIS.oFoxcode.ItemScript = "GetImplements"
			THIS.oFoxCode.ValueType = "L"
			RETURN THIS.AdjustCase()
		CASE EMPTY(THIS.oFoxcode.MenuItem) 
			RETURN
		OTHERWISE
			lKey= LASTKEY()
			#DEFINE STSEL		17
			#DEFINE ENDSEL	18
			LOCAL lcData, env
			DIMENSION env[25]
			lcfxtoollib = SYS(2004)+"FOXTOOLS.FLL"
			IF !FILE(lcfxtoollib)
				RETURN .F.
			ENDIF
			SET LIBRARY TO (m.lcfxtoollib) ADDITIVE
			tnWinHdl = _WONTOP()
			lcLastKey = LASTKEY( )
			lcData=THIS.GetInterface()
			IF !EMPTY(lcData)
				_wselect(tnWinHdl)
				_EdGetEnv(tnWinHdl,@env)
				_EDINSERT(tnWinHdl, lcData, LEN(lcData))
				_EDSETPOS(tnWinHdl, env[STSEL])
				IF lcLastKey=13	&& user hit Return -- note Mouse click also does this.			
					KEYBOARD '{BACKSPACE}'
					KEYBOARD '{SPACEBAR}'
				ENDIF
			ENDIF
			THIS.oFoxCode.ValueType = "T"
			RETURN ""
		ENDCASE
		
	ENDPROC
ENDDEFINERESERVEDGLPARAMETER oFoxcode
LOCAL eRetVal, loFoxCodeLoader
IF !FILE(_CODESENSE)
	RETURN ""
ENDIF
SET PROCEDURE TO (_CODESENSE) ADDITIVE
loFoxCodeLoader = CreateObject("FoxCodeLoader")
eRetVal = loFoxCodeLoader.Start(m.oFoxCode)
loFoxCodeLoader = NULL
IF ATC(_CODESENSE,SET("PROC"))#0
	RELEASE PROCEDURE (_CODESENSE)
ENDIF
RETURN eRetVal 

DEFINE CLASS FoxCodeLoader as FoxCodeScript

	PROCEDURE Main
	
		IF VARTYPE(THIS.lPropertyValueEditors)#"L" OR !THIS.lPropertyValueEditors
			RETURN
		ENDIF

		DO CASE
		CASE EMPTY(THIS.oFoxcode.MenuItem)  AND UPPER(ALLTRIM(THIS.oFoxCode.Abbrev))=="CLASSLIB"
			RETURN
		CASE EMPTY(THIS.oFoxcode.MenuItem) 
			DIMENSION THIS.oFoxcode.Items[1,2]
			THIS.oFoxcode.Items[1,1] = "Class Picker..."
			THIS.oFoxcode.Items[1,2] = ""
			THIS.oFoxcode.ItemScript = "Classlib"
			THIS.oFoxCode.ValueType = "L"
			RETURN ""
		OTHERWISE
			LOCAL lcFile
			lcFile = GETFILE("VCX,PRG")
			IF LEN(lcFile) > 0
			  lcFile = ['] + lcFile+ [']
			ENDIF
			THIS.oFoxcode.ValueType = "V"
			RETURN lcFile
		ENDCASE
		
	ENDPROC
	
ENDDEFINE
RESERVEDELPARAMETER oFoxcode
LOCAL eRetVal, loFoxCodeLoader
IF !FILE(_CODESENSE)
	RETURN ""
ENDIF
SET PROCEDURE TO (_CODESENSE) ADDITIVE
loFoxCodeLoader = CreateObject("FoxCodeLoader")
eRetVal = loFoxCodeLoader.Start(m.oFoxCode)
loFoxCodeLoader = NULL
IF ATC(_CODESENSE,SET("PROC"))#0
	RELEASE PROCEDURE (_CODESENSE)
ENDIF
RETURN eRetVal 

DEFINE CLASS FoxCodeLoader as FoxCodeScript
	PROCEDURE Main			
		IF THIS.nWords > 1
			* Triggers default script DisplayTip
			RETURN .F.
		ENDIF
		
		THIS.oFoxcode.ValueType = "T"
		THIS.oFoxcode.ValueTip = THIS.oFoxcode.Tip

		IF VARTYPE(THIS.lEnableMultiWordCmdExpansion)="L" AND !THIS.lEnableMultiWordCmdExpansion
			RETURN THIS.AdjustCase(GETWORDNUM(ALLTRIM(THIS.oFoxcode.Expanded),1), THIS.oFoxcode.Case)
		ELSE
			RETURN THIS.AdjustCase()
		ENDIF
		
	ENDPROC
ENDDEFINERESERVEDJLPARAMETER oFoxcode
LOCAL eRetVal, loFoxCodeLoader
IF !FILE(_CODESENSE)
	RETURN ""
ENDIF
SET PROCEDURE TO (_CODESENSE) ADDITIVE
loFoxCodeLoader = CreateObject("FoxCodeLoader")
eRetVal = loFoxCodeLoader.Start(m.oFoxCode)
loFoxCodeLoader = NULL
IF ATC(_CODESENSE,SET("PROC"))#0
	RELEASE PROCEDURE (_CODESENSE)
ENDIF
RETURN eRetVal 

DEFINE CLASS FoxCodeLoader AS FoxCodeScript
            cProxyClass = "wsfoxcode"
            cProxyClasslib = HOME()+"ffc\_ws3utils"
            PROCEDURE Main
                        LOCAL loWS
                        loWS = NEWOBJECT(THIS.cProxyClass, THIS.cProxyClasslib)
                        IF VARTYPE(loWS) # "O"
                                    RETURN ""
                        ENDIF
                        RETURN loWS.Main(THIS.oFoxCode)
            ENDPROC
ENDDEFINE
RESERVED�LPARAMETER oFoxcode

LOCAL lcLine, lcSpace, lnPos, lcCase, lcData
lcLine = oFoxcode.FullLine
IF oFoxcode.Location=0 OR GETWORDCOUNT(lcLine)#1
   RETURN oFoxcode.UserTyped
ENDIF
lnPos = ATC(ALLTRIM(oFoxcode.Abbrev),lcLine)
lcSpace = SUBSTR(lcLine,1,lnPos-1)
oFoxcode.valuetype = "V"

* Get case
lcCase = oFoxCode.Case
IF EMPTY(ALLTRIM(lcCase))
	lcCase = oFoxCode.DefaultCase
	IF EMPTY(ALLTRIM(lcCase))
		lcCase = "M"
	ENDIF
ENDIF

* Process and return expanded control statement
lcData = AdjustCase(oFoxCode.Data, lcCase)
RETURN TEXTMERGE(lcData)

PROCEDURE AdjustCase(cItem, cCase)
	* Adjusts case of keyword expanded to that specified in the _Foxcode script.
	* Use Version record default if empty
	DO CASE
	CASE UPPER(m.cCase)="U"
	 	RETURN UPPER(m.cItem)
	CASE UPPER(m.cCase)="L"
	 	RETURN LOWER(m.cItem)
	CASE UPPER(m.cCase)="P"
	 	RETURN PROPER(m.cItem)
	OTHERWISE
		RETURN m.cItem
	ENDCASE
ENDPROC
RESERVEDLPARAMETER oFoxScript

* This script iterates thru all the #DEFINEs in the routine and lists them.
* It also iterates through and #INCLUDE files that may exists as well (both for
* programs and snippets). The PARAMETER passed in is reference to 
* FoxCodeScript object. SCX files are not supported for #INCLUDES since
* VFP opens them up in designer exclusively.
*
* To enable this script, make sure that you have the lAllowCustomDefScripts 
* custom property set to .T. (you can set this in the IntelliSense Manager).

LOCAL lcfxtoollib, lnWinHdl, laEnv, lcStr, lnLines, i, lcLine, lcDefDesc, laLines, lcLastWord, lcSaveStr

IF oFoxScript.oFoxcode.Location=0	&&Command Window
	RETURN .F.
ENDIF

IF !UPPER(oFoxScript.oFoxcode.UserTyped) == UPPER(oFoxScript.cCustomScriptName)   && ZDEF script
	RETURN .F.
ENDIF

lcfxtoollib = SYS(2004)+"FOXTOOLS.FLL"
IF !FILE(lcfxtoollib)
	RETURN .F.
ENDIF
SET LIBRARY TO (m.lcfxtoollib) ADDITIVE

lnWinHdl = _WONTOP()
_wselect(lnWinHdl)

DIMENSION laEnv[25]
_EdGetEnv(lnWinHdl ,@laEnv)
lcStr = _EDGETSTR(lnWinHdl , 0, laEnv[17])
lcSaveStr = lcStr
GetIncludeDefs(lcStr, oFoxScript.oFoxCode)

* Check for Code Snippet #INCLUDE files
IF oFoxScript.oFoxCode.Location=10
	DIMENSION laObj[1]
	IF aSelObj(laObj, 3)#0 AND FILE(laObj[3])
		GetIncludeDefs(FILETOSTR( laObj[3]), oFoxScript.oFoxCode)
	ENDIF
ENDIF

IF !EMPTY(oFoxScript.oFoxcode.Items[1])
	DIMENSION laLines[1]
	lnLines = ALINES(laLines,lcSaveStr )
	lcLastWord = ALLTRIM(GETWORDNUM( laLines[ALEN(laLines)] , GETWORDCOUNT(laLines[ALEN(laLines)] )))
	lcLastWord=LEFT(lcLastWord, LEN(lcLastWord) - LEN(oFoxScript.cCustomScriptName))
	oFoxScript.ReplaceWord(lcLastWord)

	* Handle extra space
	IF ASC(RIGHT(oFoxScript.oFoxCode.FullLine,1))=32
		_EDSETPOS(lnWinHdl, _EDGETPOS(lnWinHdl) - 1)
	ENDIF
	oFoxScript.oFoxCode.ValueType = "L"
ENDIF

RETURN ""

PROCEDURE GetIncludeDefs(tcStr, toFoxCode)
	LOCAL lcStr1, lnLines, i, lcLine, lcDefDesc, laLines, lnALen, lcDefWord, lcIncludeFile, lcStr2

	IF EMPTY(tcStr)
		RETURN
	ENDIF
	lcStr1 = tcStr
	
	DIMENSION laLines[1]
	lnLines = ALINES(laLines,lcStr1)

	FOR i = 1 TO lnLines
		lcLine = ALLTRIM(laLines[m.i])
		IF UPPER(LEFT(lcLine,5)) = "#INCL"		
			lcIncludeFile = GETWORDNUM(lcLine,2)
			IF FILE(lcIncludeFile)
				lcStr2 = FILETOSTR( lcIncludeFile)
				GetIncludeDefs(lcStr2, toFoxCode)
			ENDIF
		ENDIF
		IF !UPPER(LEFT(lcLine,5)) = "#DEFI"
			LOOP
		ENDIF
		lnALen = ALEN(toFoxCode.Items,1)
		IF !EMPTY(toFoxCode.Items[1])
			DIMENSION toFoxCode.Items[lnALen+1,2]
			lnALen = ALEN(toFoxCode.Items,1)
		ENDIF
		lcDefWord = GETWORDNUM(lcLine, 2)
		toFoxCode.Items[lnALen, 1] = lcDefWord
		lcDefDesc = SUBSTR(lcLine, ATC(lcDefWord,lcline)+LEN(lcDefWord))
		toFoxCode.Items[lnALen, 2] = lcDefDesc 
	ENDFOR
ENDPROCRESERVED�LPARAMETER oFoxScript

* This script iterates thru all the Locals in the routine and lists them.
* The PARAMETER passed in is reference to FoxCodeScript object.
* The routine is smart and detects scope so that locals in procedures
* above or below are excluded. 
*
* To enable this script, make sure that you have the lAllowCustomDefScripts 
* custom property set to .T. (you can set this in the IntelliSense Manager).

LOCAL lcfxtoollib, lnWinHdl, laEnv, lcStr, lnLines, i, lcLine, lcDefDesc, laLines, lcLastWord 
IF oFoxScript.oFoxcode.Location=0	&&Command Window
	RETURN .F.
ENDIF

IF !UPPER(oFoxScript.oFoxcode.UserTyped) == UPPER(oFoxScript.cCustomScriptName)   &&Script = ZLOC
	RETURN .F.
ENDIF

lcfxtoollib = SYS(2004)+"FOXTOOLS.FLL"
IF !FILE(lcfxtoollib)
	RETURN .F.
ENDIF
SET LIBRARY TO (m.lcfxtoollib) ADDITIVE

lnWinHdl = _WONTOP()
_wselect(lnWinHdl)

DIMENSION laEnv[25]
_EdGetEnv(lnWinHdl ,@laEnv)
lcStr = _EDGETSTR(lnWinHdl , 0, laEnv[17])

GetLocDefs(lcStr, oFoxScript.oFoxCode)

IF !EMPTY(oFoxScript.oFoxcode.Items[1])
	DIMENSION laLines[1]
	lnLines = ALINES(laLines,lcStr)
	lcLastWord = ALLTRIM(GETWORDNUM( laLines[ALEN(laLines)] , GETWORDCOUNT(laLines[ALEN(laLines)] )))
	lcLastWord=LEFT(lcLastWord, LEN(lcLastWord) - LEN(oFoxScript.cCustomScriptName))
	oFoxScript.ReplaceWord(lcLastWord)
	* Handle extra space
	IF ASC(RIGHT(oFoxScript.oFoxCode.FullLine,1))=32
		_EDSETPOS(lnWinHdl, _EDGETPOS(lnWinHdl) - 1)
	ENDIF
	oFoxScript.oFoxCode.ValueType = "L"
ENDIF

RETURN ""


PROCEDURE GetLocDefs(tcStr, toFoxCode)
	LOCAL lcStr, lnLines, i, lcLine, laLines, lnALen, j, lcWord, lcWords, lnFirstLine, lcInlineParms
	LOCAL lnPos1, lnPos2, lHasLineContinuation 
	lcInlineParms = ""
	
	IF EMPTY(tcStr)
		RETURN
	ENDIF
	lcStr = tcStr
	
	DIMENSION laLines[1]
	lnLines = ALINES(laLines,lcStr)

	* Quick search backward to find its procedure
	FOR i = lnLines TO 1 STEP -1
		lcWord = ALLTRIM(GETWORDNUM(ALLTRIM(laLines[m.i]), 1))
		IF LEN(lcWord)>3 AND (ATC(lcWord,"PROCEDURE")#0 OR ATC(lcWord,"FUNCTION")#0)
			* since we are here, let's handle any inline parms
			lcWord = ALLTRIM(laLines[m.i])
			IF ATC(REPLICATE("&",2), lcWord)#0   && strip out comments
				lcWord = ALLTRIM(LEFT(lcWord, ATC(REPLICATE("&",2),lcWord)-1) ) 
			ENDIF
			lnPos1 = ATC("(", lcWord)
			lnPos2 = RATC(")", lcWord)
			* Check for inline parms
			IF lnPos1#0 AND lnPos2#0
				* inline parms
				lcInlineParms = ALLTRIM(SUBSTRC(lcWord, lnPos1+1, lnPos2 - lnPos1 - 1))
			ENDIF
			EXIT
		ENDIF
	ENDFOR
	lnFirstLine = MAX(m.i,1)
		
	* Iterate through each line
	lHasLineContinuation = .F.
	FOR i = lnFirstLine TO lnLines
		lcLine = ALLTRIM(laLines[m.i])
		IF lHasLineContinuation
			IF LEFT(GETWORDNUM(lcLine,1),1)=","
				lcLine = SUBSTRC(lcLine,ATC(",",lcLine)+1)
			ENDIF
			lcLine = "LOCAL " + lcLine
		ENDIF
		lcWord = ALLTRIM(GETWORDNUM(lcLine, 1))
		
		* Loop upward until we encounter a PROC or 
		* FUNCTION call indicating out of scope.
		IF LEN(lcWord)>3 AND (ATC(lcWord,"PROCEDURE")#0 OR ATC(lcWord,"FUNCTION")#0)
			* Check for inline parms
			IF EMPTY(lcInlineParms)
				LOOP
			ENDIF
			lcLine = "LPARAMETERS " + lcInlineParms
			lcWord = "LPARAMETERS"
		ENDIF

		* Look only for LOCAL, PUBLIC, PARAM or LPARAM statements
		IF LEN(lcWord)>3 AND ;
		  	( ATC(lcWord+" ","LOCAL ")#0 OR ;
			 ATC(lcWord,"PUBLIC")#0 OR;
			 ATC(lcWord,"PARAMETERS")#0 OR;
			 ATC(lcWord,"LPARAMETERS")#0  )
		ELSE
			LOOP
		ENDIF

		lcWords = SUBSTRC(lcLine, ATC(GETWORDNUM(lcLine, 2), lcLine))
		IF ATC(REPLICATE("&",2), lcWords)#0   		&& strip out comments
			lcWords = ALLTRIM(LEFT(lcWords, ATC(REPLICATE("&",2),lcWords)-1) ) 	
		ENDIF
		
		* Have a valid statement so now Iterate through each word (separated by comma)
		FOR j = 1 to GETWORDCOUNT(lcWords, ",")

			lcWord = GETWORDNUM(lcWords, m.j, ",")
			
			* If arrays, then we need to parse out the indexes
			IF UPPER(GETWORDNUM(lcWord,1)) == "ARRAY"
				* Skip to second word
				lcWord = GETWORDNUM(lcWord,2)
			ENDIF

			lcWord = ALLTRIM(GETWORDNUM(lcWord,1))

			* Parse out any array stuff.
			DO CASE
			CASE ATC("[", lcWord)#0
				lcWord = LEFT(lcWord, ATC("[", lcWord)-1)
			CASE ATC("(", lcWord)#0
				lcWord = LEFT(lcWord, ATC("(", lcWord)-1)
			CASE ATC("]", lcWord)#0 OR ATC(")",lcWord)#0
				LOOP
			CASE ATC(";", lcWord)#0
				lcWord = LEFT(lcWord,  ATC(";", lcWord)-1)
				IF EMPTY(lcWord)
					LOOP
				ENDIF
			ENDCASE
			
			lnALen = ALEN(toFoxCode.Items,1)
			IF !EMPTY(toFoxCode.Items[1])
				DIMENSION toFoxCode.Items[lnALen+1,2]
				lnALen = ALEN(toFoxCode.Items,1)
			ENDIF
			toFoxCode.Items[lnALen, 1] = lcWord	
		ENDFOR
		* Check for line continuation
		lHasLineContinuation = (RIGHT(lcWords,1) = ";")
	ENDFOR
	
ENDPROC
RESERVEDw#DEFINE 	IBOX_CAPTION	"Caption Property Editor"
#DEFINE 	IBOX_TEXT		"Enter value for property: "
#DEFINE 	USER_CANCEL		"__usercancelled__"

LPARAMETERS tcProp
LOCAL ARRAY laObjs[1]
LOCAL lcRetVal, lnCnt, loCtl,lcDefValue, lnSuccess
IF ASELOBJ( laObjs)=0
	IF ASELOBJ( laObjs,1)=0
		RETURN
	ENDIF
ENDIF
lcDefValue=IIF(ALEN( laObjs,1)=1,laObjs[1].&tcProp,"")
lcRetVal=INPUTBOX(IBOX_TEXT + tcProp, IBOX_CAPTION, lcDefValue, 0, "", USER_CANCEL)
IF lcRetVal==USER_CANCEL
	RETURN
ENDIF
FOR lnCnt = 1 TO ALEN( laObjs,1)
	loCtl = laObjs[lnCnt]
	IF PEMSTATUS( loCtl, tcProp, 5 )
		loCtl.&tcProp = lcRetVal
	ENDIF
ENDFORRESERVED�<VFPData><memberdata name="caption" type="property" favorites="True" script="DO (_CODESENSE) WITH 'RunPropertyEditor','','caption'" aaa="123"/></VFPData>RESERVED}<VFPData><memberdata name="anchor" type="property" favorites="True" script="do HOME()+'WIZARDS\AnchorEditor.app'"/></VFPData>RESERVED�LPARAMETERS oFoxcode

IF oFoxcode.Location # 0
   RETURN "DX"
ENDIF

oFoxcode.valuetype = "V"

RETURN [DO HOME() + "DataExplorer.app"]