Mini Kabibi Habibi

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

%RVERSION =   3.00_labelPixelsClass1label_labellabel
_hyperlinkPixels11_customaddtoproject
PixelsFoundation Custom class._gridcheckboxPixelsClass	hyperlink	activedocoptiongroup	_checkboxcheckbox1ClassPixels	_checkbox!Arial, 0, 9, 5, 15, 12, 13, 3, 0
	pageframe	hyperlink
_hyperlink!Arial, 0, 9, 5, 15, 12, 13, 3, 0
Class1grid_grid_optiongroupoptiongroupClassgrid!Arial, 0, 9, 5, 15, 12, 13, 3, 0
2combobox_formset
_pageframe	pageframePixels	_comboboxcombobox1ClassPixels	_combobox!Arial, 0, 9, 5, 15, 12, 13, 3, 0
Classformset_formsetaddtoproject
addtoproject

_pageframe	separator
_separatorClass_formsetForm1Pixelsform!Arial, 0, 9, 5, 15, 12, 13, 3, 0
_formaddtoproject
Pixels
commandbuttonClass1	separatorPixels
_separatorshapePixels_commandbutton
commandbutton1ClassPixels_commandbutton!Arial, 0, 9, 5, 15, 12, 13, 3, 0

_activedoc	activedocformClass!Arial, 0, 9, 5, 15, 12, 13, 3, 0
_editboxPixelsClass1editbox_editbox!Arial, 0, 9, 5, 15, 12, 32, 3, 0
Classeditboxlistbox_listbox11_spinner1_imageformset1_optionbutton2addtoproject

xmladapter1_shape_optiongroupPixels
_containerPixelsClass1	containercommandgroup
_container1addtoproject
PixelsClassspinnerPixels_spinnerClass11ClassPixels_projecthook1projecthook_projecthookprojecthooktextboxClass!Arial, 0, 9, 5, 15, 12, 13, 3, 0
_listboxPixelsClass1
_commandgroupcommandgroupClassPixels
_commandgroup!Arial, 0, 9, 5, 15, 12, 13, 3, 0
optionbuttonshapeClassform	container_toolbaraddtoproject
PixelsClass11!Arial, 0, 9, 5, 15, 12, 13, 3, 0
1toolbar_timer1linePixelsPixels_shapespinner_lineline1ClassPixels_lineClasstimer_timerClassPixels
_activedoctimer!Arial, 0, 9, 5, 15, 12, 13, 3, 0
_textboxPixelsClasstextbox_textboxlistbox!Arial, 0, 9, 5, 15, 12, 13, 3, 0
addtoproject
_imageaddtoproject
addtoproject
imageaddtoproject
addtoproject
addtoproject
addtoproject
imageFoundation Toolbar class.Foundation Timer class.Foundation TextBox class.Foundation Spinner class.Foundation Shape class.Foundation Separator class.Foundation ProjectHook class.Foundation PageFrame class.Foundation OptionGroup class.Foundation OptionButton class.Foundation Listbox class.Foundation Line class.addtoproject
_toolbartoolbarcontrol_controlcontrol1ClassPixels_controladdtoproject
addtoproject
addtoproject
addtoproject
addtoproject
_optionbutton2Foundation Form class._formFoundation ActiveDoc class.Foundation CheckBox class.Foundation ComboBox class.Foundation CommandButton class.Foundation CommandGroup class.Foundation Container class.custom_customcustomFoundation Label class.Foundation Image class.Foundation Hyperlink class.Foundation Grid class.Foundation FormSet class.Foundation EditBox class.addtoproject
addtoproject
addtoproject
addtoproject
addtoproject
addtoproject
addtoproject
Caption = "Toolbar1"
ShowWindow = 1
cversion = 
builder = 
builderx = (HOME()+"Wizards\BuilderD,BuilderDForm")
nobjectrefcount = 0
ninstances = 0
ohost = .NULL.
vresult = .T.
csetobjrefprogram = (IIF(VERSION(2)=0,"",HOME()+"FFC\")+"SetObjRf.prg")
Name = "_toolbar"
ShowWindow = 1
DoCreate = .T.
Caption = "Form1"
cversion = 
builder = 
builderx = (HOME()+"Wizards\BuilderD,BuilderDForm")
nobjectrefcount = 0
ninstances = 0
ohost = .NULL.
vresult = .T.
csetobjrefprogram = (IIF(VERSION(2)=0,"",HOME()+"FFC\")+"SetObjRf.prg")
Name = "_form"
Height = 22
Width = 24
cversion = 
builder = 
builderx = (HOME()+"Wizards\BuilderD,BuilderDForm")
nobjectrefcount = 0
ninstances = 0
ohost = .NULL.
vresult = .T.
csetobjrefprogram = (IIF(VERSION(2)=0,"",HOME()+"FFC\")+"SetObjRf.prg")
Name = "_control"
Height = 68
Width = 68
cversion = 
builder = 
builderx = (HOME()+"Wizards\BuilderD,BuilderDForm")
nobjectrefcount = 0
ninstances = 0
ohost = .NULL.
vresult = .T.
csetobjrefprogram = (IIF(VERSION(2)=0,"",HOME()+"FFC\")+"SetObjRf.prg")
Name = "_image"
Height = 68
Width = 68
Name = "_projecthook"
cversion = 
builder = 
builderx = (HOME()+"Wizards\BuilderD,BuilderDForm")
nobjectrefcount = 0
ninstances = 0
ohost = .NULL.
vresult = .T.
csetobjrefprogram = (IIF(VERSION(2)=0,"",HOME()+"FFC\")+"SetObjRf.prg")
Caption = "Label1"
Height = 16
Width = 40
Name = "_label"
cversion = 
builder = 
builderx = (HOME()+"Wizards\BuilderD,BuilderDForm")
nobjectrefcount = 0
ninstances = 0
ohost = .NULL.
vresult = .T.
csetobjrefprogram = (IIF(VERSION(2)=0,"",HOME()+"FFC\")+"SetObjRf.prg")
	Height = 23
Width = 23
Name = "_hyperlink"
cversion = 
builder = 
builderx = (HOME()+"Wizards\BuilderD,BuilderDForm")
nobjectrefcount = 0
ninstances = 0
ohost = .NULL.
vresult = .T.
csetobjrefprogram = (IIF(VERSION(2)=0,"",HOME()+"FFC\")+"SetObjRf.prg")
	Height = 68
Width = 68
Name = "_activedoc"
cversion = 
builder = 
builderx = (HOME()+"Wizards\BuilderD,BuilderDForm")
nobjectrefcount = 0
ninstances = 0
ohost = .NULL.
vresult = .T.
csetobjrefprogram = (IIF(VERSION(2)=0,"",HOME()+"FFC\")+"SetObjRf.prg")
DoCreate = .T.
Caption = "Form1"
Name = "Form1"
cversion = 
builder = 
builderx = (HOME()+"Wizards\BuilderD,BuilderDForm")
nobjectrefcount = 0
ninstances = 0
ohost = .NULL.
vresult = .T.
csetobjrefprogram = (IIF(VERSION(2)=0,"",HOME()+"FFC\")+"SetObjRf.prg")
�Name = "_formset"
cversion = 
builder = 
builderx = (HOME()+"Wizards\BuilderD,BuilderDForm")
nobjectrefcount = 0
ninstances = 0
ohost = .NULL.
vresult = .T.
csetobjrefprogram = (IIF(VERSION(2)=0,"",HOME()+"FFC\")+"SetObjRf.prg")
Height = 23
Width = 23
Name = "_timer"
cversion = 
builder = 
builderx = (HOME()+"Wizards\BuilderD,BuilderDForm")
nobjectrefcount = 0
ninstances = 0
ohost = .NULL.
vresult = .T.
csetobjrefprogram = (IIF(VERSION(2)=0,"",HOME()+"FFC\")+"SetObjRf.prg")
Height = 23
Width = 100
Name = "_textbox"
cversion = 
builder = 
builderx = (HOME()+"Wizards\BuilderD,BuilderDForm")
nobjectrefcount = 0
ninstances = 0
ohost = .NULL.
vresult = .T.
csetobjrefprogram = (IIF(VERSION(2)=0,"",HOME()+"FFC\")+"SetObjRf.prg")
	Height = 24
Width = 100
Name = "_combobox"
cversion = 
builder = 
builderx = (HOME()+"Wizards\BuilderD,BuilderDForm")
nobjectrefcount = 0
ninstances = 0
ohost = .NULL.
vresult = .T.
csetobjrefprogram = (IIF(VERSION(2)=0,"",HOME()+"FFC\")+"SetObjRf.prg")
Height = 24
Width = 120
Name = "_spinner"
cversion = 
builder = 
builderx = (HOME()+"Wizards\BuilderD,BuilderDForm")
nobjectrefcount = 0
ninstances = 0
ohost = .NULL.
vresult = .T.
csetobjrefprogram = (IIF(VERSION(2)=0,"",HOME()+"FFC\")+"SetObjRf.prg")
Height = 68
Width = 68
Name = "_shape"
cversion = 
builder = 
builderx = (HOME()+"Wizards\BuilderD,BuilderDForm")
nobjectrefcount = 0
ninstances = 0
ohost = .NULL.
vresult = .T.
csetobjrefprogram = (IIF(VERSION(2)=0,"",HOME()+"FFC\")+"SetObjRf.prg")
Height = 0
Width = 0
Name = "_separator"
cversion = 
builder = 
builderx = (HOME()+"Wizards\BuilderD,BuilderDForm")
nobjectrefcount = 0
ninstances = 0
ohost = .NULL.
vresult = .T.
csetobjrefprogram = (IIF(VERSION(2)=0,"",HOME()+"FFC\")+"SetObjRf.prg")
�ErasePage = .T.
PageCount = 2
Width = 241
Height = 169
Name = "_pageframe"
Page1.Caption = "Page1"
Page1.Name = "Page1"
Page2.Caption = "Page2"
Page2.Name = "Page2"
cversion = 
builder = 
builderx = (HOME()+"Wizards\BuilderD,BuilderDForm")
nobjectrefcount = 0
ninstances = 0
ohost = .NULL.
vresult = .T.
csetobjrefprogram = (IIF(VERSION(2)=0,"",HOME()+"FFC\")+"SetObjRf.prg")
AButtonCount = 2
Value = 1
Height = 46
Width = 71
Name = "_optiongroup"
Option1.Caption = "Option1"
Option1.Value = 1
Option1.Height = 17
Option1.Left = 5
Option1.Top = 5
Option1.Width = 61
Option1.Name = "Option1"
Option2.Caption = "Option2"
Option2.Height = 17
Option2.Left = 5
Option2.Top = 24
Option2.Width = 61
Option2.Name = "Option2"
cversion = 
builder = 
builderx = (HOME()+"Wizards\BuilderD,BuilderDForm")
nobjectrefcount = 0
ninstances = 0
ohost = .NULL.
vresult = .T.
csetobjrefprogram = (IIF(VERSION(2)=0,"",HOME()+"FFC\")+"SetObjRf.prg")
optionbuttonFoundation Control class.Foundation Relation class.
cursoradapterdataenvironment
collection
collectionTables_xmladapteraddtoproject

xmladapterFoundation XMLAdapter class._xmladapter	Height = 170
Width = 100
Name = "_listbox"
cversion = 
builder = 
builderx = (HOME()+"Wizards\BuilderD,BuilderDForm")
nobjectrefcount = 0
ninstances = 0
ohost = .NULL.
vresult = .T.
csetobjrefprogram = (IIF(VERSION(2)=0,"",HOME()+"FFC\")+"SetObjRf.prg")
Height = 68
Width = 68
Name = "_line"
cversion = 
builder = 
builderx = (HOME()+"Wizards\BuilderD,BuilderDForm")
nobjectrefcount = 0
ninstances = 0
ohost = .NULL.
vresult = .T.
csetobjrefprogram = (IIF(VERSION(2)=0,"",HOME()+"FFC\")+"SetObjRf.prg")
Height = 200
Width = 320
Name = "_grid"
cversion = 
builder = 
builderx = (HOME()+"Wizards\BuilderD,BuilderDForm")
nobjectrefcount = 0
ninstances = 0
ohost = .NULL.
vresult = .T.
csetobjrefprogram = (IIF(VERSION(2)=0,"",HOME()+"FFC\")+"SetObjRf.prg")
Height = 53
Width = 100
Name = "_editbox"
cversion = 
builder = 
builderx = (HOME()+"Wizards\BuilderD,BuilderDForm")
nobjectrefcount = 0
ninstances = 0
ohost = .NULL.
vresult = .T.
csetobjrefprogram = (IIF(VERSION(2)=0,"",HOME()+"FFC\")+"SetObjRf.prg")
icversion Version property.
builder Bulder property.
builderx BuilderX property.
lautobuilder Specifies if custom FFC builder is automatically launched when instance is added to a container in design mode, even if the control pallette Builder Lock button is off.
nobjectrefcount Returns the number of items in the object reference array property aObjectRefs.
ohost Object reference to host object (generally THISFORM), which is automatically set on Init if lSetHost is .T.
lautosetobjectrefs Specifiies if the SetObjectRefs method is automatically called from the Init method.
vresult Variant result property for internal usage when calling programs in PRGs and a return file is required.
lrelease Indicates the object's Release method has been executed and the object is in the process of being released from memory.
csetobjrefprogram Program to be called when when setting an object references via the SetObjectRef method.
lignoreerrors Specifies if the default FFC error handler is executed when an error occurs.
lsethost Specifies if the SetHost method is automatically called from the Init method to set the oHost property to THISFORM.
ninstances Number of instances.
^aobjectrefs[1,3] Array of object references properties.
*release Releases object from memory.
*setobjectref Set object reference to specific property.
*setobjectrefs Place holder method for listing SetObjectRef method calls.
*releaseobjrefs Releases all object references of aObjectRefs array.
*nobjectrefcount_access Access method for nObjectRefCount property.
*nobjectrefcount_assign Assign method for nObjectRefCount property.
*sethost Set oHost property to form reference object.
*newinstance Returns new instance of object.
*addtoproject Dummy code for adding files to project.
*ninstances_access Access method for nInstances property.
*ninstances_assign Assign method for nInstances property.
Width = 200
Height = 200
Name = "_container"
cversion = 
builder = 
builderx = (HOME()+"Wizards\BuilderD,BuilderDForm")
nobjectrefcount = 0
ninstances = 0
ohost = .NULL.
vresult = .T.
csetobjrefprogram = (IIF(VERSION(2)=0,"",HOME()+"FFC\")+"SetObjRf.prg")
Height = 22
Width = 24
cversion = 
builder = 
builderx = (HOME()+"Wizards\BuilderD,BuilderDForm")
nobjectrefcount = 0
ohost = .NULL.
vresult = .T.
csetobjrefprogram = (IIF(VERSION(2)=0,"",HOME()+"FFC\")+"SetObjRf.prg")
ninstances = 0
Name = "_custom"
#Height = 27
Width = 84
Caption = "Command1"
Name = "_commandbutton"
cversion = 
builder = 
builderx = (HOME()+"Wizards\BuilderD,BuilderDForm")
nobjectrefcount = 0
ninstances = 0
ohost = .NULL.
vresult = .T.
csetobjrefprogram = (IIF(VERSION(2)=0,"",HOME()+"FFC\")+"SetObjRf.prg")
icversion Version property.
builder Bulder property.
builderx BuilderX property.
lautobuilder Specifies if custom FFC builder is automatically launched when instance is added to a container in design mode, even if the control pallette Builder Lock button is off.
nobjectrefcount Returns the number of items in the object reference array property aObjectRefs.
ohost Object reference to host object (generally THISFORM), which is automatically set on Init if lSetHost is .T.
lautosetobjectrefs Specifiies if the SetObjectRefs method is automatically called from the Init method.
vresult Variant result property for internal usage when calling programs in PRGs and a return file is required.
lrelease Indicates the object's Release method has been executed and the object is in the process of being released from memory.
csetobjrefprogram Program to be called when when setting an object references via the SetObjectRef method.
lignoreerrors Specifies if the default FFC error handler is executed when an error occurs.
lsethost Specifies if the SetHost method is automatically called from the Init method to set the oHost property to THISFORM.
ninstances Number of instances.
^aobjectrefs[1,3] Array of object references properties.
*release Releases object from memory.
*setobjectref Set object reference to specific property.
*setobjectrefs Place holder method for listing SetObjectRef method calls.
*releaseobjrefs Releases all object references of aObjectRefs array.
*nobjectrefcount_access Access method for nObjectRefCount property.
*nobjectrefcount_assign Assign method for nObjectRefCount property.
*sethost Set oHost property to form reference object.
*newinstance Returns new instance of object.
*addtoproject Dummy code for adding files to project.
*ninstances_access Access method for nInstances property.
*ninstances_assign Assign method for nInstances property.
AButtonCount = 2
Value = 1
Height = 66
Width = 94
Name = "_commandgroup"
Command1.Top = 5
Command1.Left = 5
Command1.Height = 27
Command1.Width = 84
Command1.Caption = "Command1"
Command1.Name = "Command1"
Command2.Top = 34
Command2.Left = 5
Command2.Height = 27
Command2.Width = 84
Comm
and2.Caption = "Command2"
Command2.Name = "Command2"
cversion = 
builder = 
builderx = (HOME()+"Wizards\BuilderD,BuilderDForm")
nobjectrefcount = 0
ninstances = 0
ohost = .NULL.
vresult = .T.
csetobjrefprogram = (IIF(VERSION(2)=0,"",HOME()+"FFC\")+"SetObjRf.prg")
Height = 17
Width = 60
Caption = "Check1"
Name = "_checkbox"
cversion = 
builder = 
builderx = (HOME()+"Wizards\BuilderD,BuilderDForm")
nobjectrefcount = 0
ninstances = 0
ohost = .NULL.
vresult = .T.
csetobjrefprogram = (IIF(VERSION(2)=0,"",HOME()+"FFC\")+"SetObjRf.prg")
_collectionaddtoproject
PixelsFoundation Collection class.Class1
collection_collectionicversion Version property.
builder Bulder property.
builderx BuilderX property.
lautobuilder Specifies if custom FFC builder is automatically launched when instance is added to a container in design mode, even if the control pallette Builder Lock button is off.
nobjectrefcount Returns the number of items in the object reference array property aObjectRefs.
ohost Object reference to host object (generally THISFORM), which is automatically set on Init if lSetHost is .T.
lautosetobjectrefs Specifiies if the SetObjectRefs method is automatically called from the Init method.
vresult Variant result property for internal usage when calling programs in PRGs and a return file is required.
lrelease Indicates the object's Release method has been executed and the object is in the process of being released from memory.
csetobjrefprogram Program to be called when when setting an object references via the SetObjectRef method.
lignoreerrors Specifies if the default FFC error handler is executed when an error occurs.
lsethost Specifies if the SetHost method is automatically called from the Init method to set the oHost property to THISFORM.
ninstances Number of instances.
^aobjectrefs[1,3] Array of object references properties.
*release Releases object from memory.
*setobjectref Set object reference to specific property.
*setobjectrefs Place holder method for listing SetObjectRef method calls.
*releaseobjrefs Releases all object references of aObjectRefs array.
*nobjectrefcount_access Access method for nObjectRefCount property.
*nobjectrefcount_assign Assign method for nObjectRefCount property.
*sethost Set oHost property to form reference object.
*newinstance Returns new instance of object.
*addtoproject Dummy code for adding files to project.
*ninstances_access Access method for nInstances property.
*ninstances_assign Assign method for nInstances property.

Height = 23
Width = 23
cversion = 
builder = 
builderx = (HOME()+"Wizards\BuilderD,BuilderDForm")
nobjectrefcount = 0
ohost = .NULL.
vresult = .T.
csetobjrefprogram = (IIF(VERSION(2)=0,"",HOME()+"FFC\")+"SetObjRf.prg")
ninstances = 0
Name = "_collection"

collection_cursor2addtoproject
PixelsFoundation Cursor class.Class1cursor_cursor2cursor	_xmlfieldaddtoproject
1PixelsPixels
_relation2addtoproject
PixelsFoundation XMLField class.Classxmlfield	_xmlfieldxmlfield	_xmltableaddtoproject
PixelsClass	_base.vcx_formrelation
_relation22xmltablePixelsClass12_dataenvironment2addtoproject
Pixels!Foundation DataEnvironment class.Class1Fields_cursoradapteraddtoproject
Foundation CursorAdapter class.Class1
cursoradapter_cursoradapterxmltabledataenvironment_dataenvironment2relation_xmladapterClassFoundation XMLTable class.	_xmltable?Top = 23
Left = 23
Height = 23
Width = 23
Name = "Fields"
	_xmltable
collection
collectionicversion Version property.
builder Bulder property.
builderx BuilderX property.
lautobuilder Specifies if custom FFC builder is automatically launched when instance is added to a container in design mode, even if the control pallette Builder Lock button is off.
nobjectrefcount Returns the number of items in the object reference array property aObjectRefs.
ohost Object reference to host object (generally THISFORM), which is automatically set on Init if lSetHost is .T.
lautosetobjectrefs Specifiies if the SetObjectRefs method is automatically called from the Init method.
vresult Variant result property for internal usage when calling programs in PRGs and a return file is required.
lrelease Indicates the object's Release method has been executed and the object is in the process of being released from memory.
csetobjrefprogram Program to be called when when setting an object references via the SetObjectRef method.
lignoreerrors Specifies if the default FFC error handler is executed when an error occurs.
lsethost Specifies if the SetHost method is automatically called from the Init method to set the oHost property to THISFORM.
ninstances Number of instances.
^aobjectrefs[1,3] Array of object references properties.
*release Releases object from memory.
*setobjectref Set object reference to specific property.
*setobjectrefs Place holder method for listing SetObjectRef method calls.
*releaseobjrefs Releases all object references of aObjectRefs array.
*nobjectrefcount_access Access method for nObjectRefCount property.
*nobjectrefcount_assign Assign method for nObjectRefCount property.
*sethost Set oHost property to form reference object.
*newinstance Returns new instance of object.
*addtoproject Dummy code for adding files to project.
*ninstances_access Access method for nInstances property.
*ninstances_assign Assign method for nInstances property.
Height = 56
Width = 56
cversion = 
builder = 
builderx = (HOME()+"Wizards\BuilderD,BuilderDForm")
nobjectrefcount = 0
ohost = .NULL.
vresult = .T.
csetobjrefprogram = (IIF(VERSION(2)=0,"",HOME()+"FFC\")+"SetObjRf.prg")
ninstances = 0
Name = "_xmltable"
%Width = 24
Height = 22
DataSource = .NULL.
cversion = 
builder = 
builderx = (HOME()+"Wizards\BuilderD,BuilderDForm")
nobjectrefcount = 0
ohost = .NULL.
vresult = .T.
csetobjrefprogram = (IIF(VERSION(2)=0,"",HOME()+"FFC\")+"SetObjRf.prg")
ninstances = 0
Name = "_dataenvironment2"
Height = 23
Width = 23
cversion = 
builder = 
builderx = (HOME()+"Wizards\BuilderD,BuilderDForm")
nobjectrefcount = 0
ohost = .NULL.
vresult = .T.
csetobjrefprogram = (IIF(VERSION(2)=0,"",HOME()+"FFC\")+"SetObjRf.prg")
ninstances = 0
Name = "_cursor2"

Height = 56
Width = 56
cversion = 
builder = 
builderx = (HOME()+"Wizards\BuilderD,BuilderDForm")
nobjectrefcount = 0
ohost = .NULL.
vresult = .T.
csetobjrefprogram = (IIF(VERSION(2)=0,"",HOME()+"FFC\")+"SetObjRf.prg")
ninstances = 0
Name = "_xmladapter"
?Top = 23
Left = 23
Height = 23
Width = 23
Name = "Tables"
icversion Version property.
builder Bulder property.
builderx BuilderX property.
lautobuilder Specifies if custom FFC builder is automatically launched when instance is added to a container in design mode, even if the control pallette Builder Lock button is off.
nobjectrefcount Returns the number of items in the object reference array property aObjectRefs.
ohost Object reference to host object (generally THISFORM), which is automatically set on Init if lSetHost is .T.
lautosetobjectrefs Specifiies if the SetObjectRefs method is automatically called from the Init method.
vresult Variant result property for internal usage when calling programs in PRGs and a return file is required.
lrelease Indicates the object's Release method has been executed and the object is in the process of being released from memory.
csetobjrefprogram Program to be called when when setting an object references via the SetObjectRef method.
lignoreerrors Specifies if the default FFC error handler is executed when an error occurs.
lsethost Specifies if the SetHost method is automatically called from the Init method to set the oHost property to THISFORM.
ninstances Number of instances.
^aobjectrefs[1,3] Array of object references properties.
*release Releases object from memory.
*setobjectref Set object reference to specific property.
*setobjectrefs Place holder method for listing SetObjectRef method calls.
*releaseobjrefs Releases all object references of aObjectRefs array.
*nobjectrefcount_access Access method for nObjectRefCount property.
*nobjectrefcount_assign Assign method for nObjectRefCount property.
*sethost Set oHost property to form reference object.
*newinstance Returns new instance of object.
*addtoproject Dummy code for adding files to project.
*ninstances_access Access method for nInstances property.
*ninstances_assign Assign method for nInstances property.
Height = 23
Width = 23
cversion = 
builder = 
builderx = (HOME()+"Wizards\BuilderD,BuilderDForm")
nobjectrefcount = 0
ohost = .NULL.
vresult = .T.
csetobjrefprogram = (IIF(VERSION(2)=0,"",HOME()+"FFC\")+"SetObjRf.prg")
ninstances = 0
Name = "_xmlfield"

Height = 22
Width = 23
cversion = 
builder = 
builderx = (HOME()+"Wizards\BuilderD,BuilderDForm")
nobjectrefcount = 0
ohost = .NULL.
vresult = .T.
csetobjrefprogram = (IIF(VERSION(2)=0,"",HOME()+"FFC\")+"SetObjRf.prg")
ninstances = 0
Name = "_cursoradapter"
	Height = 23
Width = 23
cversion = 
builder = 
builderx = (HOME()+"Wizards\BuilderD,BuilderDForm")
nobjectrefcount = 0
ohost = .NULL.
vresult = .T.
csetobjrefprogram = (IIF(VERSION(2)=0,"",HOME()+"FFC\")+"SetObjRf.prg")
ninstances = 0
Name = "_relation2"
icversion Version property.
builder Bulder property.
builderx BuilderX property.
lautobuilder Specifies if custom FFC builder is automatically launched when instance is added to a container in design mode, even if the control pallette Builder Lock button is off.
nobjectrefcount Returns the number of items in the object reference array property aObjectRefs.
ohost Object reference to host object (generally THISFORM), which is automatically set on Init if lSetHost is .T.
lautosetobjectrefs Specifiies if the SetObjectRefs method is automatically called from the Init method.
vresult Variant result property for internal usage when calling programs in PRGs and a return file is required.
lrelease Indicates the object's Release method has been executed and the object is in the process of being released from memory.
csetobjrefprogram Program to be called when when setting an object references via the SetObjectRef method.
lignoreerrors Specifies if the default FFC error handler is executed when an error occurs.
lsethost Specifies if the SetHost method is automatically called from the Init method to set the oHost property to THISFORM.
ninstances Number of instances.
^aobjectrefs[1,3] Array of object references properties.
*release Releases object from memory.
*setobjectref Set object reference to specific property.
*setobjectrefs Place holder method for listing SetObjectRef method calls.
*releaseobjrefs Releases all object references of aObjectRefs array.
*nobjectrefcount_access Access method for nObjectRefCount property.
*nobjectrefcount_assign Assign method for nObjectRefCount property.
*sethost Set oHost property to form reference object.
*newinstance Returns new instance of object.
*addtoproject Dummy code for adding files to project.
*ninstances_access Access method for nInstances property.
*ninstances_assign Assign method for nInstances property.
icversion Version property.
builder Bulder property.
builderx BuilderX property.
lautobuilder Specifies if custom FFC builder is automatically launched when instance is added to a container in design mode, even if the control pallette Builder Lock button is off.
nobjectrefcount Returns the number of items in the object reference array property aObjectRefs.
ohost Object reference to host object (generally THISFORM), which is automatically set on Init if lSetHost is .T.
lautosetobjectrefs Specifiies if the SetObjectRefs method is automatically called from the Init method.
vresult Variant result property for internal usage when calling programs in PRGs and a return file is required.
lrelease Indicates the object's Release method has been executed and the object is in the process of being released from memory.
csetobjrefprogram Program to be called when when setting an object references via the SetObjectRef method.
lignoreerrors Specifies if the default FFC error handler is executed when an error occurs.
lsethost Specifies if the SetHost method is automatically called from the Init method to set the oHost property to THISFORM.
ninstances Number of instances.
^aobjectrefs[1,3] Array of object references properties.
*release Releases object from memory.
*setobjectref Set object reference to specific property.
*setobjectrefs Place holder method for listing SetObjectRef method calls.
*releaseobjrefs Releases all object references of aObjectRefs array.
*nobjectrefcount_access Access method for nObjectRefCount property.
*nobjectrefcount_assign Assign method for nObjectRefCount property.
*sethost Set oHost property to form reference object.
*newinstance Returns new instance of object.
*addtoproject Dummy code for adding files to project.
*ninstances_access Access method for nInstances property.
*ninstances_assign Assign method for nInstances property.
icversion Version property.
builder Bulder property.
builderx BuilderX property.
lautobuilder Specifies if custom FFC builder is automatically launched when instance is added to a container in design mode, even if the control pallette Builder Lock button is off.
nobjectrefcount Returns the number of items in the object reference array property aObjectRefs.
ohost Object reference to host object (generally THISFORM), which is automatically set on Init if lSetHost is .T.
lautosetobjectrefs Specifiies if the SetObjectRefs method is automatically called from the Init method.
vresult Variant result property for internal usage when calling programs in PRGs and a return file is required.
lrelease Indicates the object's Release method has been executed and the object is in the process of being released from memory.
csetobjrefprogram Program to be called when when setting an object references via the SetObjectRef method.
lignoreerrors Specifies if the default FFC error handler is executed when an error occurs.
lsethost Specifies if the SetHost method is automatically called from the Init method to set the oHost property to THISFORM.
ninstances Number of instances.
^aobjectrefs[1,3] Array of object references properties.
*release Releases object from memory.
*setobjectref Set object reference to specific property.
*setobjectrefs Place holder method for listing SetObjectRef method calls.
*releaseobjrefs Releases all object references of aObjectRefs array.
*nobjectrefcount_access Access method for nObjectRefCount property.
*nobjectrefcount_assign Assign method for nObjectRefCount property.
*sethost Set oHost property to form reference object.
*newinstance Returns new instance of object.
*addtoproject Dummy code for adding files to project.
*ninstances_access Access method for nInstances property.
*ninstances_assign Assign method for nInstances property.
icversion Version property.
builder Bulder property.
builderx BuilderX property.
lautobuilder Specifies if custom FFC builder is automatically launched when instance is added to a container in design mode, even if the control pallette Builder Lock button is off.
nobjectrefcount Returns the number of items in the object reference array property aObjectRefs.
ohost Object reference to host object (generally THISFORM), which is automatically set on Init if lSetHost is .T.
lautosetobjectrefs Specifiies if the SetObjectRefs method is automatically called from the Init method.
vresult Variant result property for internal usage when calling programs in PRGs and a return file is required.
lrelease Indicates the object's Release method has been executed and the object is in the process of being released from memory.
csetobjrefprogram Program to be called when when setting an object references via the SetObjectRef method.
lignoreerrors Specifies if the default FFC error handler is executed when an error occurs.
lsethost Specifies if the SetHost method is automatically called from the Init method to set the oHost property to THISFORM.
ninstances Number of instances.
^aobjectrefs[1,3] Array of object references properties.
*release Releases object from memory.
*setobjectref Set object reference to specific property.
*setobjectrefs Place holder method for listing SetObjectRef method calls.
*releaseobjrefs Releases all object references of aObjectRefs array.
*nobjectrefcount_access Access method for nObjectRefCount property.
*nobjectrefcount_assign Assign method for nObjectRefCount property.
*sethost Set oHost property to form reference object.
*newinstance Returns new instance of object.
*addtoproject Dummy code for adding files to project.
*ninstances_access Access method for nInstances property.
*ninstances_assign Assign method for nInstances property.
icversion Version property.
builder Bulder property.
builderx BuilderX property.
lautobuilder Specifies if custom FFC builder is automatically launched when instance is added to a container in design mode, even if the control pallette Builder Lock button is off.
nobjectrefcount Returns the number of items in the object reference array property aObjectRefs.
ohost Object reference to host object (generally THISFORM), which is automatically set on Init if lSetHost is .T.
lautosetobjectrefs Specifiies if the SetObjectRefs method is automatically called from the Init method.
vresult Variant result property for internal usage when calling programs in PRGs and a return file is required.
lrelease Indicates the object's Release method has been executed and the object is in the process of being released from memory.
csetobjrefprogram Program to be called when when setting an object references via the SetObjectRef method.
lignoreerrors Specifies if the default FFC error handler is executed when an error occurs.
lsethost Specifies if the SetHost method is automatically called from the Init method to set the oHost property to THISFORM.
ninstances Number of instances.
^aobjectrefs[1,3] Array of object references properties.
*release Releases object from memory.
*setobjectref Set object reference to specific property.
*setobjectrefs Place holder method for listing SetObjectRef method calls.
*releaseobjrefs Releases all object references of aObjectRefs array.
*nobjectrefcount_access Access method for nObjectRefCount property.
*nobjectrefcount_assign Assign method for nObjectRefCount property.
*sethost Set oHost property to form reference object.
*newinstance Returns new instance of object.
*addtoproject Dummy code for adding files to project.
*ninstances_access Access method for nInstances property.
*ninstances_assign Assign method for nInstances property.

�� ���0%�	�v�
�U����%�����"���B�-���T���a��T��C��@��T����
����3%�C�� �form �formset �toolbar �
����<���ULCBASECLASSTHISLRELEASE	BASECLASSOHOSTRELEASEOBJREFSw��������T���a��)�����������������T������T���a��	B����UTCNAMETVCLASSTVCLASSLIBRARYLVRESULTTHISVRESULTCSETOBJREFPROGRAM���B�UTOOBJECT������%������'�B��!������(���������u�T��C������7%�C���C����h
�C�this.�b�O����.��oObject=this.&lcName
%�C�����.��<%�C�oObjectb�O�C��
	�C��Release��h	���
�����%%�C��
�C��oHost��h	��O�T�����this.&lcName=.NULL.
T��������������T������ULCNAMEOOBJECTLNCOUNTTHISNOBJECTREFCOUNTAOBJECTREFSRELEASEOHOSTZ���T��C�����!%����
CC����	��J�
T������	B����ULNOBJECTREFCOUNTTHISAOBJECTREFS	��
��
������UVNEWVAL.+T���CC�thisformb�O����6��UTHISOHOSTTHISFORM��������T��C�DATASESSIONv��.%�C�tnDataSessionIDb�N���	��e�G�(�����T��C�������G�(����	B����UTNDATASESSIONID
ONEWOBJECTLNLASTDATASESSIONIDTHISCLASSCLASSLIBRARYB��SetObjRf.prg�USETOBJRFPRG$
������B�C������ULAINSTANCESTHISCLASS���
������UVNEWVAL�����������%����
�C����B�B�-���T��CCC�ERROR��f��%�C��
����OT��CCC��ERROR()�nError��	PROGRAM()�cMethod��LINENO()�nLine���&lcOnError
B��bT��CEC�
 C�
 ��	C�
 �Error:           CC�Z�C�
 �Method:       CC��@��T��C�E��'%�C���������...
	����0T���C�
 �Line:            CC�Z���%�C��
����T���C�
 C�
 �����R���C���9�
�x��	�����UNERRORCMETHODNLINE	LCONERROR
LCERRORMSG
LCCODELINEMSGTHIS
LIGNOREERRORS	STARTMODENAMECAPTIONL%������
����� %����
C���
	��E�B�-���UTHISLSETHOSTSETHOSTLAUTOSETOBJECTREFS
SETOBJECTREFSD%������B�-���T���a��
����T����UTHISLRELEASERELEASEOBJREFSOHOSTrelease,��setobjectref��
setobjectrefs���releaseobjrefs���nobjectrefcount_access���nobjectrefcount_assigni��sethost���newinstance���addtoproject���ninstances_access���ninstances_assign/��ErrorP��Init���DestroyC	��1qAqA�!��1qA3�q����3qB3�BAA�qAA��AA��AQ�Aq�Aa3qR�A�3��3�3q����A���3B23�B3q�3���qA���AA#�q�AAQA�3�AqA3qA���2/)In�"2�>9�H<&]N>�RH�,_KT�fN��lQ�?rhZ��o�R
�)�
�� ���0%�	�v�
�U����%�����"���B�-���T���a��T��C��@��T����
����3%�C�� �form �formset �toolbar �
����<���ULCBASECLASSTHISLRELEASE	BASECLASSOHOSTRELEASEOBJREFSw��������T���a��)�����������������T������T���a��	B����UTCNAMETVCLASSTVCLASSLIBRARYLVRESULTTHISVRESULTCSETOBJREFPROGRAM���B�UTOOBJECT������%������'�B��!������(���������u�T��C������7%�C���C����h
�C�this.�b�O����.��oObject=this.&lcName
%�C�����.��<%�C�oObjectb�O�C��
	�C��Release��h	���
�����%%�C��
�C��oHost��h	��O�T�����this.&lcName=.NULL.
T��������������T������ULCNAMEOOBJECTLNCOUNTTHISNOBJECTREFCOUNTAOBJECTREFSRELEASEOHOSTZ���T��C�����!%����
CC����	��J�
T������	B����ULNOBJECTREFCOUNTTHISAOBJECTREFS	��
��
������UVNEWVAL.+T���CC�thisformb�O����6��UTHISOHOSTTHISFORM��������T��C�DATASESSIONv��.%�C�tnDataSessionIDb�N���	��e�G�(�����T��C�������G�(����	B����UTNDATASESSIONID
ONEWOBJECTLNLASTDATASESSIONIDTHISCLASSCLASSLIBRARYB��SetObjRf.prg�USETOBJRFPRG$
������B�C������ULAINSTANCESTHISCLASS���
������UVNEWVALD%������B�-���T���a��
����T����UTHISLRELEASERELEASEOBJREFSOHOSTL%������
����� %����
C���
	��E�B�-���UTHISLSETHOSTSETHOSTLAUTOSETOBJECTREFS
SETOBJECTREFS�����������%����
�C����B�B�-���T��CCC�ERROR��f��%�C��
����OT��CCC��ERROR()�nError��	PROGRAM()�cMethod��LINENO()�nLine���&lcOnError
B��bT��CEC�
 C�
 ��	C�
 �Error:           CC�Z�C�
 �Method:       CC��@��T��C�E��'%�C���������...
	����0T���C�
 �Line:            CC�Z���%�C��
����T���C�
 C�
 �����R���C���9�
�x��	�����UNERRORCMETHODNLINE	LCONERROR
LCERRORMSG
LCCODELINEMSGTHIS
LIGNOREERRORS	STARTMODENAMECAPTIONrelease,��setobjectref��
setobjectrefs���releaseobjrefs���nobjectrefcount_access���nobjectrefcount_assigni��sethost���newinstance���addtoproject���ninstances_access���ninstances_assign/��DestroyP��Init���ErrorK��1qAqA�!��1qA3�q����3qB3�BAA�qAA��AA��AQ�Aq�Aa3qR�A�3��3�3q����A���3B23�B3q�3qA���3�AqA3���qA���AA#�q�AAQA�2/)In�"2�>9�H<&]N>�RH�,_KT�fN��lQ	a	rX|	�	{_
R
�)�
�� ���0%�	�v�
�U����%�����"���B�-���T���a��T��C��@��T����
����3%�C�� �form �formset �toolbar �
����<���ULCBASECLASSTHISLRELEASE	BASECLASSOHOSTRELEASEOBJREFSw��������T���a��)�����������������T������T���a��	B����UTCNAMETVCLASSTVCLASSLIBRARYLVRESULTTHISVRESULTCSETOBJREFPROGRAM���B�UTOOBJECT������%������'�B��!������(���������u�T��C������7%�C���C����h
�C�this.�b�O����.��oObject=this.&lcName
%�C�����.��<%�C�oObjectb�O�C��
	�C��Release��h	���
�����%%�C��
�C��oHost��h	��O�T�����this.&lcName=.NULL.
T��������������T������ULCNAMEOOBJECTLNCOUNTTHISNOBJECTREFCOUNTAOBJECTREFSRELEASEOHOSTZ���T��C�����!%����
CC����	��J�
T������	B����ULNOBJECTREFCOUNTTHISAOBJECTREFS	��
��
������UVNEWVAL.+T���CC�thisformb�O����6��UTHISOHOSTTHISFORM��������T��C�DATASESSIONv��.%�C�tnDataSessionIDb�N���	��e�G�(�����T��C�������G�(����	B����UTNDATASESSIONID
ONEWOBJECTLNLASTDATASESSIONIDTHISCLASSCLASSLIBRARYB��SetObjRf.prg�USETOBJRFPRG$
������B�C������ULAINSTANCESTHISCLASS���
������UVNEWVAL�����������%����
�C����B�B�-���T��CCC�ERROR��f��%�C��
����OT��CCC��ERROR()�nError��	PROGRAM()�cMethod��LINENO()�nLine���&lcOnError
B��bT��CEC�
 C�
 ��	C�
 �Error:           CC�Z�C�
 �Method:       CC��@��T��C�E��'%�C���������...
	����0T���C�
 �Line:            CC�Z���%�C��
����T���C�
 C�
 �����R���C���9�
�x��	�����UNERRORCMETHODNLINE	LCONERROR
LCERRORMSG
LCCODELINEMSGTHIS
LIGNOREERRORS	STARTMODENAMECAPTIONL%������
����� %����
C���
	��E�B�-���UTHISLSETHOSTSETHOSTLAUTOSETOBJECTREFS
SETOBJECTREFSD%������B�-���T���a��
����T����UTHISLRELEASERELEASEOBJREFSOHOSTrelease,��setobjectref��
setobjectrefs���releaseobjrefs���nobjectrefcount_access���nobjectrefcount_assigni��sethost���newinstance���addtoproject���ninstances_access���ninstances_assign/��ErrorP��Init���DestroyC	��1qAqA�!��1qA3�q����3qB3�BAA�qAA��AA��AQ�Aq�Aa3qR�A�3��3�3q����A���3B23�B3q�3���qA���AA#�q�AAQA�3�AqA3qA���2/)In�"2�>9�H<&]N>�RH�,_KT�fN��lQ�?rhZ��o�R
�)�
�� ���0%�	�v�
�U����%�����"���B�-���T���a��T��C��@��T����
����3%�C�� �form �formset �toolbar �
����<���ULCBASECLASSTHISLRELEASE	BASECLASSOHOSTRELEASEOBJREFSw��������T���a��)�����������������T������T���a��	B����UTCNAMETVCLASSTVCLASSLIBRARYLVRESULTTHISVRESULTCSETOBJREFPROGRAM���B�UTOOBJECT������%������'�B��!������(���������u�T��C������7%�C���C����h
�C�this.�b�O����.��oObject=this.&lcName
%�C�����.��<%�C�oObjectb�O�C��
	�C��Release��h	���
�����%%�C��
�C��oHost��h	��O�T�����this.&lcName=.NULL.
T��������������T������ULCNAMEOOBJECTLNCOUNTTHISNOBJECTREFCOUNTAOBJECTREFSRELEASEOHOSTZ���T��C�����!%����
CC����	��J�
T������	B����ULNOBJECTREFCOUNTTHISAOBJECTREFS	��
��
������UVNEWVAL.+T���CC�thisformb�O����6��UTHISOHOSTTHISFORM��������T��C�DATASESSIONv��.%�C�tnDataSessionIDb�N���	��e�G�(�����T��C�������G�(����	B����UTNDATASESSIONID
ONEWOBJECTLNLASTDATASESSIONIDTHISCLASSCLASSLIBRARYB��SetObjRf.prg�USETOBJRFPRG$
������B�C������ULAINSTANCESTHISCLASS���
������UVNEWVAL�����������%����
�C����B�B�-���T��CCC�ERROR��f��%�C��
����OT��CCC��ERROR()�nError��	PROGRAM()�cMethod��LINENO()�nLine���&lcOnError
B��bT��CEC�
 C�
 ��	C�
 �Error:           CC�Z�C�
 �Method:       CC��@��T��C�E��'%�C���������...
	����0T���C�
 �Line:            CC�Z���%�C��
����T���C�
 C�
 �����R���C���9�
�x��	�����UNERRORCMETHODNLINE	LCONERROR
LCERRORMSG
LCCODELINEMSGTHIS
LIGNOREERRORS	STARTMODENAMECAPTIONL%������
����� %����
C���
	��E�B�-���UTHISLSETHOSTSETHOSTLAUTOSETOBJECTREFS
SETOBJECTREFSD%������B�-���T���a��
����T����UTHISLRELEASERELEASEOBJREFSOHOSTrelease,��setobjectref��
setobjectrefs���releaseobjrefs���nobjectrefcount_access���nobjectrefcount_assigni��sethost���newinstance���addtoproject���ninstances_access���ninstances_assign/��ErrorP��Init���DestroyC	��1qAqA�!��1qA3�q����3qB3�BAA�qAA��AA��AQ�Aq�Aa3qR�A�3��3�3q����A���3B23�B3q�3���qA���AA#�q�AAQA�3�AqA3qA���2/)In�"2�>9�H<&]N>�RH�,_KT�fN��lQ�?rhZ��o�R
�)�
�� ���0%�	�v�
�U����%�����"���B�-���T���a��T��C��@��T����
����3%�C�� �form �formset �toolbar �
����<���ULCBASECLASSTHISLRELEASE	BASECLASSOHOSTRELEASEOBJREFSw��������T���a��)�����������������T������T���a��	B����UTCNAMETVCLASSTVCLASSLIBRARYLVRESULTTHISVRESULTCSETOBJREFPROGRAM���B�UTOOBJECT������%������'�B��!������(���������u�T��C������7%�C���C����h
�C�this.�b�O����.��oObject=this.&lcName
%�C�����.��<%�C�oObjectb�O�C��
	�C��Release��h	���
�����%%�C��
�C��oHost��h	��O�T�����this.&lcName=.NULL.
T��������������T������ULCNAMEOOBJECTLNCOUNTTHISNOBJECTREFCOUNTAOBJECTREFSRELEASEOHOSTZ���T��C�����!%����
CC����	��J�
T������	B����ULNOBJECTREFCOUNTTHISAOBJECTREFS	��
��
������UVNEWVAL.+T���CC�thisformb�O����6��UTHISOHOSTTHISFORM��������T��C�DATASESSIONv��.%�C�tnDataSessionIDb�N���	��e�G�(�����T��C�������G�(����	B����UTNDATASESSIONID
ONEWOBJECTLNLASTDATASESSIONIDTHISCLASSCLASSLIBRARYB��SetObjRf.prg�USETOBJRFPRG$
������B�C������ULAINSTANCESTHISCLASS���
������UVNEWVAL�����������%����
�C����B�B�-���T��CCC�ERROR��f��%�C��
����OT��CCC��ERROR()�nError��	PROGRAM()�cMethod��LINENO()�nLine���&lcOnError
B��bT��CEC�
 C�
 ��	C�
 �Error:           CC�Z�C�
 �Method:       CC��@��T��C�E��'%�C���������...
	����0T���C�
 �Line:            CC�Z���%�C��
����T���C�
 C�
 �����R���C���9�
�x��	�����UNERRORCMETHODNLINE	LCONERROR
LCERRORMSG
LCCODELINEMSGTHIS
LIGNOREERRORS	STARTMODENAMECAPTIONL%������
����� %����
C���
	��E�B�-���UTHISLSETHOSTSETHOSTLAUTOSETOBJECTREFS
SETOBJECTREFSD%������B�-���T���a��
����T����UTHISLRELEASERELEASEOBJREFSOHOSTrelease,��setobjectref��
setobjectrefs���releaseobjrefs���nobjectrefcount_access���nobjectrefcount_assigni��sethost���newinstance���addtoproject���ninstances_access���ninstances_assign/��ErrorP��Init���DestroyC	��1qAqA�!��1qA3�q����3qB3�BAA�qAA��AA��AQ�Aq�Aa3qR�A�3��3�3q����A���3B23�B3q�3���qA���AA#�q�AAQA�3�AqA3qA���2/)In�"2�>9�H<&]N>�RH�,_KT�fN��lQ�?rhZ��o�R
�)�
�� ���0%�	�v�
�U����%�����"���B�-���T���a��T��C��@��T����
����3%�C�� �form �formset �toolbar �
����<���ULCBASECLASSTHISLRELEASE	BASECLASSOHOSTRELEASEOBJREFSw��������T���a��)�����������������T������T���a��	B����UTCNAMETVCLASSTVCLASSLIBRARYLVRESULTTHISVRESULTCSETOBJREFPROGRAM���B�UTOOBJECT������%������'�B��!������(���������u�T��C������7%�C���C����h
�C�this.�b�O����.��oObject=this.&lcName
%�C�����.��<%�C�oObjectb�O�C��
	�C��Release��h	���
�����%%�C��
�C��oHost��h	��O�T�����this.&lcName=.NULL.
T��������������T������ULCNAMEOOBJECTLNCOUNTTHISNOBJECTREFCOUNTAOBJECTREFSRELEASEOHOSTZ���T��C�����!%����
CC����	��J�
T������	B����ULNOBJECTREFCOUNTTHISAOBJECTREFS	��
��
������UVNEWVAL.+T���CC�thisformb�O����6��UTHISOHOSTTHISFORM��������T��C�DATASESSIONv��.%�C�tnDataSessionIDb�N���	��e�G�(�����T��C�������G�(����	B����UTNDATASESSIONID
ONEWOBJECTLNLASTDATASESSIONIDTHISCLASSCLASSLIBRARYB��SetObjRf.prg�USETOBJRFPRG$
������B�C������ULAINSTANCESTHISCLASS���
������UVNEWVAL�����������%����
�C����B�B�-���T��CCC�ERROR��f��%�C��
����OT��CCC��ERROR()�nError��	PROGRAM()�cMethod��LINENO()�nLine���&lcOnError
B��bT��CEC�
 C�
 ��	C�
 �Error:           CC�Z�C�
 �Method:       CC��@��T��C�E��'%�C���������...
	����0T���C�
 �Line:            CC�Z���%�C��
����T���C�
 C�
 �����R���C���9�
�x��	�����UNERRORCMETHODNLINE	LCONERROR
LCERRORMSG
LCCODELINEMSGTHIS
LIGNOREERRORS	STARTMODENAMECAPTIONL%������
����� %����
C���
	��E�B�-���UTHISLSETHOSTSETHOSTLAUTOSETOBJECTREFS
SETOBJECTREFSD%������B�-���T���a��
����T����UTHISLRELEASERELEASEOBJREFSOHOSTrelease,��setobjectref��
setobjectrefs���releaseobjrefs���nobjectrefcount_access���nobjectrefcount_assigni��sethost���newinstance���addtoproject���ninstances_access���ninstances_assign/��ErrorP��Init���DestroyC	��1qAqA�!��1qA3�q����3qB3�BAA�qAA��AA��AQ�Aq�Aa3qR�A�3��3�3q����A���3B23�B3q�3���qA���AA#�q�AAQA�3�AqA3qA���2/)In�"2�>9�H<&]N>�RH�,_KT�fN��lQ�?rhZ��o�R
�)�
�� ���0%�	�v�
�U����%�����"���B�-���T���a��T��C��@��T����
����3%�C�� �form �formset �toolbar �
����<���ULCBASECLASSTHISLRELEASE	BASECLASSOHOSTRELEASEOBJREFSw��������T���a��)�����������������T������T���a��	B����UTCNAMETVCLASSTVCLASSLIBRARYLVRESULTTHISVRESULTCSETOBJREFPROGRAM���B�UTOOBJECT������%������'�B��!������(���������u�T��C������7%�C���C����h
�C�this.�b�O����.��oObject=this.&lcName
%�C�����.��<%�C�oObjectb�O�C��
	�C��Release��h	���
�����%%�C��
�C��oHost��h	��O�T�����this.&lcName=.NULL.
T��������������T������ULCNAMEOOBJECTLNCOUNTTHISNOBJECTREFCOUNTAOBJECTREFSRELEASEOHOSTZ���T��C�����!%����
CC����	��J�
T������	B����ULNOBJECTREFCOUNTTHISAOBJECTREFS	��
��
������UVNEWVAL.+T���CC�thisformb�O����6��UTHISOHOSTTHISFORM��������T��C�DATASESSIONv��.%�C�tnDataSessionIDb�N���	��e�G�(�����T��C�������G�(����	B����UTNDATASESSIONID
ONEWOBJECTLNLASTDATASESSIONIDTHISCLASSCLASSLIBRARYB��SetObjRf.prg�USETOBJRFPRG$
������B�C������ULAINSTANCESTHISCLASS���
������UVNEWVALD%������B�-���T���a��
����T����UTHISLRELEASERELEASEOBJREFSOHOSTL%������
����� %����
C���
	��E�B�-���UTHISLSETHOSTSETHOSTLAUTOSETOBJECTREFS
SETOBJECTREFS�����������%����
�C����B�B�-���T��CCC�ERROR��f��%�C��
����OT��CCC��ERROR()�nError��	PROGRAM()�cMethod��LINENO()�nLine���&lcOnError
B��bT��CEC�
 C�
 ��	C�
 �Error:           CC�Z�C�
 �Method:       CC��@��T��C�E��'%�C���������...
	����0T���C�
 �Line:            CC�Z���%�C��
����T���C�
 C�
 �����R���C���9�
�x��	�����UNERRORCMETHODNLINE	LCONERROR
LCERRORMSG
LCCODELINEMSGTHIS
LIGNOREERRORS	STARTMODENAMECAPTIONrelease,��setobjectref��
setobjectrefs���releaseobjrefs���nobjectrefcount_access���nobjectrefcount_assigni��sethost���newinstance���addtoproject���ninstances_access���ninstances_assign/��DestroyP��Init���ErrorK��1qAqA�!��1qA3�q����3qB3�BAA�qAA��AA��AQ�Aq�Aa3qR�A�3��3�3q����A���3B23�B3q�3qA���3�AqA3���qA���AA#�q�AAQA�2/)In�"2�>9�H<&]N>�RH�,_KT�fN��lQ	a	rX|	�	{_
R
�)�
�� ���0%�	�v�
�U����%�����"���B�-���T���a��T��C��@��T����
����3%�C�� �form �formset �toolbar �
����<���ULCBASECLASSTHISLRELEASE	BASECLASSOHOSTRELEASEOBJREFSw��������T���a��)�����������������T������T���a��	B����UTCNAMETVCLASSTVCLASSLIBRARYLVRESULTTHISVRESULTCSETOBJREFPROGRAM���B�UTOOBJECT������%������'�B��!������(���������u�T��C������7%�C���C����h
�C�this.�b�O����.��oObject=this.&lcName
%�C�����.��<%�C�oObjectb�O�C��
	�C��Release��h	���
�����%%�C��
�C��oHost��h	��O�T�����this.&lcName=.NULL.
T��������������T������ULCNAMEOOBJECTLNCOUNTTHISNOBJECTREFCOUNTAOBJECTREFSRELEASEOHOSTZ���T��C�����!%����
CC����	��J�
T������	B����ULNOBJECTREFCOUNTTHISAOBJECTREFS	��
��
������UVNEWVAL.+T���CC�thisformb�O����6��UTHISOHOSTTHISFORM��������T��C�DATASESSIONv��.%�C�tnDataSessionIDb�N���	��e�G�(�����T��C�������G�(����	B����UTNDATASESSIONID
ONEWOBJECTLNLASTDATASESSIONIDTHISCLASSCLASSLIBRARYB��SetObjRf.prg�USETOBJRFPRG$
������B�C������ULAINSTANCESTHISCLASS���
������UVNEWVAL�����������%����
�C����B�B�-���T��CCC�ERROR��f��%�C��
����OT��CCC��ERROR()�nError��	PROGRAM()�cMethod��LINENO()�nLine���&lcOnError
B��bT��CEC�
 C�
 ��	C�
 �Error:           CC�Z�C�
 �Method:       CC��@��T��C�E��'%�C���������...
	����0T���C�
 �Line:            CC�Z���%�C��
����T���C�
 C�
 �����R���C���9�
�x��	�����UNERRORCMETHODNLINE	LCONERROR
LCERRORMSG
LCCODELINEMSGTHIS
LIGNOREERRORS	STARTMODENAMECAPTIONL%������
����� %����
C���
	��E�B�-���UTHISLSETHOSTSETHOSTLAUTOSETOBJECTREFS
SETOBJECTREFSD%������B�-���T���a��
����T����UTHISLRELEASERELEASEOBJREFSOHOSTrelease,��setobjectref��
setobjectrefs���releaseobjrefs���nobjectrefcount_access���nobjectrefcount_assigni��sethost���newinstance���addtoproject���ninstances_access���ninstances_assign/��ErrorP��Init���DestroyC	��1qAqA�!��1qA3�q����3qB3�BAA�qAA��AA��AQ�Aq�Aa3qR�A�3��3�3q����A���3B23�B3q�3���qA���AA#�q�AAQA�3�AqA3qA���2/)In�"2�>9�H<&]N>�RH�,_KT�fN��lQ�?rhZ��o�R
�)�
�� ���0%�	�v�
�U����%�����"���B�-���T���a��T��C��@��T����
����3%�C�� �form �formset �toolbar �
����<���ULCBASECLASSTHISLRELEASE	BASECLASSOHOSTRELEASEOBJREFSw��������T���a��)�����������������T������T���a��	B����UTCNAMETVCLASSTVCLASSLIBRARYLVRESULTTHISVRESULTCSETOBJREFPROGRAM���B�UTOOBJECT������%������'�B��!������(���������u�T��C������7%�C���C����h
�C�this.�b�O����.��oObject=this.&lcName
%�C�����.��<%�C�oObjectb�O�C��
	�C��Release��h	���
�����%%�C��
�C��oHost��h	��O�T�����this.&lcName=.NULL.
T��������������T������ULCNAMEOOBJECTLNCOUNTTHISNOBJECTREFCOUNTAOBJECTREFSRELEASEOHOSTZ���T��C�����!%����
CC����	��J�
T������	B����ULNOBJECTREFCOUNTTHISAOBJECTREFS	��
��
������UVNEWVAL.+T���CC�thisformb�O����6��UTHISOHOSTTHISFORM��������T��C�DATASESSIONv��.%�C�tnDataSessionIDb�N���	��e�G�(�����T��C�������G�(����	B����UTNDATASESSIONID
ONEWOBJECTLNLASTDATASESSIONIDTHISCLASSCLASSLIBRARYB��SetObjRf.prg�USETOBJRFPRG$
������B�C������ULAINSTANCESTHISCLASS���
������UVNEWVAL�����������%����
�C����B�B�-���T��CCC�ERROR��f��%�C��
����OT��CCC��ERROR()�nError��	PROGRAM()�cMethod��LINENO()�nLine���&lcOnError
B��bT��CEC�
 C�
 ��	C�
 �Error:           CC�Z�C�
 �Method:       CC��@��T��C�E��'%�C���������...
	����0T���C�
 �Line:            CC�Z���%�C��
����T���C�
 C�
 �����R���C���9�
�x��	�����UNERRORCMETHODNLINE	LCONERROR
LCERRORMSG
LCCODELINEMSGTHIS
LIGNOREERRORS	STARTMODENAMECAPTIONL%������
����� %����
C���
	��E�B�-���UTHISLSETHOSTSETHOSTLAUTOSETOBJECTREFS
SETOBJECTREFSD%������B�-���T���a��
����T����UTHISLRELEASERELEASEOBJREFSOHOSTrelease,��setobjectref��
setobjectrefs���releaseobjrefs���nobjectrefcount_access���nobjectrefcount_assigni��sethost���newinstance���addtoproject���ninstances_access���ninstances_assign/��ErrorP��Init���DestroyC	��1qAqA�!��1qA3�q����3qB3�BAA�qAA��AA��AQ�Aq�Aa3qR�A�3��3�3q����A���3B23�B3q�3���qA���AA#�q�AAQA�3�AqA3qA���2/)In�"2�>9�H<&]N>�RH�,_KT�fN��lQ�?rhZ��o�R
�)�
�� ���0%�	�v�
�U����%�����"���B�-���T���a��T��C��@��T����
����3%�C�� �form �formset �toolbar �
����<���ULCBASECLASSTHISLRELEASE	BASECLASSOHOSTRELEASEOBJREFSw��������T���a��)�����������������T������T���a��	B����UTCNAMETVCLASSTVCLASSLIBRARYLVRESULTTHISVRESULTCSETOBJREFPROGRAM���B�UTOOBJECT������%������'�B��!������(���������u�T��C������7%�C���C����h
�C�this.�b�O����.��oObject=this.&lcName
%�C�����.��<%�C�oObjectb�O�C��
	�C��Release��h	���
�����%%�C��
�C��oHost��h	��O�T�����this.&lcName=.NULL.
T��������������T������ULCNAMEOOBJECTLNCOUNTTHISNOBJECTREFCOUNTAOBJECTREFSRELEASEOHOSTZ���T��C�����!%����
CC����	��J�
T������	B����ULNOBJECTREFCOUNTTHISAOBJECTREFS	��
��
������UVNEWVAL.+T���CC�thisformb�O����6��UTHISOHOSTTHISFORM��������T��C�DATASESSIONv��.%�C�tnDataSessionIDb�N���	��e�G�(�����T��C�������G�(����	B����UTNDATASESSIONID
ONEWOBJECTLNLASTDATASESSIONIDTHISCLASSCLASSLIBRARYB��SetObjRf.prg�USETOBJRFPRG$
������B�C������ULAINSTANCESTHISCLASS���
������UVNEWVAL�����������%����
�C����B�B�-���T��CCC�ERROR��f��%�C��
����OT��CCC��ERROR()�nError��	PROGRAM()�cMethod��LINENO()�nLine���&lcOnError
B��bT��CEC�
 C�
 ��	C�
 �Error:           CC�Z�C�
 �Method:       CC��@��T��C�E��'%�C���������...
	����0T���C�
 �Line:            CC�Z���%�C��
����T���C�
 C�
 �����R���C���9�
�x��	�����UNERRORCMETHODNLINE	LCONERROR
LCERRORMSG
LCCODELINEMSGTHIS
LIGNOREERRORS	STARTMODENAMECAPTIONL%������
����� %����
C���
	��E�B�-���UTHISLSETHOSTSETHOSTLAUTOSETOBJECTREFS
SETOBJECTREFSD%������B�-���T���a��
����T����UTHISLRELEASERELEASEOBJREFSOHOSTrelease,��setobjectref��
setobjectrefs���releaseobjrefs���nobjectrefcount_access���nobjectrefcount_assigni��sethost���newinstance���addtoproject���ninstances_access���ninstances_assign/��ErrorP��Init���DestroyC	��1qAqA�!��1qA3�q����3qB3�BAA�qAA��AA��AQ�Aq�Aa3qR�A�3��3�3q����A���3B23�B3q�3���qA���AA#�q�AAQA�3�AqA3qA���2/)In�"2�>9�H<&]N>�RH�,_KT�fN��lQ�?rhZ��o�R
�)�
�� ���0%�	�v�
�U����%�����"���B�-���T���a��T��C��@��T����
����3%�C�� �form �formset �toolbar �
����<���ULCBASECLASSTHISLRELEASE	BASECLASSOHOSTRELEASEOBJREFSw��������T���a��)�����������������T������T���a��	B����UTCNAMETVCLASSTVCLASSLIBRARYLVRESULTTHISVRESULTCSETOBJREFPROGRAM���B�UTOOBJECT������%������'�B��!������(���������u�T��C������7%�C���C����h
�C�this.�b�O����.��oObject=this.&lcName
%�C�����.��<%�C�oObjectb�O�C��
	�C��Release��h	���
�����%%�C��
�C��oHost��h	��O�T�����this.&lcName=.NULL.
T��������������T������ULCNAMEOOBJECTLNCOUNTTHISNOBJECTREFCOUNTAOBJECTREFSRELEASEOHOSTZ���T��C�����!%����
CC����	��J�
T������	B����ULNOBJECTREFCOUNTTHISAOBJECTREFS	��
��
������UVNEWVAL.+T���CC�thisformb�O����6��UTHISOHOSTTHISFORM��������T��C�DATASESSIONv��.%�C�tnDataSessionIDb�N���	��e�G�(�����T��C�������G�(����	B����UTNDATASESSIONID
ONEWOBJECTLNLASTDATASESSIONIDTHISCLASSCLASSLIBRARYB��SetObjRf.prg�USETOBJRFPRG$
������B�C������ULAINSTANCESTHISCLASS���
������UVNEWVAL�����������%����
�C����B�B�-���T��CCC�ERROR��f��%�C��
����OT��CCC��ERROR()�nError��	PROGRAM()�cMethod��LINENO()�nLine���&lcOnError
B��bT��CEC�
 C�
 ��	C�
 �Error:           CC�Z�C�
 �Method:       CC��@��T��C�E��'%�C���������...
	����0T���C�
 �Line:            CC�Z���%�C��
����T���C�
 C�
 �����R���C���9�
�x��	�����UNERRORCMETHODNLINE	LCONERROR
LCERRORMSG
LCCODELINEMSGTHIS
LIGNOREERRORS	STARTMODENAMECAPTIONL%������
����� %����
C���
	��E�B�-���UTHISLSETHOSTSETHOSTLAUTOSETOBJECTREFS
SETOBJECTREFSD%������B�-���T���a��
����T����UTHISLRELEASERELEASEOBJREFSOHOSTrelease,��setobjectref��
setobjectrefs���releaseobjrefs���nobjectrefcount_access���nobjectrefcount_assigni��sethost���newinstance���addtoproject���ninstances_access���ninstances_assign/��ErrorP��Init���DestroyC	��1qAqA�!��1qA3�q����3qB3�BAA�qAA��AA��AQ�Aq�Aa3qR�A�3��3�3q����A���3B23�B3q�3���qA���AA#�q�AAQA�3�AqA3qA���2/)In�"2�>9�H<&]N>�RH�,_KT�fN��lQ�?rhZ��o�R
�)�
�� ���0%�	�v�
�U����%�����"���B�-���T���a��T��C��@��T����
����3%�C�� �form �formset �toolbar �
����<���ULCBASECLASSTHISLRELEASE	BASECLASSOHOSTRELEASEOBJREFSw��������T���a��)�����������������T������T���a��	B����UTCNAMETVCLASSTVCLASSLIBRARYLVRESULTTHISVRESULTCSETOBJREFPROGRAM���B�UTOOBJECT������%������'�B��!������(���������u�T��C������7%�C���C����h
�C�this.�b�O����.��oObject=this.&lcName
%�C�����.��<%�C�oObjectb�O�C��
	�C��Release��h	���
�����%%�C��
�C��oHost��h	��O�T�����this.&lcName=.NULL.
T��������������T������ULCNAMEOOBJECTLNCOUNTTHISNOBJECTREFCOUNTAOBJECTREFSRELEASEOHOSTZ���T��C�����!%����
CC����	��J�
T������	B����ULNOBJECTREFCOUNTTHISAOBJECTREFS	��
��
������UVNEWVAL.+T���CC�thisformb�O����6��UTHISOHOSTTHISFORM��������T��C�DATASESSIONv��.%�C�tnDataSessionIDb�N���	��e�G�(�����T��C�������G�(����	B����UTNDATASESSIONID
ONEWOBJECTLNLASTDATASESSIONIDTHISCLASSCLASSLIBRARYB��SetObjRf.prg�USETOBJRFPRG$
������B�C������ULAINSTANCESTHISCLASS���
������UVNEWVAL�����������%����
�C����B�B�-���T��CCC�ERROR��f��%�C��
����OT��CCC��ERROR()�nError��	PROGRAM()�cMethod��LINENO()�nLine���&lcOnError
B��bT��CEC�
 C�
 ��	C�
 �Error:           CC�Z�C�
 �Method:       CC��@��T��C�E��'%�C���������...
	����0T���C�
 �Line:            CC�Z���%�C��
����T���C�
 C�
 �����R���C���9�
�x��	�����UNERRORCMETHODNLINE	LCONERROR
LCERRORMSG
LCCODELINEMSGTHIS
LIGNOREERRORS	STARTMODENAMECAPTIONL%������
����� %����
C���
	��E�B�-���UTHISLSETHOSTSETHOSTLAUTOSETOBJECTREFS
SETOBJECTREFSD%������B�-���T���a��
����T����UTHISLRELEASERELEASEOBJREFSOHOSTrelease,��setobjectref��
setobjectrefs���releaseobjrefs���nobjectrefcount_access���nobjectrefcount_assigni��sethost���newinstance���addtoproject���ninstances_access���ninstances_assign/��ErrorP��Init���DestroyC	��1qAqA�!��1qA3�q����3qB3�BAA�qAA��AA��AQ�Aq�Aa3qR�A�3��3�3q����A���3B23�B3q�3���qA���AA#�q�AAQA�3�AqA3qA���2/)In�"2�>9�H<&]N>�RH�,_KT�fN��lQ�?rhZ��o�R
�)�
�� ���0%�	�v�
�U����%�����"���B�-���T���a��T��C��@��T����
����3%�C�� �form �formset �toolbar �
����<���ULCBASECLASSTHISLRELEASE	BASECLASSOHOSTRELEASEOBJREFSw��������T���a��)�����������������T������T���a��	B����UTCNAMETVCLASSTVCLASSLIBRARYLVRESULTTHISVRESULTCSETOBJREFPROGRAM���B�UTOOBJECT������%������'�B��!������(���������u�T��C������7%�C���C����h
�C�this.�b�O����.��oObject=this.&lcName
%�C�����.��<%�C�oObjectb�O�C��
	�C��Release��h	���
�����%%�C��
�C��oHost��h	��O�T�����this.&lcName=.NULL.
T��������������T������ULCNAMEOOBJECTLNCOUNTTHISNOBJECTREFCOUNTAOBJECTREFSRELEASEOHOSTZ���T��C�����!%����
CC����	��J�
T������	B����ULNOBJECTREFCOUNTTHISAOBJECTREFS	��
��
������UVNEWVAL.+T���CC�thisformb�O����6��UTHISOHOSTTHISFORM��������T��C�DATASESSIONv��.%�C�tnDataSessionIDb�N���	��e�G�(�����T��C�������G�(����	B����UTNDATASESSIONID
ONEWOBJECTLNLASTDATASESSIONIDTHISCLASSCLASSLIBRARYB��SetObjRf.prg�USETOBJRFPRG$
������B�C������ULAINSTANCESTHISCLASS���
������UVNEWVAL�����������%����
�C����B�B�-���T��CCC�ERROR��f��%�C��
����OT��CCC��ERROR()�nError��	PROGRAM()�cMethod��LINENO()�nLine���&lcOnError
B��bT��CEC�
 C�
 ��	C�
 �Error:           CC�Z�C�
 �Method:       CC��@��T��C�E��'%�C���������...
	����0T���C�
 �Line:            CC�Z���%�C��
����T���C�
 C�
 �����R���C���9�
�x��	�����UNERRORCMETHODNLINE	LCONERROR
LCERRORMSG
LCCODELINEMSGTHIS
LIGNOREERRORS	STARTMODENAMECAPTIONL%������
����� %����
C���
	��E�B�-���UTHISLSETHOSTSETHOSTLAUTOSETOBJECTREFS
SETOBJECTREFSD%������B�-���T���a��
����T����UTHISLRELEASERELEASEOBJREFSOHOSTrelease,��setobjectref��
setobjectrefs���releaseobjrefs���nobjectrefcount_access���nobjectrefcount_assigni��sethost���newinstance���addtoproject���ninstances_access���ninstances_assign/��ErrorP��Init���DestroyC	��1qAqA�!��1qA3�q����3qB3�BAA�qAA��AA��AQ�Aq�Aa3qR�A�3��3�3q����A���3B23�B3q�3���qA���AA#�q�AAQA�3�AqA3qA���2/)In�"2�>9�H<&]N>�RH�,_KT�fN��lQ�?rhZ��o�R
�)�
�� ���0%�	�v�
�U����%�����"���B�-���T���a��T��C��@��T����
����3%�C�� �form �formset �toolbar �
����<���ULCBASECLASSTHISLRELEASE	BASECLASSOHOSTRELEASEOBJREFSw��������T���a��)�����������������T������T���a��	B����UTCNAMETVCLASSTVCLASSLIBRARYLVRESULTTHISVRESULTCSETOBJREFPROGRAM���B�UTOOBJECT������%������'�B��!������(���������u�T��C������7%�C���C����h
�C�this.�b�O����.��oObject=this.&lcName
%�C�����.��<%�C�oObjectb�O�C��
	�C��Release��h	���
�����%%�C��
�C��oHost��h	��O�T�����this.&lcName=.NULL.
T��������������T������ULCNAMEOOBJECTLNCOUNTTHISNOBJECTREFCOUNTAOBJECTREFSRELEASEOHOSTZ���T��C�����!%����
CC����	��J�
T������	B����ULNOBJECTREFCOUNTTHISAOBJECTREFS	��
��
������UVNEWVAL.+T���CC�thisformb�O����6��UTHISOHOSTTHISFORM��������T��C�DATASESSIONv��.%�C�tnDataSessionIDb�N���	��e�G�(�����T��C�������G�(����	B����UTNDATASESSIONID
ONEWOBJECTLNLASTDATASESSIONIDTHISCLASSCLASSLIBRARYB��SetObjRf.prg�USETOBJRFPRG$
������B�C������ULAINSTANCESTHISCLASS���
������UVNEWVAL�����������%����
�C����B�B�-���T��CCC�ERROR��f��%�C��
����OT��CCC��ERROR()�nError��	PROGRAM()�cMethod��LINENO()�nLine���&lcOnError
B��bT��CEC�
 C�
 ��	C�
 �Error:           CC�Z�C�
 �Method:       CC��@��T��C�E��'%�C���������...
	����0T���C�
 �Line:            CC�Z���%�C��
����T���C�
 C�
 �����R���C���9�
�x��	�����UNERRORCMETHODNLINE	LCONERROR
LCERRORMSG
LCCODELINEMSGTHIS
LIGNOREERRORS	STARTMODENAMECAPTIONL%������
����� %����
C���
	��E�B�-���UTHISLSETHOSTSETHOSTLAUTOSETOBJECTREFS
SETOBJECTREFSD%������B�-���T���a��
����T����UTHISLRELEASERELEASEOBJREFSOHOSTrelease,��setobjectref��
setobjectrefs���releaseobjrefs���nobjectrefcount_access���nobjectrefcount_assigni��sethost���newinstance���addtoproject���ninstances_access���ninstances_assign/��ErrorP��Init���DestroyC	��1qAqA�!��1qA3�q����3qB3�BAA�qAA��AA��AQ�Aq�Aa3qR�A�3��3�3q����A���3B23�B3q�3���qA���AA#�q�AAQA�3�AqA3qA���2/)In�"2�>9�H<&]N>�RH�,_KT�fN��lQ�?rhZ��o�R
�)�
�� ���0%�	�v�
�U����%�����"���B�-���T���a��T��C��@��T����
����3%�C�� �form �formset �toolbar �
����<���ULCBASECLASSTHISLRELEASE	BASECLASSOHOSTRELEASEOBJREFSw��������T���a��)�����������������T������T���a��	B����UTCNAMETVCLASSTVCLASSLIBRARYLVRESULTTHISVRESULTCSETOBJREFPROGRAM���B�UTOOBJECT������%������'�B��!������(���������u�T��C������7%�C���C����h
�C�this.�b�O����.��oObject=this.&lcName
%�C�����.��<%�C�oObjectb�O�C��
	�C��Release��h	���
�����%%�C��
�C��oHost��h	��O�T�����this.&lcName=.NULL.
T��������������T������ULCNAMEOOBJECTLNCOUNTTHISNOBJECTREFCOUNTAOBJECTREFSRELEASEOHOSTZ���T��C�����!%����
CC����	��J�
T������	B����ULNOBJECTREFCOUNTTHISAOBJECTREFS	��
��
������UVNEWVAL.+T���CC�thisformb�O����6��UTHISOHOSTTHISFORM��������T��C�DATASESSIONv��.%�C�tnDataSessionIDb�N���	��e�G�(�����T��C�������G�(����	B����UTNDATASESSIONID
ONEWOBJECTLNLASTDATASESSIONIDTHISCLASSCLASSLIBRARYB��SetObjRf.prg�USETOBJRFPRG$
������B�C������ULAINSTANCESTHISCLASS���
������UVNEWVAL�����������%����
�C����B�B�-���T��CCC�ERROR��f��%�C��
����OT��CCC��ERROR()�nError��	PROGRAM()�cMethod��LINENO()�nLine���&lcOnError
B��bT��CEC�
 C�
 ��	C�
 �Error:           CC�Z�C�
 �Method:       CC��@��T��C�E��'%�C���������...
	����0T���C�
 �Line:            CC�Z���%�C��
����T���C�
 C�
 �����R���C���9�
�x��	�����UNERRORCMETHODNLINE	LCONERROR
LCERRORMSG
LCCODELINEMSGTHIS
LIGNOREERRORS	STARTMODENAMECAPTIONL%������
����� %����
C���
	��E�B�-���UTHISLSETHOSTSETHOSTLAUTOSETOBJECTREFS
SETOBJECTREFSD%������B�-���T���a��
����T����UTHISLRELEASERELEASEOBJREFSOHOSTrelease,��setobjectref��
setobjectrefs���releaseobjrefs���nobjectrefcount_access���nobjectrefcount_assigni��sethost���newinstance���addtoproject���ninstances_access���ninstances_assign/��ErrorP��Init���DestroyC	��1qAqA�!��1qA3�q����3qB3�BAA�qAA��AA��AQ�Aq�Aa3qR�A�3��3�3q����A���3B23�B3q�3���qA���AA#�q�AAQA�3�AqA3qA���2/)In�"2�>9�H<&]N>�RH�,_KT�fN��lQ�?rhZ��o�R
�)�
�� ���0%�	�v�
�U����%�����"���B�-���T���a��T��C��@��T����
����3%�C�� �form �formset �toolbar �
����<���ULCBASECLASSTHISLRELEASE	BASECLASSOHOSTRELEASEOBJREFSw��������T���a��)�����������������T������T���a��	B����UTCNAMETVCLASSTVCLASSLIBRARYLVRESULTTHISVRESULTCSETOBJREFPROGRAM���B�UTOOBJECT������%������'�B��!������(���������u�T��C������7%�C���C����h
�C�this.�b�O����.��oObject=this.&lcName
%�C�����.��<%�C�oObjectb�O�C��
	�C��Release��h	���
�����%%�C��
�C��oHost��h	��O�T�����this.&lcName=.NULL.
T��������������T������ULCNAMEOOBJECTLNCOUNTTHISNOBJECTREFCOUNTAOBJECTREFSRELEASEOHOSTZ���T��C�����!%����
CC����	��J�
T������	B����ULNOBJECTREFCOUNTTHISAOBJECTREFS	��
��
������UVNEWVAL.+T���CC�thisformb�O����6��UTHISOHOSTTHISFORM��������T��C�DATASESSIONv��.%�C�tnDataSessionIDb�N���	��e�G�(�����T��C�������G�(����	B����UTNDATASESSIONID
ONEWOBJECTLNLASTDATASESSIONIDTHISCLASSCLASSLIBRARYB��SetObjRf.prg�USETOBJRFPRG$
������B�C������ULAINSTANCESTHISCLASS���
������UVNEWVAL�����������%����
�C����B�B�-���T��CCC�ERROR��f��%�C��
����OT��CCC��ERROR()�nError��	PROGRAM()�cMethod��LINENO()�nLine���&lcOnError
B��bT��CEC�
 C�
 ��	C�
 �Error:           CC�Z�C�
 �Method:       CC��@��T��C�E��'%�C���������...
	����0T���C�
 �Line:            CC�Z���%�C��
����T���C�
 C�
 �����R���C���9�
�x��	�����UNERRORCMETHODNLINE	LCONERROR
LCERRORMSG
LCCODELINEMSGTHIS
LIGNOREERRORS	STARTMODENAMECAPTIONL%������
����� %����
C���
	��E�B�-���UTHISLSETHOSTSETHOSTLAUTOSETOBJECTREFS
SETOBJECTREFSD%������B�-���T���a��
����T����UTHISLRELEASERELEASEOBJREFSOHOSTrelease,��setobjectref��
setobjectrefs���releaseobjrefs���nobjectrefcount_access���nobjectrefcount_assigni��sethost���newinstance���addtoproject���ninstances_access���ninstances_assign/��ErrorP��Init���DestroyC	��1qAqA�!��1qA3�q����3qB3�BAA�qAA��AA��AQ�Aq�Aa3qR�A�3��3�3q����A���3B23�B3q�3���qA���AA#�q�AAQA�3�AqA3qA���2/)In�"2�>9�H<&]N>�RH�,_KT�fN��lQ�?rhZ��o�R
�)�
�� ���0%�	�v�
�U����%�����"���B�-���T���a��T��C��@��T����
����3%�C�� �form �formset �toolbar �
����<���ULCBASECLASSTHISLRELEASE	BASECLASSOHOSTRELEASEOBJREFSw��������T���a��)�����������������T������T���a��	B����UTCNAMETVCLASSTVCLASSLIBRARYLVRESULTTHISVRESULTCSETOBJREFPROGRAM���B�UTOOBJECT������%������'�B��!������(���������u�T��C������7%�C���C����h
�C�this.�b�O����.��oObject=this.&lcName
%�C�����.��<%�C�oObjectb�O�C��
	�C��Release��h	���
�����%%�C��
�C��oHost��h	��O�T�����this.&lcName=.NULL.
T��������������T������ULCNAMEOOBJECTLNCOUNTTHISNOBJECTREFCOUNTAOBJECTREFSRELEASEOHOSTZ���T��C�����!%����
CC����	��J�
T������	B����ULNOBJECTREFCOUNTTHISAOBJECTREFS	��
��
������UVNEWVAL.+T���CC�thisformb�O����6��UTHISOHOSTTHISFORM��������T��C�DATASESSIONv��.%�C�tnDataSessionIDb�N���	��e�G�(�����T��C�������G�(����	B����UTNDATASESSIONID
ONEWOBJECTLNLASTDATASESSIONIDTHISCLASSCLASSLIBRARYB��SetObjRf.prg�USETOBJRFPRG$
������B�C������ULAINSTANCESTHISCLASS���
������UVNEWVAL�����������%����
�C����B�B�-���T��CCC�ERROR��f��%�C��
����OT��CCC��ERROR()�nError��	PROGRAM()�cMethod��LINENO()�nLine���&lcOnError
B��bT��CEC�
 C�
 ��	C�
 �Error:           CC�Z�C�
 �Method:       CC��@��T��C�E��'%�C���������...
	����0T���C�
 �Line:            CC�Z���%�C��
����T���C�
 C�
 �����R���C���9�
�x��	�����UNERRORCMETHODNLINE	LCONERROR
LCERRORMSG
LCCODELINEMSGTHIS
LIGNOREERRORS	STARTMODENAMECAPTIONL%������
����� %����
C���
	��E�B�-���UTHISLSETHOSTSETHOSTLAUTOSETOBJECTREFS
SETOBJECTREFSD%������B�-���T���a��
����T����UTHISLRELEASERELEASEOBJREFSOHOSTrelease,��setobjectref��
setobjectrefs���releaseobjrefs���nobjectrefcount_access���nobjectrefcount_assigni��sethost���newinstance���addtoproject���ninstances_access���ninstances_assign/��ErrorP��Init���DestroyC	��1qAqA�!��1qA3�q����3qB3�BAA�qAA��AA��AQ�Aq�Aa3qR�A�3��3�3q����A���3B23�B3q�3���qA���AA#�q�AAQA�3�AqA3qA���2/)In�"2�>9�H<&]N>�RH�,_KT�fN��lQ�?rhZ��o�R
�)�
�� ���0%�	�v�
�U����%�����"���B�-���T���a��T��C��@��T����
����3%�C�� �form �formset �toolbar �
����<���ULCBASECLASSTHISLRELEASE	BASECLASSOHOSTRELEASEOBJREFSw��������T���a��)�����������������T������T���a��	B����UTCNAMETVCLASSTVCLASSLIBRARYLVRESULTTHISVRESULTCSETOBJREFPROGRAM���B�UTOOBJECT������%������'�B��!������(���������u�T��C������7%�C���C����h
�C�this.�b�O����.��oObject=this.&lcName
%�C�����.��<%�C�oObjectb�O�C��
	�C��Release��h	���
�����%%�C��
�C��oHost��h	��O�T�����this.&lcName=.NULL.
T��������������T������ULCNAMEOOBJECTLNCOUNTTHISNOBJECTREFCOUNTAOBJECTREFSRELEASEOHOSTZ���T��C�����!%����
CC����	��J�
T������	B����ULNOBJECTREFCOUNTTHISAOBJECTREFS	��
��
������UVNEWVAL.+T���CC�thisformb�O����6��UTHISOHOSTTHISFORM��������T��C�DATASESSIONv��.%�C�tnDataSessionIDb�N���	��e�G�(�����T��C�������G�(����	B����UTNDATASESSIONID
ONEWOBJECTLNLASTDATASESSIONIDTHISCLASSCLASSLIBRARYB��SetObjRf.prg�USETOBJRFPRG$
������B�C������ULAINSTANCESTHISCLASS���
������UVNEWVAL�����������%����
�C����B�B�-���T��CCC�ERROR��f��%�C��
����OT��CCC��ERROR()�nError��	PROGRAM()�cMethod��LINENO()�nLine���&lcOnError
B��bT��CEC�
 C�
 ��	C�
 �Error:           CC�Z�C�
 �Method:       CC��@��T��C�E��'%�C���������...
	����0T���C�
 �Line:            CC�Z���%�C��
����T���C�
 C�
 �����R���C���9�
�x��	�����UNERRORCMETHODNLINE	LCONERROR
LCERRORMSG
LCCODELINEMSGTHIS
LIGNOREERRORS	STARTMODENAMECAPTIONL%������
����� %����
C���
	��E�B�-���UTHISLSETHOSTSETHOSTLAUTOSETOBJECTREFS
SETOBJECTREFSD%������B�-���T���a��
����T����UTHISLRELEASERELEASEOBJREFSOHOSTrelease,��setobjectref��
setobjectrefs���releaseobjrefs���nobjectrefcount_access���nobjectrefcount_assigni��sethost���newinstance���addtoproject���ninstances_access���ninstances_assign/��ErrorP��Init���DestroyC	��1qAqA�!��1qA3�q����3qB3�BAA�qAA��AA��AQ�Aq�Aa3qR�A�3��3�3q����A���3B23�B3q�3���qA���AA#�q�AAQA�3�AqA3qA���2/)In�"2�>9�H<&]N>�RH�,_KT�fN��lQ�?rhZ��o�R
�)�icversion Version property.
builder Bulder property.
builderx BuilderX property.
lautobuilder Specifies if custom FFC builder is automatically launched when instance is added to a container in design mode, even if the control pallette Builder Lock button is off.
nobjectrefcount Returns the number of items in the object reference array property aObjectRefs.
ohost Object reference to host object (generally THISFORM), which is automatically set on Init if lSetHost is .T.
lautosetobjectrefs Specifiies if the SetObjectRefs method is automatically called from the Init method.
vresult Variant result property for internal usage when calling programs in PRGs and a return file is required.
lrelease Indicates the object's Release method has been executed and the object is in the process of being released from memory.
csetobjrefprogram Program to be called when when setting an object references via the SetObjectRef method.
lignoreerrors Specifies if the default FFC error handler is executed when an error occurs.
lsethost Specifies if the SetHost method is automatically called from the Init method to set the oHost property to THISFORM.
ninstances Number of instances.
^aobjectrefs[1,3] Array of object references properties.
*release Releases object from memory.
*setobjectref Set object reference to specific property.
*setobjectrefs Place holder method for listing SetObjectRef method calls.
*releaseobjrefs Releases all object references of aObjectRefs array.
*nobjectrefcount_access Access method for nObjectRefCount property.
*nobjectrefcount_assign Assign method for nObjectRefCount property.
*sethost Set oHost property to form reference object.
*newinstance Returns new instance of object.
*addtoproject Dummy code for adding files to project.
*ninstances_access Access method for nInstances property.
*ninstances_assign Assign method for nInstances property.
"Caption = "Option1"
Height = 17
Width = 61
cversion = 
builder = 
builderx = (HOME()+"Wizards\BuilderD,BuilderDForm")
nobjectrefcount = 0
ohost = .NULL.
vresult = .T.
csetobjrefprogram = (IIF(VERSION(2)=0,"",HOME()+"FFC\")+"SetObjRf.prg")
ninstances = 0
Name = "_optionbutton2"

�� ���0%�	�v�
�U����%�����"���B�-���T���a��T��C��@��T����
����3%�C�� �form �formset �toolbar �
����<���ULCBASECLASSTHISLRELEASE	BASECLASSOHOSTRELEASEOBJREFSw��������T���a��)�����������������T������T���a��	B����UTCNAMETVCLASSTVCLASSLIBRARYLVRESULTTHISVRESULTCSETOBJREFPROGRAM���B�UTOOBJECT������%������'�B��!������(���������u�T��C������7%�C���C����h
�C�this.�b�O����.��oObject=this.&lcName
%�C�����.��<%�C�oObjectb�O�C��
	�C��Release��h	���
�����%%�C��
�C��oHost��h	��O�T�����this.&lcName=.NULL.
T��������������T������ULCNAMEOOBJECTLNCOUNTTHISNOBJECTREFCOUNTAOBJECTREFSRELEASEOHOSTZ���T��C�����!%����
CC����	��J�
T������	B����ULNOBJECTREFCOUNTTHISAOBJECTREFS	��
��
������UVNEWVAL.+T���CC�thisformb�O����6��UTHISOHOSTTHISFORM��������T��C�DATASESSIONv��.%�C�tnDataSessionIDb�N���	��e�G�(�����T��C�������G�(����	B����UTNDATASESSIONID
ONEWOBJECTLNLASTDATASESSIONIDTHISCLASSCLASSLIBRARYB��SetObjRf.prg�USETOBJRFPRG$
������B�C������ULAINSTANCESTHISCLASS���
������UVNEWVAL�����������%����
�C����B�B�-���T��CCC�ERROR��f��%�C��
����OT��CCC��ERROR()�nError��	PROGRAM()�cMethod��LINENO()�nLine���&lcOnError
B��bT��CEC�
 C�
 ��	C�
 �Error:           CC�Z�C�
 �Method:       CC��@��T��C�E��'%�C���������...
	����0T���C�
 �Line:            CC�Z���%�C��
����T���C�
 C�
 �����R���C���9�
�x��	�����UNERRORCMETHODNLINE	LCONERROR
LCERRORMSG
LCCODELINEMSGTHIS
LIGNOREERRORS	STARTMODENAMECAPTIONL%������
����� %����
C���
	��E�B�-���UTHISLSETHOSTSETHOSTLAUTOSETOBJECTREFS
SETOBJECTREFSD%������B�-���T���a��
����T����UTHISLRELEASERELEASEOBJREFSOHOSTrelease,��setobjectref��
setobjectrefs���releaseobjrefs���nobjectrefcount_access���nobjectrefcount_assigni��sethost���newinstance���addtoproject���ninstances_access���ninstances_assign/��ErrorP��Init���DestroyC	��1qAqA�!��1qA3�q����3qB3�BAA�qAA��AA��AQ�Aq�Aa3qR�A�3��3�3q����A���3B23�B3q�3���qA���AA#�q�AAQA�3�AqA3qA���2/)In�"2�>9�H<&]N>�RH�,_KT�fN��lQ�?rhZ��o�R
�)�
]PROCEDURE release
LOCAL lcBaseClass

IF this.lRelease
	NODEFAULT
	RETURN .F.
ENDIF
this.lRelease=.T.
lcBaseClass=LOWER(this.BaseClass)
this.oHost=.NULL.
this.ReleaseObjRefs
IF NOT INLIST(lcBaseClass+" ","form ","formset ","toolbar ")
	RELEASE this
ENDIF

ENDPROC
PROCEDURE setobjectref
LPARAMETERS tcName,tvClass,tvClassLibrary
LOCAL lvResult

this.vResult=.T.
DO (this.cSetObjRefProgram) WITH (this),(tcName),(tvClass),(tvClassLibrary)
lvResult=this.vResult
this.vResult=.T.
RETURN lvResult

ENDPROC
PROCEDURE setobjectrefs
LPARAMETERS toObject

RETURN

ENDPROC
PROCEDURE releaseobjrefs
LOCAL lcName,oObject,lnCount

IF this.nObjectRefCount=0
	RETURN
ENDIF
FOR lnCount = this.nObjectRefCount TO 1 STEP -1
	lcName=this.aObjectRefs[lnCount,1]
	IF EMPTY(lcName) OR NOT PEMSTATUS(this,lcName,5) OR TYPE("this."+lcName)#"O"
		LOOP
	ENDIF
	oObject=this.&lcName
	IF ISNULL(oObject)
		LOOP
	ENDIF
	IF TYPE("oObject")=="O" AND NOT ISNULL(oObject) AND PEMSTATUS(oObject,"Release",5)
		oObject.Release
	ENDIF
	IF NOT ISNULL(oObject) AND PEMSTATUS(oObject,"oHost",5)
		oObject.oHost=.NULL.
	ENDIF
	this.&lcName=.NULL.
	oObject=.NULL.
ENDFOR
DIMENSION this.aObjectRefs[1,3]
this.aObjectRefs=""

ENDPROC
PROCEDURE nobjectrefcount_access
LOCAL lnObjectRefCount

lnObjectRefCount=ALEN(this.aObjectRefs,1)
IF lnObjectRefCount=1 AND EMPTY(this.aObjectRefs[1])
	lnObjectRefCount=0
ENDIF
RETURN lnObjectRefCount

ENDPROC
PROCEDURE nobjectrefcount_assign
LPARAMETERS m.vNewVal

ERROR 1743

ENDPROC
PROCEDURE sethost
this.oHost=IIF(TYPE("thisform")=="O",thisform,.NULL.)

ENDPROC
PROCEDURE newinstance
LPARAMETERS tnDataSessionID
LOCAL oNewObject,lnLastDataSessionID

lnLastDataSessionID=SET("DATASESSION")
IF TYPE("tnDataSessionID")=="N" AND tnDataSessionID>=1
	SET DATASESSION TO tnDataSessionID
ENDIF
oNewObject=NEWOBJECT(this.Class,this.ClassLibrary)
SET DATASESSION TO (lnLastDataSessionID)
RETURN oNewObject

ENDPROC
PROCEDURE addtoproject
*-- Dummy code for adding files to project.
RETURN

DO SetObjRf.prg

ENDPROC
PROCEDURE ninstances_access
LOCAL laInstances[1]
	
RETURN AINSTANCE(laInstances,this.Class)

ENDPROC
PROCEDURE ninstances_assign
LPARAMETERS vNewVal

ERROR 1743

ENDPROC
PROCEDURE Error
LPARAMETERS nError, cMethod, nLine
LOCAL lcOnError,lcErrorMsg,lcCodeLineMsg

IF this.lIgnoreErrors OR _vfp.StartMode>0
	RETURN .F.
ENDIF
lcOnError=UPPER(ALLTRIM(ON("ERROR")))
IF NOT EMPTY(lcOnError)
	lcOnError=STRTRAN(STRTRAN(STRTRAN(lcOnError,"ERROR()","nError"), ;
			"PROGRAM()","cMethod"),"LINENO()","nLine")
	&lcOnError
	RETURN
ENDIF
lcErrorMsg=MESSAGE()+CHR(13)+CHR(13)+this.Name+CHR(13)+ ;
		"Error:           "+ALLTRIM(STR(nError))+CHR(13)+ ;
		"Method:       "+LOWER(ALLTRIM(cMethod))
lcCodeLineMsg=MESSAGE(1)
IF BETWEEN(nLine,1,100000) AND NOT lcCodeLineMsg="..."
	lcErrorMsg=lcErrorMsg+CHR(13)+"Line:            "+ALLTRIM(STR(nLine))
	IF NOT EMPTY(lcCodeLineMsg)
		lcErrorMsg=lcErrorMsg+CHR(13)+CHR(13)+lcCodeLineMsg
	ENDIF
ENDIF
WAIT CLEAR
MESSAGEBOX(lcErrorMsg,16,_screen.Caption)
ERROR nError

ENDPROC
PROCEDURE Init
IF this.lSetHost
	this.SetHost
ENDIF
IF this.lAutoSetObjectRefs AND NOT this.SetObjectRefs(this)
	RETURN .F.
ENDIF

ENDPROC
PROCEDURE Destroy
IF this.lRelease
	RETURN .F.
ENDIF
this.lRelease=.T.
this.ReleaseObjRefs
this.oHost=.NULL.

ENDPROC

]PROCEDURE release
LOCAL lcBaseClass

IF this.lRelease
	NODEFAULT
	RETURN .F.
ENDIF
this.lRelease=.T.
lcBaseClass=LOWER(this.BaseClass)
this.oHost=.NULL.
this.ReleaseObjRefs
IF NOT INLIST(lcBaseClass+" ","form ","formset ","toolbar ")
	RELEASE this
ENDIF

ENDPROC
PROCEDURE setobjectref
LPARAMETERS tcName,tvClass,tvClassLibrary
LOCAL lvResult

this.vResult=.T.
DO (this.cSetObjRefProgram) WITH (this),(tcName),(tvClass),(tvClassLibrary)
lvResult=this.vResult
this.vResult=.T.
RETURN lvResult

ENDPROC
PROCEDURE setobjectrefs
LPARAMETERS toObject

RETURN

ENDPROC
PROCEDURE releaseobjrefs
LOCAL lcName,oObject,lnCount

IF this.nObjectRefCount=0
	RETURN
ENDIF
FOR lnCount = this.nObjectRefCount TO 1 STEP -1
	lcName=this.aObjectRefs[lnCount,1]
	IF EMPTY(lcName) OR NOT PEMSTATUS(this,lcName,5) OR TYPE("this."+lcName)#"O"
		LOOP
	ENDIF
	oObject=this.&lcName
	IF ISNULL(oObject)
		LOOP
	ENDIF
	IF TYPE("oObject")=="O" AND NOT ISNULL(oObject) AND PEMSTATUS(oObject,"Release",5)
		oObject.Release
	ENDIF
	IF NOT ISNULL(oObject) AND PEMSTATUS(oObject,"oHost",5)
		oObject.oHost=.NULL.
	ENDIF
	this.&lcName=.NULL.
	oObject=.NULL.
ENDFOR
DIMENSION this.aObjectRefs[1,3]
this.aObjectRefs=""

ENDPROC
PROCEDURE nobjectrefcount_access
LOCAL lnObjectRefCount

lnObjectRefCount=ALEN(this.aObjectRefs,1)
IF lnObjectRefCount=1 AND EMPTY(this.aObjectRefs[1])
	lnObjectRefCount=0
ENDIF
RETURN lnObjectRefCount

ENDPROC
PROCEDURE nobjectrefcount_assign
LPARAMETERS m.vNewVal

ERROR 1743

ENDPROC
PROCEDURE sethost
this.oHost=IIF(TYPE("thisform")=="O",thisform,.NULL.)

ENDPROC
PROCEDURE newinstance
LPARAMETERS tnDataSessionID
LOCAL oNewObject,lnLastDataSessionID

lnLastDataSessionID=SET("DATASESSION")
IF TYPE("tnDataSessionID")=="N" AND tnDataSessionID>=1
	SET DATASESSION TO tnDataSessionID
ENDIF
oNewObject=NEWOBJECT(this.Class,this.ClassLibrary)
SET DATASESSION TO (lnLastDataSessionID)
RETURN oNewObject

ENDPROC
PROCEDURE addtoproject
*-- Dummy code for adding files to project.
RETURN

DO SetObjRf.prg

ENDPROC
PROCEDURE ninstances_access
LOCAL laInstances[1]
	
RETURN AINSTANCE(laInstances,this.Class)

ENDPROC
PROCEDURE ninstances_assign
LPARAMETERS vNewVal

ERROR 1743

ENDPROC
PROCEDURE Error
LPARAMETERS nError, cMethod, nLine
LOCAL lcOnError,lcErrorMsg,lcCodeLineMsg

IF this.lIgnoreErrors OR _vfp.StartMode>0
	RETURN .F.
ENDIF
lcOnError=UPPER(ALLTRIM(ON("ERROR")))
IF NOT EMPTY(lcOnError)
	lcOnError=STRTRAN(STRTRAN(STRTRAN(lcOnError,"ERROR()","nError"), ;
			"PROGRAM()","cMethod"),"LINENO()","nLine")
	&lcOnError
	RETURN
ENDIF
lcErrorMsg=MESSAGE()+CHR(13)+CHR(13)+this.Name+CHR(13)+ ;
		"Error:           "+ALLTRIM(STR(nError))+CHR(13)+ ;
		"Method:       "+LOWER(ALLTRIM(cMethod))
lcCodeLineMsg=MESSAGE(1)
IF BETWEEN(nLine,1,100000) AND NOT lcCodeLineMsg="..."
	lcErrorMsg=lcErrorMsg+CHR(13)+"Line:            "+ALLTRIM(STR(nLine))
	IF NOT EMPTY(lcCodeLineMsg)
		lcErrorMsg=lcErrorMsg+CHR(13)+CHR(13)+lcCodeLineMsg
	ENDIF
ENDIF
WAIT CLEAR
MESSAGEBOX(lcErrorMsg,16,_screen.Caption)
ERROR nError

ENDPROC
PROCEDURE Init
IF this.lSetHost
	this.SetHost
ENDIF
IF this.lAutoSetObjectRefs AND NOT this.SetObjectRefs(this)
	RETURN .F.
ENDIF

ENDPROC
PROCEDURE Destroy
IF this.lRelease
	RETURN .F.
ENDIF
this.lRelease=.T.
this.ReleaseObjRefs
this.oHost=.NULL.

ENDPROC

]PROCEDURE release
LOCAL lcBaseClass

IF this.lRelease
	NODEFAULT
	RETURN .F.
ENDIF
this.lRelease=.T.
lcBaseClass=LOWER(this.BaseClass)
this.oHost=.NULL.
this.ReleaseObjRefs
IF NOT INLIST(lcBaseClass+" ","form ","formset ","toolbar ")
	RELEASE this
ENDIF

ENDPROC
PROCEDURE setobjectref
LPARAMETERS tcName,tvClass,tvClassLibrary
LOCAL lvResult

this.vResult=.T.
DO (this.cSetObjRefProgram) WITH (this),(tcName),(tvClass),(tvClassLibrary)
lvResult=this.vResult
this.vResult=.T.
RETURN lvResult

ENDPROC
PROCEDURE setobjectrefs
LPARAMETERS toObject

RETURN

ENDPROC
PROCEDURE releaseobjrefs
LOCAL lcName,oObject,lnCount

IF this.nObjectRefCount=0
	RETURN
ENDIF
FOR lnCount = this.nObjectRefCount TO 1 STEP -1
	lcName=this.aObjectRefs[lnCount,1]
	IF EMPTY(lcName) OR NOT PEMSTATUS(this,lcName,5) OR TYPE("this."+lcName)#"O"
		LOOP
	ENDIF
	oObject=this.&lcName
	IF ISNULL(oObject)
		LOOP
	ENDIF
	IF TYPE("oObject")=="O" AND NOT ISNULL(oObject) AND PEMSTATUS(oObject,"Release",5)
		oObject.Release
	ENDIF
	IF NOT ISNULL(oObject) AND PEMSTATUS(oObject,"oHost",5)
		oObject.oHost=.NULL.
	ENDIF
	this.&lcName=.NULL.
	oObject=.NULL.
ENDFOR
DIMENSION this.aObjectRefs[1,3]
this.aObjectRefs=""

ENDPROC
PROCEDURE nobjectrefcount_access
LOCAL lnObjectRefCount

lnObjectRefCount=ALEN(this.aObjectRefs,1)
IF lnObjectRefCount=1 AND EMPTY(this.aObjectRefs[1])
	lnObjectRefCount=0
ENDIF
RETURN lnObjectRefCount

ENDPROC
PROCEDURE nobjectrefcount_assign
LPARAMETERS m.vNewVal

ERROR 1743

ENDPROC
PROCEDURE sethost
this.oHost=IIF(TYPE("thisform")=="O",thisform,.NULL.)

ENDPROC
PROCEDURE newinstance
LPARAMETERS tnDataSessionID
LOCAL oNewObject,lnLastDataSessionID

lnLastDataSessionID=SET("DATASESSION")
IF TYPE("tnDataSessionID")=="N" AND tnDataSessionID>=1
	SET DATASESSION TO tnDataSessionID
ENDIF
oNewObject=NEWOBJECT(this.Class,this.ClassLibrary)
SET DATASESSION TO (lnLastDataSessionID)
RETURN oNewObject

ENDPROC
PROCEDURE addtoproject
*-- Dummy code for adding files to project.
RETURN

DO SetObjRf.prg

ENDPROC
PROCEDURE ninstances_access
LOCAL laInstances[1]
	
RETURN AINSTANCE(laInstances,this.Class)

ENDPROC
PROCEDURE ninstances_assign
LPARAMETERS vNewVal

ERROR 1743

ENDPROC
PROCEDURE Error
LPARAMETERS nError, cMethod, nLine
LOCAL lcOnError,lcErrorMsg,lcCodeLineMsg

IF this.lIgnoreErrors OR _vfp.StartMode>0
	RETURN .F.
ENDIF
lcOnError=UPPER(ALLTRIM(ON("ERROR")))
IF NOT EMPTY(lcOnError)
	lcOnError=STRTRAN(STRTRAN(STRTRAN(lcOnError,"ERROR()","nError"), ;
			"PROGRAM()","cMethod"),"LINENO()","nLine")
	&lcOnError
	RETURN
ENDIF
lcErrorMsg=MESSAGE()+CHR(13)+CHR(13)+this.Name+CHR(13)+ ;
		"Error:           "+ALLTRIM(STR(nError))+CHR(13)+ ;
		"Method:       "+LOWER(ALLTRIM(cMethod))
lcCodeLineMsg=MESSAGE(1)
IF BETWEEN(nLine,1,100000) AND NOT lcCodeLineMsg="..."
	lcErrorMsg=lcErrorMsg+CHR(13)+"Line:            "+ALLTRIM(STR(nLine))
	IF NOT EMPTY(lcCodeLineMsg)
		lcErrorMsg=lcErrorMsg+CHR(13)+CHR(13)+lcCodeLineMsg
	ENDIF
ENDIF
WAIT CLEAR
MESSAGEBOX(lcErrorMsg,16,_screen.Caption)
ERROR nError

ENDPROC
PROCEDURE Init
IF this.lSetHost
	this.SetHost
ENDIF
IF this.lAutoSetObjectRefs AND NOT this.SetObjectRefs(this)
	RETURN .F.
ENDIF

ENDPROC
PROCEDURE Destroy
IF this.lRelease
	RETURN .F.
ENDIF
this.lRelease=.T.
this.ReleaseObjRefs
this.oHost=.NULL.

ENDPROC
icversion Version property.
builder Bulder property.
builderx BuilderX property.
lautobuilder Specifies if custom FFC builder is automatically launched when instance is added to a container in design mode, even if the control pallette Builder Lock button is off.
nobjectrefcount Returns the number of items in the object reference array property aObjectRefs.
ohost Object reference to host object (generally THISFORM), which is automatically set on Init if lSetHost is .T.
lautosetobjectrefs Specifiies if the SetObjectRefs method is automatically called from the Init method.
vresult Variant result property for internal usage when calling programs in PRGs and a return file is required.
lrelease Indicates the object's Release method has been executed and the object is in the process of being released from memory.
csetobjrefprogram Program to be called when when setting an object references via the SetObjectRef method.
lignoreerrors Specifies if the default FFC error handler is executed when an error occurs.
lsethost Specifies if the SetHost method is automatically called from the Init method to set the oHost property to THISFORM.
ninstances Number of instances.
^aobjectrefs[1,3] Array of object references properties.
*release Releases object from memory.
*setobjectref Set object reference to specific property.
*setobjectrefs Place holder method for listing SetObjectRef method calls.
*releaseobjrefs Releases all object references of aObjectRefs array.
*nobjectrefcount_access Access method for nObjectRefCount property.
*nobjectrefcount_assign Assign method for nObjectRefCount property.
*sethost Set oHost property to form reference object.
*newinstance Returns new instance of object.
*addtoproject Dummy code for adding files to project.
*ninstances_access Access method for nInstances property.
*ninstances_assign Assign method for nInstances property.

]PROCEDURE release
LOCAL lcBaseClass

IF this.lRelease
	NODEFAULT
	RETURN .F.
ENDIF
this.lRelease=.T.
lcBaseClass=LOWER(this.BaseClass)
this.oHost=.NULL.
this.ReleaseObjRefs
IF NOT INLIST(lcBaseClass+" ","form ","formset ","toolbar ")
	RELEASE this
ENDIF

ENDPROC
PROCEDURE setobjectref
LPARAMETERS tcName,tvClass,tvClassLibrary
LOCAL lvResult

this.vResult=.T.
DO (this.cSetObjRefProgram) WITH (this),(tcName),(tvClass),(tvClassLibrary)
lvResult=this.vResult
this.vResult=.T.
RETURN lvResult

ENDPROC
PROCEDURE setobjectrefs
LPARAMETERS toObject

RETURN

ENDPROC
PROCEDURE releaseobjrefs
LOCAL lcName,oObject,lnCount

IF this.nObjectRefCount=0
	RETURN
ENDIF
FOR lnCount = this.nObjectRefCount TO 1 STEP -1
	lcName=this.aObjectRefs[lnCount,1]
	IF EMPTY(lcName) OR NOT PEMSTATUS(this,lcName,5) OR TYPE("this."+lcName)#"O"
		LOOP
	ENDIF
	oObject=this.&lcName
	IF ISNULL(oObject)
		LOOP
	ENDIF
	IF TYPE("oObject")=="O" AND NOT ISNULL(oObject) AND PEMSTATUS(oObject,"Release",5)
		oObject.Release
	ENDIF
	IF NOT ISNULL(oObject) AND PEMSTATUS(oObject,"oHost",5)
		oObject.oHost=.NULL.
	ENDIF
	this.&lcName=.NULL.
	oObject=.NULL.
ENDFOR
DIMENSION this.aObjectRefs[1,3]
this.aObjectRefs=""

ENDPROC
PROCEDURE nobjectrefcount_access
LOCAL lnObjectRefCount

lnObjectRefCount=ALEN(this.aObjectRefs,1)
IF lnObjectRefCount=1 AND EMPTY(this.aObjectRefs[1])
	lnObjectRefCount=0
ENDIF
RETURN lnObjectRefCount

ENDPROC
PROCEDURE nobjectrefcount_assign
LPARAMETERS m.vNewVal

ERROR 1743

ENDPROC
PROCEDURE sethost
this.oHost=IIF(TYPE("thisform")=="O",thisform,.NULL.)

ENDPROC
PROCEDURE newinstance
LPARAMETERS tnDataSessionID
LOCAL oNewObject,lnLastDataSessionID

lnLastDataSessionID=SET("DATASESSION")
IF TYPE("tnDataSessionID")=="N" AND tnDataSessionID>=1
	SET DATASESSION TO tnDataSessionID
ENDIF
oNewObject=NEWOBJECT(this.Class,this.ClassLibrary)
SET DATASESSION TO (lnLastDataSessionID)
RETURN oNewObject

ENDPROC
PROCEDURE addtoproject
*-- Dummy code for adding files to project.
RETURN

DO SetObjRf.prg

ENDPROC
PROCEDURE ninstances_access
LOCAL laInstances[1]
	
RETURN AINSTANCE(laInstances,this.Class)

ENDPROC
PROCEDURE ninstances_assign
LPARAMETERS vNewVal

ERROR 1743

ENDPROC
PROCEDURE Error
LPARAMETERS nError, cMethod, nLine
LOCAL lcOnError,lcErrorMsg,lcCodeLineMsg

IF this.lIgnoreErrors OR _vfp.StartMode>0
	RETURN .F.
ENDIF
lcOnError=UPPER(ALLTRIM(ON("ERROR")))
IF NOT EMPTY(lcOnError)
	lcOnError=STRTRAN(STRTRAN(STRTRAN(lcOnError,"ERROR()","nError"), ;
			"PROGRAM()","cMethod"),"LINENO()","nLine")
	&lcOnError
	RETURN
ENDIF
lcErrorMsg=MESSAGE()+CHR(13)+CHR(13)+this.Name+CHR(13)+ ;
		"Error:           "+ALLTRIM(STR(nError))+CHR(13)+ ;
		"Method:       "+LOWER(ALLTRIM(cMethod))
lcCodeLineMsg=MESSAGE(1)
IF BETWEEN(nLine,1,100000) AND NOT lcCodeLineMsg="..."
	lcErrorMsg=lcErrorMsg+CHR(13)+"Line:            "+ALLTRIM(STR(nLine))
	IF NOT EMPTY(lcCodeLineMsg)
		lcErrorMsg=lcErrorMsg+CHR(13)+CHR(13)+lcCodeLineMsg
	ENDIF
ENDIF
WAIT CLEAR
MESSAGEBOX(lcErrorMsg,16,_screen.Caption)
ERROR nError

ENDPROC
PROCEDURE Init
IF this.lSetHost
	this.SetHost
ENDIF
IF this.lAutoSetObjectRefs AND NOT this.SetObjectRefs(this)
	RETURN .F.
ENDIF

ENDPROC
PROCEDURE Destroy
IF this.lRelease
	RETURN .F.
ENDIF
this.lRelease=.T.
this.ReleaseObjRefs
this.oHost=.NULL.

ENDPROC
icversion Version property.
builder Bulder property.
builderx BuilderX property.
lautobuilder Specifies if custom FFC builder is automatically launched when instance is added to a container in design mode, even if the control pallette Builder Lock button is off.
nobjectrefcount Returns the number of items in the object reference array property aObjectRefs.
ohost Object reference to host object (generally THISFORM), which is automatically set on Init if lSetHost is .T.
lautosetobjectrefs Specifiies if the SetObjectRefs method is automatically called from the Init method.
vresult Variant result property for internal usage when calling programs in PRGs and a return file is required.
lrelease Indicates the object's Release method has been executed and the object is in the process of being released from memory.
csetobjrefprogram Program to be called when when setting an object references via the SetObjectRef method.
lignoreerrors Specifies if the default FFC error handler is executed when an error occurs.
lsethost Specifies if the SetHost method is automatically called from the Init method to set the oHost property to THISFORM.
ninstances Number of instances.
^aobjectrefs[1,3] Array of object references properties.
*release Releases object from memory.
*setobjectref Set object reference to specific property.
*setobjectrefs Place holder method for listing SetObjectRef method calls.
*releaseobjrefs Releases all object references of aObjectRefs array.
*nobjectrefcount_access Access method for nObjectRefCount property.
*nobjectrefcount_assign Assign method for nObjectRefCount property.
*sethost Set oHost property to form reference object.
*newinstance Returns new instance of object.
*addtoproject Dummy code for adding files to project.
*ninstances_access Access method for nInstances property.
*ninstances_assign Assign method for nInstances property.

]PROCEDURE release
LOCAL lcBaseClass

IF this.lRelease
	NODEFAULT
	RETURN .F.
ENDIF
this.lRelease=.T.
lcBaseClass=LOWER(this.BaseClass)
this.oHost=.NULL.
this.ReleaseObjRefs
IF NOT INLIST(lcBaseClass+" ","form ","formset ","toolbar ")
	RELEASE this
ENDIF

ENDPROC
PROCEDURE setobjectref
LPARAMETERS tcName,tvClass,tvClassLibrary
LOCAL lvResult

this.vResult=.T.
DO (this.cSetObjRefProgram) WITH (this),(tcName),(tvClass),(tvClassLibrary)
lvResult=this.vResult
this.vResult=.T.
RETURN lvResult

ENDPROC
PROCEDURE setobjectrefs
LPARAMETERS toObject

RETURN

ENDPROC
PROCEDURE releaseobjrefs
LOCAL lcName,oObject,lnCount

IF this.nObjectRefCount=0
	RETURN
ENDIF
FOR lnCount = this.nObjectRefCount TO 1 STEP -1
	lcName=this.aObjectRefs[lnCount,1]
	IF EMPTY(lcName) OR NOT PEMSTATUS(this,lcName,5) OR TYPE("this."+lcName)#"O"
		LOOP
	ENDIF
	oObject=this.&lcName
	IF ISNULL(oObject)
		LOOP
	ENDIF
	IF TYPE("oObject")=="O" AND NOT ISNULL(oObject) AND PEMSTATUS(oObject,"Release",5)
		oObject.Release
	ENDIF
	IF NOT ISNULL(oObject) AND PEMSTATUS(oObject,"oHost",5)
		oObject.oHost=.NULL.
	ENDIF
	this.&lcName=.NULL.
	oObject=.NULL.
ENDFOR
DIMENSION this.aObjectRefs[1,3]
this.aObjectRefs=""

ENDPROC
PROCEDURE nobjectrefcount_access
LOCAL lnObjectRefCount

lnObjectRefCount=ALEN(this.aObjectRefs,1)
IF lnObjectRefCount=1 AND EMPTY(this.aObjectRefs[1])
	lnObjectRefCount=0
ENDIF
RETURN lnObjectRefCount

ENDPROC
PROCEDURE nobjectrefcount_assign
LPARAMETERS m.vNewVal

ERROR 1743

ENDPROC
PROCEDURE sethost
this.oHost=IIF(TYPE("thisform")=="O",thisform,.NULL.)

ENDPROC
PROCEDURE newinstance
LPARAMETERS tnDataSessionID
LOCAL oNewObject,lnLastDataSessionID

lnLastDataSessionID=SET("DATASESSION")
IF TYPE("tnDataSessionID")=="N" AND tnDataSessionID>=1
	SET DATASESSION TO tnDataSessionID
ENDIF
oNewObject=NEWOBJECT(this.Class,this.ClassLibrary)
SET DATASESSION TO (lnLastDataSessionID)
RETURN oNewObject

ENDPROC
PROCEDURE addtoproject
*-- Dummy code for adding files to project.
RETURN

DO SetObjRf.prg

ENDPROC
PROCEDURE ninstances_access
LOCAL laInstances[1]
	
RETURN AINSTANCE(laInstances,this.Class)

ENDPROC
PROCEDURE ninstances_assign
LPARAMETERS vNewVal

ERROR 1743

ENDPROC
PROCEDURE Error
LPARAMETERS nError, cMethod, nLine
LOCAL lcOnError,lcErrorMsg,lcCodeLineMsg

IF this.lIgnoreErrors OR _vfp.StartMode>0
	RETURN .F.
ENDIF
lcOnError=UPPER(ALLTRIM(ON("ERROR")))
IF NOT EMPTY(lcOnError)
	lcOnError=STRTRAN(STRTRAN(STRTRAN(lcOnError,"ERROR()","nError"), ;
			"PROGRAM()","cMethod"),"LINENO()","nLine")
	&lcOnError
	RETURN
ENDIF
lcErrorMsg=MESSAGE()+CHR(13)+CHR(13)+this.Name+CHR(13)+ ;
		"Error:           "+ALLTRIM(STR(nError))+CHR(13)+ ;
		"Method:       "+LOWER(ALLTRIM(cMethod))
lcCodeLineMsg=MESSAGE(1)
IF BETWEEN(nLine,1,100000) AND NOT lcCodeLineMsg="..."
	lcErrorMsg=lcErrorMsg+CHR(13)+"Line:            "+ALLTRIM(STR(nLine))
	IF NOT EMPTY(lcCodeLineMsg)
		lcErrorMsg=lcErrorMsg+CHR(13)+CHR(13)+lcCodeLineMsg
	ENDIF
ENDIF
WAIT CLEAR
MESSAGEBOX(lcErrorMsg,16,_screen.Caption)
ERROR nError

ENDPROC
PROCEDURE Init
IF this.lSetHost
	this.SetHost
ENDIF
IF this.lAutoSetObjectRefs AND NOT this.SetObjectRefs(this)
	RETURN .F.
ENDIF

ENDPROC
PROCEDURE Destroy
IF this.lRelease
	RETURN .F.
ENDIF
this.lRelease=.T.
this.ReleaseObjRefs
this.oHost=.NULL.

ENDPROC
icversion Version property.
builder Bulder property.
builderx BuilderX property.
lautobuilder Specifies if custom FFC builder is automatically launched when instance is added to a container in design mode, even if the control pallette Builder Lock button is off.
nobjectrefcount Returns the number of items in the object reference array property aObjectRefs.
ohost Object reference to host object (generally THISFORM), which is automatically set on Init if lSetHost is .T.
lautosetobjectrefs Specifiies if the SetObjectRefs method is automatically called from the Init method.
vresult Variant result property for internal usage when calling programs in PRGs and a return file is required.
lrelease Indicates the object's Release method has been executed and the object is in the process of being released from memory.
csetobjrefprogram Program to be called when when setting an object references via the SetObjectRef method.
lignoreerrors Specifies if the default FFC error handler is executed when an error occurs.
lsethost Specifies if the SetHost method is automatically called from the Init method to set the oHost property to THISFORM.
ninstances Number of instances.
^aobjectrefs[1,3] Array of object references properties.
*release Releases object from memory.
*setobjectref Set object reference to specific property.
*setobjectrefs Place holder method for listing SetObjectRef method calls.
*releaseobjrefs Releases all object references of aObjectRefs array.
*nobjectrefcount_access Access method for nObjectRefCount property.
*nobjectrefcount_assign Assign method for nObjectRefCount property.
*sethost Set oHost property to form reference object.
*newinstance Returns new instance of object.
*addtoproject Dummy code for adding files to project.
*ninstances_access Access method for nInstances property.
*ninstances_assign Assign method for nInstances property.

]PROCEDURE release
LOCAL lcBaseClass

IF this.lRelease
	NODEFAULT
	RETURN .F.
ENDIF
this.lRelease=.T.
lcBaseClass=LOWER(this.BaseClass)
this.oHost=.NULL.
this.ReleaseObjRefs
IF NOT INLIST(lcBaseClass+" ","form ","formset ","toolbar ")
	RELEASE this
ENDIF

ENDPROC
PROCEDURE setobjectref
LPARAMETERS tcName,tvClass,tvClassLibrary
LOCAL lvResult

this.vResult=.T.
DO (this.cSetObjRefProgram) WITH (this),(tcName),(tvClass),(tvClassLibrary)
lvResult=this.vResult
this.vResult=.T.
RETURN lvResult

ENDPROC
PROCEDURE setobjectrefs
LPARAMETERS toObject

RETURN

ENDPROC
PROCEDURE releaseobjrefs
LOCAL lcName,oObject,lnCount

IF this.nObjectRefCount=0
	RETURN
ENDIF
FOR lnCount = this.nObjectRefCount TO 1 STEP -1
	lcName=this.aObjectRefs[lnCount,1]
	IF EMPTY(lcName) OR NOT PEMSTATUS(this,lcName,5) OR TYPE("this."+lcName)#"O"
		LOOP
	ENDIF
	oObject=this.&lcName
	IF ISNULL(oObject)
		LOOP
	ENDIF
	IF TYPE("oObject")=="O" AND NOT ISNULL(oObject) AND PEMSTATUS(oObject,"Release",5)
		oObject.Release
	ENDIF
	IF NOT ISNULL(oObject) AND PEMSTATUS(oObject,"oHost",5)
		oObject.oHost=.NULL.
	ENDIF
	this.&lcName=.NULL.
	oObject=.NULL.
ENDFOR
DIMENSION this.aObjectRefs[1,3]
this.aObjectRefs=""

ENDPROC
PROCEDURE nobjectrefcount_access
LOCAL lnObjectRefCount

lnObjectRefCount=ALEN(this.aObjectRefs,1)
IF lnObjectRefCount=1 AND EMPTY(this.aObjectRefs[1])
	lnObjectRefCount=0
ENDIF
RETURN lnObjectRefCount

ENDPROC
PROCEDURE nobjectrefcount_assign
LPARAMETERS m.vNewVal

ERROR 1743

ENDPROC
PROCEDURE sethost
this.oHost=IIF(TYPE("thisform")=="O",thisform,.NULL.)

ENDPROC
PROCEDURE newinstance
LPARAMETERS tnDataSessionID
LOCAL oNewObject,lnLastDataSessionID

lnLastDataSessionID=SET("DATASESSION")
IF TYPE("tnDataSessionID")=="N" AND tnDataSessionID>=1
	SET DATASESSION TO tnDataSessionID
ENDIF
oNewObject=NEWOBJECT(this.Class,this.ClassLibrary)
SET DATASESSION TO (lnLastDataSessionID)
RETURN oNewObject

ENDPROC
PROCEDURE addtoproject
*-- Dummy code for adding files to project.
RETURN

DO SetObjRf.prg

ENDPROC
PROCEDURE ninstances_access
LOCAL laInstances[1]
	
RETURN AINSTANCE(laInstances,this.Class)

ENDPROC
PROCEDURE ninstances_assign
LPARAMETERS vNewVal

ERROR 1743

ENDPROC
PROCEDURE Error
LPARAMETERS nError, cMethod, nLine
LOCAL lcOnError,lcErrorMsg,lcCodeLineMsg

IF this.lIgnoreErrors OR _vfp.StartMode>0
	RETURN .F.
ENDIF
lcOnError=UPPER(ALLTRIM(ON("ERROR")))
IF NOT EMPTY(lcOnError)
	lcOnError=STRTRAN(STRTRAN(STRTRAN(lcOnError,"ERROR()","nError"), ;
			"PROGRAM()","cMethod"),"LINENO()","nLine")
	&lcOnError
	RETURN
ENDIF
lcErrorMsg=MESSAGE()+CHR(13)+CHR(13)+this.Name+CHR(13)+ ;
		"Error:           "+ALLTRIM(STR(nError))+CHR(13)+ ;
		"Method:       "+LOWER(ALLTRIM(cMethod))
lcCodeLineMsg=MESSAGE(1)
IF BETWEEN(nLine,1,100000) AND NOT lcCodeLineMsg="..."
	lcErrorMsg=lcErrorMsg+CHR(13)+"Line:            "+ALLTRIM(STR(nLine))
	IF NOT EMPTY(lcCodeLineMsg)
		lcErrorMsg=lcErrorMsg+CHR(13)+CHR(13)+lcCodeLineMsg
	ENDIF
ENDIF
WAIT CLEAR
MESSAGEBOX(lcErrorMsg,16,_screen.Caption)
ERROR nError

ENDPROC
PROCEDURE Init
IF this.lSetHost
	this.SetHost
ENDIF
IF this.lAutoSetObjectRefs AND NOT this.SetObjectRefs(this)
	RETURN .F.
ENDIF

ENDPROC
PROCEDURE Destroy
IF this.lRelease
	RETURN .F.
ENDIF
this.lRelease=.T.
this.ReleaseObjRefs
this.oHost=.NULL.

ENDPROC
icversion Version property.
builder Bulder property.
builderx BuilderX property.
lautobuilder Specifies if custom FFC builder is automatically launched when instance is added to a container in design mode, even if the control pallette Builder Lock button is off.
nobjectrefcount Returns the number of items in the object reference array property aObjectRefs.
ohost Object reference to host object (generally THISFORM), which is automatically set on Init if lSetHost is .T.
lautosetobjectrefs Specifiies if the SetObjectRefs method is automatically called from the Init method.
vresult Variant result property for internal usage when calling programs in PRGs and a return file is required.
lrelease Indicates the object's Release method has been executed and the object is in the process of being released from memory.
csetobjrefprogram Program to be called when when setting an object references via the SetObjectRef method.
lignoreerrors Specifies if the default FFC error handler is executed when an error occurs.
lsethost Specifies if the SetHost method is automatically called from the Init method to set the oHost property to THISFORM.
ninstances Number of instances.
^aobjectrefs[1,3] Array of object references properties.
*release Releases object from memory.
*setobjectref Set object reference to specific property.
*setobjectrefs Place holder method for listing SetObjectRef method calls.
*releaseobjrefs Releases all object references of aObjectRefs array.
*nobjectrefcount_access Access method for nObjectRefCount property.
*nobjectrefcount_assign Assign method for nObjectRefCount property.
*sethost Set oHost property to form reference object.
*newinstance Returns new instance of object.
*addtoproject Dummy code for adding files to project.
*ninstances_access Access method for nInstances property.
*ninstances_assign Assign method for nInstances property.

]PROCEDURE release
LOCAL lcBaseClass

IF this.lRelease
	NODEFAULT
	RETURN .F.
ENDIF
this.lRelease=.T.
lcBaseClass=LOWER(this.BaseClass)
this.oHost=.NULL.
this.ReleaseObjRefs
IF NOT INLIST(lcBaseClass+" ","form ","formset ","toolbar ")
	RELEASE this
ENDIF

ENDPROC
PROCEDURE setobjectref
LPARAMETERS tcName,tvClass,tvClassLibrary
LOCAL lvResult

this.vResult=.T.
DO (this.cSetObjRefProgram) WITH (this),(tcName),(tvClass),(tvClassLibrary)
lvResult=this.vResult
this.vResult=.T.
RETURN lvResult

ENDPROC
PROCEDURE setobjectrefs
LPARAMETERS toObject

RETURN

ENDPROC
PROCEDURE releaseobjrefs
LOCAL lcName,oObject,lnCount

IF this.nObjectRefCount=0
	RETURN
ENDIF
FOR lnCount = this.nObjectRefCount TO 1 STEP -1
	lcName=this.aObjectRefs[lnCount,1]
	IF EMPTY(lcName) OR NOT PEMSTATUS(this,lcName,5) OR TYPE("this."+lcName)#"O"
		LOOP
	ENDIF
	oObject=this.&lcName
	IF ISNULL(oObject)
		LOOP
	ENDIF
	IF TYPE("oObject")=="O" AND NOT ISNULL(oObject) AND PEMSTATUS(oObject,"Release",5)
		oObject.Release
	ENDIF
	IF NOT ISNULL(oObject) AND PEMSTATUS(oObject,"oHost",5)
		oObject.oHost=.NULL.
	ENDIF
	this.&lcName=.NULL.
	oObject=.NULL.
ENDFOR
DIMENSION this.aObjectRefs[1,3]
this.aObjectRefs=""

ENDPROC
PROCEDURE nobjectrefcount_access
LOCAL lnObjectRefCount

lnObjectRefCount=ALEN(this.aObjectRefs,1)
IF lnObjectRefCount=1 AND EMPTY(this.aObjectRefs[1])
	lnObjectRefCount=0
ENDIF
RETURN lnObjectRefCount

ENDPROC
PROCEDURE nobjectrefcount_assign
LPARAMETERS m.vNewVal

ERROR 1743

ENDPROC
PROCEDURE sethost
this.oHost=IIF(TYPE("thisform")=="O",thisform,.NULL.)

ENDPROC
PROCEDURE newinstance
LPARAMETERS tnDataSessionID
LOCAL oNewObject,lnLastDataSessionID

lnLastDataSessionID=SET("DATASESSION")
IF TYPE("tnDataSessionID")=="N" AND tnDataSessionID>=1
	SET DATASESSION TO tnDataSessionID
ENDIF
oNewObject=NEWOBJECT(this.Class,this.ClassLibrary)
SET DATASESSION TO (lnLastDataSessionID)
RETURN oNewObject

ENDPROC
PROCEDURE addtoproject
*-- Dummy code for adding files to project.
RETURN

DO SetObjRf.prg

ENDPROC
PROCEDURE ninstances_access
LOCAL laInstances[1]
	
RETURN AINSTANCE(laInstances,this.Class)

ENDPROC
PROCEDURE ninstances_assign
LPARAMETERS vNewVal

ERROR 1743

ENDPROC
PROCEDURE Error
LPARAMETERS nError, cMethod, nLine
LOCAL lcOnError,lcErrorMsg,lcCodeLineMsg

IF this.lIgnoreErrors OR _vfp.StartMode>0
	RETURN .F.
ENDIF
lcOnError=UPPER(ALLTRIM(ON("ERROR")))
IF NOT EMPTY(lcOnError)
	lcOnError=STRTRAN(STRTRAN(STRTRAN(lcOnError,"ERROR()","nError"), ;
			"PROGRAM()","cMethod"),"LINENO()","nLine")
	&lcOnError
	RETURN
ENDIF
lcErrorMsg=MESSAGE()+CHR(13)+CHR(13)+this.Name+CHR(13)+ ;
		"Error:           "+ALLTRIM(STR(nError))+CHR(13)+ ;
		"Method:       "+LOWER(ALLTRIM(cMethod))
lcCodeLineMsg=MESSAGE(1)
IF BETWEEN(nLine,1,100000) AND NOT lcCodeLineMsg="..."
	lcErrorMsg=lcErrorMsg+CHR(13)+"Line:            "+ALLTRIM(STR(nLine))
	IF NOT EMPTY(lcCodeLineMsg)
		lcErrorMsg=lcErrorMsg+CHR(13)+CHR(13)+lcCodeLineMsg
	ENDIF
ENDIF
WAIT CLEAR
MESSAGEBOX(lcErrorMsg,16,_screen.Caption)
ERROR nError

ENDPROC
PROCEDURE Init
IF this.lSetHost
	this.SetHost
ENDIF
IF this.lAutoSetObjectRefs AND NOT this.SetObjectRefs(this)
	RETURN .F.
ENDIF

ENDPROC
PROCEDURE Destroy
IF this.lRelease
	RETURN .F.
ENDIF
this.lRelease=.T.
this.ReleaseObjRefs
this.oHost=.NULL.

ENDPROC
icversion Version property.
builder Bulder property.
builderx BuilderX property.
lautobuilder Specifies if custom FFC builder is automatically launched when instance is added to a container in design mode, even if the control pallette Builder Lock button is off.
nobjectrefcount Returns the number of items in the object reference array property aObjectRefs.
ohost Object reference to host object (generally THISFORM), which is automatically set on Init if lSetHost is .T.
lautosetobjectrefs Specifiies if the SetObjectRefs method is automatically called from the Init method.
vresult Variant result property for internal usage when calling programs in PRGs and a return file is required.
lrelease Indicates the object's Release method has been executed and the object is in the process of being released from memory.
csetobjrefprogram Program to be called when when setting an object references via the SetObjectRef method.
lignoreerrors Specifies if the default FFC error handler is executed when an error occurs.
lsethost Specifies if the SetHost method is automatically called from the Init method to set the oHost property to THISFORM.
ninstances Number of instances.
^aobjectrefs[1,3] Array of object references properties.
*release Releases object from memory.
*setobjectref Set object reference to specific property.
*setobjectrefs Place holder method for listing SetObjectRef method calls.
*releaseobjrefs Releases all object references of aObjectRefs array.
*nobjectrefcount_access Access method for nObjectRefCount property.
*nobjectrefcount_assign Assign method for nObjectRefCount property.
*sethost Set oHost property to form reference object.
*newinstance Returns new instance of object.
*addtoproject Dummy code for adding files to project.
*ninstances_access Access method for nInstances property.
*ninstances_assign Assign method for nInstances property.

]PROCEDURE release
LOCAL lcBaseClass

IF this.lRelease
	NODEFAULT
	RETURN .F.
ENDIF
this.lRelease=.T.
lcBaseClass=LOWER(this.BaseClass)
this.oHost=.NULL.
this.ReleaseObjRefs
IF NOT INLIST(lcBaseClass+" ","form ","formset ","toolbar ")
	RELEASE this
ENDIF

ENDPROC
PROCEDURE setobjectref
LPARAMETERS tcName,tvClass,tvClassLibrary
LOCAL lvResult

this.vResult=.T.
DO (this.cSetObjRefProgram) WITH (this),(tcName),(tvClass),(tvClassLibrary)
lvResult=this.vResult
this.vResult=.T.
RETURN lvResult

ENDPROC
PROCEDURE setobjectrefs
LPARAMETERS toObject

RETURN

ENDPROC
PROCEDURE releaseobjrefs
LOCAL lcName,oObject,lnCount

IF this.nObjectRefCount=0
	RETURN
ENDIF
FOR lnCount = this.nObjectRefCount TO 1 STEP -1
	lcName=this.aObjectRefs[lnCount,1]
	IF EMPTY(lcName) OR NOT PEMSTATUS(this,lcName,5) OR TYPE("this."+lcName)#"O"
		LOOP
	ENDIF
	oObject=this.&lcName
	IF ISNULL(oObject)
		LOOP
	ENDIF
	IF TYPE("oObject")=="O" AND NOT ISNULL(oObject) AND PEMSTATUS(oObject,"Release",5)
		oObject.Release
	ENDIF
	IF NOT ISNULL(oObject) AND PEMSTATUS(oObject,"oHost",5)
		oObject.oHost=.NULL.
	ENDIF
	this.&lcName=.NULL.
	oObject=.NULL.
ENDFOR
DIMENSION this.aObjectRefs[1,3]
this.aObjectRefs=""

ENDPROC
PROCEDURE nobjectrefcount_access
LOCAL lnObjectRefCount

lnObjectRefCount=ALEN(this.aObjectRefs,1)
IF lnObjectRefCount=1 AND EMPTY(this.aObjectRefs[1])
	lnObjectRefCount=0
ENDIF
RETURN lnObjectRefCount

ENDPROC
PROCEDURE nobjectrefcount_assign
LPARAMETERS m.vNewVal

ERROR 1743

ENDPROC
PROCEDURE sethost
this.oHost=IIF(TYPE("thisform")=="O",thisform,.NULL.)

ENDPROC
PROCEDURE newinstance
LPARAMETERS tnDataSessionID
LOCAL oNewObject,lnLastDataSessionID

lnLastDataSessionID=SET("DATASESSION")
IF TYPE("tnDataSessionID")=="N" AND tnDataSessionID>=1
	SET DATASESSION TO tnDataSessionID
ENDIF
oNewObject=NEWOBJECT(this.Class,this.ClassLibrary)
SET DATASESSION TO (lnLastDataSessionID)
RETURN oNewObject

ENDPROC
PROCEDURE addtoproject
*-- Dummy code for adding files to project.
RETURN

DO SetObjRf.prg

ENDPROC
PROCEDURE ninstances_access
LOCAL laInstances[1]
	
RETURN AINSTANCE(laInstances,this.Class)

ENDPROC
PROCEDURE ninstances_assign
LPARAMETERS vNewVal

ERROR 1743

ENDPROC
PROCEDURE Error
LPARAMETERS nError, cMethod, nLine
LOCAL lcOnError,lcErrorMsg,lcCodeLineMsg

IF this.lIgnoreErrors OR _vfp.StartMode>0
	RETURN .F.
ENDIF
lcOnError=UPPER(ALLTRIM(ON("ERROR")))
IF NOT EMPTY(lcOnError)
	lcOnError=STRTRAN(STRTRAN(STRTRAN(lcOnError,"ERROR()","nError"), ;
			"PROGRAM()","cMethod"),"LINENO()","nLine")
	&lcOnError
	RETURN
ENDIF
lcErrorMsg=MESSAGE()+CHR(13)+CHR(13)+this.Name+CHR(13)+ ;
		"Error:           "+ALLTRIM(STR(nError))+CHR(13)+ ;
		"Method:       "+LOWER(ALLTRIM(cMethod))
lcCodeLineMsg=MESSAGE(1)
IF BETWEEN(nLine,1,100000) AND NOT lcCodeLineMsg="..."
	lcErrorMsg=lcErrorMsg+CHR(13)+"Line:            "+ALLTRIM(STR(nLine))
	IF NOT EMPTY(lcCodeLineMsg)
		lcErrorMsg=lcErrorMsg+CHR(13)+CHR(13)+lcCodeLineMsg
	ENDIF
ENDIF
WAIT CLEAR
MESSAGEBOX(lcErrorMsg,16,_screen.Caption)
ERROR nError

ENDPROC
PROCEDURE Init
IF this.lSetHost
	this.SetHost
ENDIF
IF this.lAutoSetObjectRefs AND NOT this.SetObjectRefs(this)
	RETURN .F.
ENDIF

ENDPROC
PROCEDURE Destroy
IF this.lRelease
	RETURN .F.
ENDIF
this.lRelease=.T.
this.ReleaseObjRefs
this.oHost=.NULL.

ENDPROC
icversion Version property.
builder Bulder property.
builderx BuilderX property.
lautobuilder Specifies if custom FFC builder is automatically launched when instance is added to a container in design mode, even if the control pallette Builder Lock button is off.
nobjectrefcount Returns the number of items in the object reference array property aObjectRefs.
ohost Object reference to host object (generally THISFORM), which is automatically set on Init if lSetHost is .T.
lautosetobjectrefs Specifiies if the SetObjectRefs method is automatically called from the Init method.
vresult Variant result property for internal usage when calling programs in PRGs and a return file is required.
lrelease Indicates the object's Release method has been executed and the object is in the process of being released from memory.
csetobjrefprogram Program to be called when when setting an object references via the SetObjectRef method.
lignoreerrors Specifies if the default FFC error handler is executed when an error occurs.
lsethost Specifies if the SetHost method is automatically called from the Init method to set the oHost property to THISFORM.
ninstances Number of instances.
^aobjectrefs[1,3] Array of object references properties.
*release Releases object from memory.
*setobjectref Set object reference to specific property.
*setobjectrefs Place holder method for listing SetObjectRef method calls.
*releaseobjrefs Releases all object references of aObjectRefs array.
*nobjectrefcount_access Access method for nObjectRefCount property.
*nobjectrefcount_assign Assign method for nObjectRefCount property.
*sethost Set oHost property to form reference object.
*newinstance Returns new instance of object.
*addtoproject Dummy code for adding files to project.
*ninstances_access Access method for nInstances property.
*ninstances_assign Assign method for nInstances property.

]PROCEDURE release
LOCAL lcBaseClass

IF this.lRelease
	NODEFAULT
	RETURN .F.
ENDIF
this.lRelease=.T.
lcBaseClass=LOWER(this.BaseClass)
this.oHost=.NULL.
this.ReleaseObjRefs
IF NOT INLIST(lcBaseClass+" ","form ","formset ","toolbar ")
	RELEASE this
ENDIF

ENDPROC
PROCEDURE setobjectref
LPARAMETERS tcName,tvClass,tvClassLibrary
LOCAL lvResult

this.vResult=.T.
DO (this.cSetObjRefProgram) WITH (this),(tcName),(tvClass),(tvClassLibrary)
lvResult=this.vResult
this.vResult=.T.
RETURN lvResult

ENDPROC
PROCEDURE setobjectrefs
LPARAMETERS toObject

RETURN

ENDPROC
PROCEDURE releaseobjrefs
LOCAL lcName,oObject,lnCount

IF this.nObjectRefCount=0
	RETURN
ENDIF
FOR lnCount = this.nObjectRefCount TO 1 STEP -1
	lcName=this.aObjectRefs[lnCount,1]
	IF EMPTY(lcName) OR NOT PEMSTATUS(this,lcName,5) OR TYPE("this."+lcName)#"O"
		LOOP
	ENDIF
	oObject=this.&lcName
	IF ISNULL(oObject)
		LOOP
	ENDIF
	IF TYPE("oObject")=="O" AND NOT ISNULL(oObject) AND PEMSTATUS(oObject,"Release",5)
		oObject.Release
	ENDIF
	IF NOT ISNULL(oObject) AND PEMSTATUS(oObject,"oHost",5)
		oObject.oHost=.NULL.
	ENDIF
	this.&lcName=.NULL.
	oObject=.NULL.
ENDFOR
DIMENSION this.aObjectRefs[1,3]
this.aObjectRefs=""

ENDPROC
PROCEDURE nobjectrefcount_access
LOCAL lnObjectRefCount

lnObjectRefCount=ALEN(this.aObjectRefs,1)
IF lnObjectRefCount=1 AND EMPTY(this.aObjectRefs[1])
	lnObjectRefCount=0
ENDIF
RETURN lnObjectRefCount

ENDPROC
PROCEDURE nobjectrefcount_assign
LPARAMETERS m.vNewVal

ERROR 1743

ENDPROC
PROCEDURE sethost
this.oHost=IIF(TYPE("thisform")=="O",thisform,.NULL.)

ENDPROC
PROCEDURE newinstance
LPARAMETERS tnDataSessionID
LOCAL oNewObject,lnLastDataSessionID

lnLastDataSessionID=SET("DATASESSION")
IF TYPE("tnDataSessionID")=="N" AND tnDataSessionID>=1
	SET DATASESSION TO tnDataSessionID
ENDIF
oNewObject=NEWOBJECT(this.Class,this.ClassLibrary)
SET DATASESSION TO (lnLastDataSessionID)
RETURN oNewObject

ENDPROC
PROCEDURE addtoproject
*-- Dummy code for adding files to project.
RETURN

DO SetObjRf.prg

ENDPROC
PROCEDURE ninstances_access
LOCAL laInstances[1]
	
RETURN AINSTANCE(laInstances,this.Class)

ENDPROC
PROCEDURE ninstances_assign
LPARAMETERS vNewVal

ERROR 1743

ENDPROC
PROCEDURE Error
LPARAMETERS nError, cMethod, nLine
LOCAL lcOnError,lcErrorMsg,lcCodeLineMsg

IF this.lIgnoreErrors OR _vfp.StartMode>0
	RETURN .F.
ENDIF
lcOnError=UPPER(ALLTRIM(ON("ERROR")))
IF NOT EMPTY(lcOnError)
	lcOnError=STRTRAN(STRTRAN(STRTRAN(lcOnError,"ERROR()","nError"), ;
			"PROGRAM()","cMethod"),"LINENO()","nLine")
	&lcOnError
	RETURN
ENDIF
lcErrorMsg=MESSAGE()+CHR(13)+CHR(13)+this.Name+CHR(13)+ ;
		"Error:           "+ALLTRIM(STR(nError))+CHR(13)+ ;
		"Method:       "+LOWER(ALLTRIM(cMethod))
lcCodeLineMsg=MESSAGE(1)
IF BETWEEN(nLine,1,100000) AND NOT lcCodeLineMsg="..."
	lcErrorMsg=lcErrorMsg+CHR(13)+"Line:            "+ALLTRIM(STR(nLine))
	IF NOT EMPTY(lcCodeLineMsg)
		lcErrorMsg=lcErrorMsg+CHR(13)+CHR(13)+lcCodeLineMsg
	ENDIF
ENDIF
WAIT CLEAR
MESSAGEBOX(lcErrorMsg,16,_screen.Caption)
ERROR nError

ENDPROC
PROCEDURE Init
IF this.lSetHost
	this.SetHost
ENDIF
IF this.lAutoSetObjectRefs AND NOT this.SetObjectRefs(this)
	RETURN .F.
ENDIF

ENDPROC
PROCEDURE Destroy
IF this.lRelease
	RETURN .F.
ENDIF
this.lRelease=.T.
this.ReleaseObjRefs
this.oHost=.NULL.

ENDPROC
icversion Version property.
builder Bulder property.
builderx BuilderX property.
lautobuilder Specifies if custom FFC builder is automatically launched when instance is added to a container in design mode, even if the control pallette Builder Lock button is off.
nobjectrefcount Returns the number of items in the object reference array property aObjectRefs.
ohost Object reference to host object (generally THISFORM), which is automatically set on Init if lSetHost is .T.
lautosetobjectrefs Specifiies if the SetObjectRefs method is automatically called from the Init method.
vresult Variant result property for internal usage when calling programs in PRGs and a return file is required.
lrelease Indicates the object's Release method has been executed and the object is in the process of being released from memory.
csetobjrefprogram Program to be called when when setting an object references via the SetObjectRef method.
lignoreerrors Specifies if the default FFC error handler is executed when an error occurs.
lsethost Specifies if the SetHost method is automatically called from the Init method to set the oHost property to THISFORM.
ninstances Number of instances.
^aobjectrefs[1,3] Array of object references properties.
*release Releases object from memory.
*setobjectref Set object reference to specific property.
*setobjectrefs Place holder method for listing SetObjectRef method calls.
*releaseobjrefs Releases all object references of aObjectRefs array.
*nobjectrefcount_access Access method for nObjectRefCount property.
*nobjectrefcount_assign Assign method for nObjectRefCount property.
*sethost Set oHost property to form reference object.
*newinstance Returns new instance of object.
*addtoproject Dummy code for adding files to project.
*ninstances_access Access method for nInstances property.
*ninstances_assign Assign method for nInstances property.

]PROCEDURE release
LOCAL lcBaseClass

IF this.lRelease
	NODEFAULT
	RETURN .F.
ENDIF
this.lRelease=.T.
lcBaseClass=LOWER(this.BaseClass)
this.oHost=.NULL.
this.ReleaseObjRefs
IF NOT INLIST(lcBaseClass+" ","form ","formset ","toolbar ")
	RELEASE this
ENDIF

ENDPROC
PROCEDURE setobjectref
LPARAMETERS tcName,tvClass,tvClassLibrary
LOCAL lvResult

this.vResult=.T.
DO (this.cSetObjRefProgram) WITH (this),(tcName),(tvClass),(tvClassLibrary)
lvResult=this.vResult
this.vResult=.T.
RETURN lvResult

ENDPROC
PROCEDURE setobjectrefs
LPARAMETERS toObject

RETURN

ENDPROC
PROCEDURE releaseobjrefs
LOCAL lcName,oObject,lnCount

IF this.nObjectRefCount=0
	RETURN
ENDIF
FOR lnCount = this.nObjectRefCount TO 1 STEP -1
	lcName=this.aObjectRefs[lnCount,1]
	IF EMPTY(lcName) OR NOT PEMSTATUS(this,lcName,5) OR TYPE("this."+lcName)#"O"
		LOOP
	ENDIF
	oObject=this.&lcName
	IF ISNULL(oObject)
		LOOP
	ENDIF
	IF TYPE("oObject")=="O" AND NOT ISNULL(oObject) AND PEMSTATUS(oObject,"Release",5)
		oObject.Release
	ENDIF
	IF NOT ISNULL(oObject) AND PEMSTATUS(oObject,"oHost",5)
		oObject.oHost=.NULL.
	ENDIF
	this.&lcName=.NULL.
	oObject=.NULL.
ENDFOR
DIMENSION this.aObjectRefs[1,3]
this.aObjectRefs=""

ENDPROC
PROCEDURE nobjectrefcount_access
LOCAL lnObjectRefCount

lnObjectRefCount=ALEN(this.aObjectRefs,1)
IF lnObjectRefCount=1 AND EMPTY(this.aObjectRefs[1])
	lnObjectRefCount=0
ENDIF
RETURN lnObjectRefCount

ENDPROC
PROCEDURE nobjectrefcount_assign
LPARAMETERS m.vNewVal

ERROR 1743

ENDPROC
PROCEDURE sethost
this.oHost=IIF(TYPE("thisform")=="O",thisform,.NULL.)

ENDPROC
PROCEDURE newinstance
LPARAMETERS tnDataSessionID
LOCAL oNewObject,lnLastDataSessionID

lnLastDataSessionID=SET("DATASESSION")
IF TYPE("tnDataSessionID")=="N" AND tnDataSessionID>=1
	SET DATASESSION TO tnDataSessionID
ENDIF
oNewObject=NEWOBJECT(this.Class,this.ClassLibrary)
SET DATASESSION TO (lnLastDataSessionID)
RETURN oNewObject

ENDPROC
PROCEDURE addtoproject
*-- Dummy code for adding files to project.
RETURN

DO SetObjRf.prg

ENDPROC
PROCEDURE ninstances_access
LOCAL laInstances[1]
	
RETURN AINSTANCE(laInstances,this.Class)

ENDPROC
PROCEDURE ninstances_assign
LPARAMETERS vNewVal

ERROR 1743

ENDPROC
PROCEDURE Error
LPARAMETERS nError, cMethod, nLine
LOCAL lcOnError,lcErrorMsg,lcCodeLineMsg

IF this.lIgnoreErrors OR _vfp.StartMode>0
	RETURN .F.
ENDIF
lcOnError=UPPER(ALLTRIM(ON("ERROR")))
IF NOT EMPTY(lcOnError)
	lcOnError=STRTRAN(STRTRAN(STRTRAN(lcOnError,"ERROR()","nError"), ;
			"PROGRAM()","cMethod"),"LINENO()","nLine")
	&lcOnError
	RETURN
ENDIF
lcErrorMsg=MESSAGE()+CHR(13)+CHR(13)+this.Name+CHR(13)+ ;
		"Error:           "+ALLTRIM(STR(nError))+CHR(13)+ ;
		"Method:       "+LOWER(ALLTRIM(cMethod))
lcCodeLineMsg=MESSAGE(1)
IF BETWEEN(nLine,1,100000) AND NOT lcCodeLineMsg="..."
	lcErrorMsg=lcErrorMsg+CHR(13)+"Line:            "+ALLTRIM(STR(nLine))
	IF NOT EMPTY(lcCodeLineMsg)
		lcErrorMsg=lcErrorMsg+CHR(13)+CHR(13)+lcCodeLineMsg
	ENDIF
ENDIF
WAIT CLEAR
MESSAGEBOX(lcErrorMsg,16,_screen.Caption)
ERROR nError

ENDPROC
PROCEDURE Init
IF this.lSetHost
	this.SetHost
ENDIF
IF this.lAutoSetObjectRefs AND NOT this.SetObjectRefs(this)
	RETURN .F.
ENDIF

ENDPROC
PROCEDURE Destroy
IF this.lRelease
	RETURN .F.
ENDIF
this.lRelease=.T.
this.ReleaseObjRefs
this.oHost=.NULL.

ENDPROC

]PROCEDURE release
LOCAL lcBaseClass

IF this.lRelease
	NODEFAULT
	RETURN .F.
ENDIF
this.lRelease=.T.
lcBaseClass=LOWER(this.BaseClass)
this.oHost=.NULL.
this.ReleaseObjRefs
IF NOT INLIST(lcBaseClass+" ","form ","formset ","toolbar ")
	RELEASE this
ENDIF

ENDPROC
PROCEDURE setobjectref
LPARAMETERS tcName,tvClass,tvClassLibrary
LOCAL lvResult

this.vResult=.T.
DO (this.cSetObjRefProgram) WITH (this),(tcName),(tvClass),(tvClassLibrary)
lvResult=this.vResult
this.vResult=.T.
RETURN lvResult

ENDPROC
PROCEDURE setobjectrefs
LPARAMETERS toObject

RETURN

ENDPROC
PROCEDURE releaseobjrefs
LOCAL lcName,oObject,lnCount

IF this.nObjectRefCount=0
	RETURN
ENDIF
FOR lnCount = this.nObjectRefCount TO 1 STEP -1
	lcName=this.aObjectRefs[lnCount,1]
	IF EMPTY(lcName) OR NOT PEMSTATUS(this,lcName,5) OR TYPE("this."+lcName)#"O"
		LOOP
	ENDIF
	oObject=this.&lcName
	IF ISNULL(oObject)
		LOOP
	ENDIF
	IF TYPE("oObject")=="O" AND NOT ISNULL(oObject) AND PEMSTATUS(oObject,"Release",5)
		oObject.Release
	ENDIF
	IF NOT ISNULL(oObject) AND PEMSTATUS(oObject,"oHost",5)
		oObject.oHost=.NULL.
	ENDIF
	this.&lcName=.NULL.
	oObject=.NULL.
ENDFOR
DIMENSION this.aObjectRefs[1,3]
this.aObjectRefs=""

ENDPROC
PROCEDURE nobjectrefcount_access
LOCAL lnObjectRefCount

lnObjectRefCount=ALEN(this.aObjectRefs,1)
IF lnObjectRefCount=1 AND EMPTY(this.aObjectRefs[1])
	lnObjectRefCount=0
ENDIF
RETURN lnObjectRefCount

ENDPROC
PROCEDURE nobjectrefcount_assign
LPARAMETERS m.vNewVal

ERROR 1743

ENDPROC
PROCEDURE sethost
this.oHost=IIF(TYPE("thisform")=="O",thisform,.NULL.)

ENDPROC
PROCEDURE newinstance
LPARAMETERS tnDataSessionID
LOCAL oNewObject,lnLastDataSessionID

lnLastDataSessionID=SET("DATASESSION")
IF TYPE("tnDataSessionID")=="N" AND tnDataSessionID>=1
	SET DATASESSION TO tnDataSessionID
ENDIF
oNewObject=NEWOBJECT(this.Class,this.ClassLibrary)
SET DATASESSION TO (lnLastDataSessionID)
RETURN oNewObject

ENDPROC
PROCEDURE addtoproject
*-- Dummy code for adding files to project.
RETURN

DO SetObjRf.prg

ENDPROC
PROCEDURE ninstances_access
LOCAL laInstances[1]
	
RETURN AINSTANCE(laInstances,this.Class)

ENDPROC
PROCEDURE ninstances_assign
LPARAMETERS vNewVal

ERROR 1743

ENDPROC
PROCEDURE Error
LPARAMETERS nError, cMethod, nLine
LOCAL lcOnError,lcErrorMsg,lcCodeLineMsg

IF this.lIgnoreErrors OR _vfp.StartMode>0
	RETURN .F.
ENDIF
lcOnError=UPPER(ALLTRIM(ON("ERROR")))
IF NOT EMPTY(lcOnError)
	lcOnError=STRTRAN(STRTRAN(STRTRAN(lcOnError,"ERROR()","nError"), ;
			"PROGRAM()","cMethod"),"LINENO()","nLine")
	&lcOnError
	RETURN
ENDIF
lcErrorMsg=MESSAGE()+CHR(13)+CHR(13)+this.Name+CHR(13)+ ;
		"Error:           "+ALLTRIM(STR(nError))+CHR(13)+ ;
		"Method:       "+LOWER(ALLTRIM(cMethod))
lcCodeLineMsg=MESSAGE(1)
IF BETWEEN(nLine,1,100000) AND NOT lcCodeLineMsg="..."
	lcErrorMsg=lcErrorMsg+CHR(13)+"Line:            "+ALLTRIM(STR(nLine))
	IF NOT EMPTY(lcCodeLineMsg)
		lcErrorMsg=lcErrorMsg+CHR(13)+CHR(13)+lcCodeLineMsg
	ENDIF
ENDIF
WAIT CLEAR
MESSAGEBOX(lcErrorMsg,16,_screen.Caption)
ERROR nError

ENDPROC
PROCEDURE Init
IF this.lSetHost
	this.SetHost
ENDIF
IF this.lAutoSetObjectRefs AND NOT this.SetObjectRefs(this)
	RETURN .F.
ENDIF

ENDPROC
PROCEDURE Destroy
IF this.lRelease
	RETURN .F.
ENDIF
this.lRelease=.T.
this.ReleaseObjRefs
this.oHost=.NULL.

ENDPROC
icversion Version property.
builder Bulder property.
builderx BuilderX property.
lautobuilder Specifies if custom FFC builder is automatically launched when instance is added to a container in design mode, even if the control pallette Builder Lock button is off.
nobjectrefcount Returns the number of items in the object reference array property aObjectRefs.
ohost Object reference to host object (generally THISFORM), which is automatically set on Init if lSetHost is .T.
lautosetobjectrefs Specifiies if the SetObjectRefs method is automatically called from the Init method.
vresult Variant result property for internal usage when calling programs in PRGs and a return file is required.
lrelease Indicates the object's Release method has been executed and the object is in the process of being released from memory.
csetobjrefprogram Program to be called when when setting an object references via the SetObjectRef method.
lignoreerrors Specifies if the default FFC error handler is executed when an error occurs.
lsethost Specifies if the SetHost method is automatically called from the Init method to set the oHost property to THISFORM.
ninstances Number of instances.
^aobjectrefs[1,3] Array of object references properties.
*release Releases object from memory.
*setobjectref Set object reference to specific property.
*setobjectrefs Place holder method for listing SetObjectRef method calls.
*releaseobjrefs Releases all object references of aObjectRefs array.
*nobjectrefcount_access Access method for nObjectRefCount property.
*nobjectrefcount_assign Assign method for nObjectRefCount property.
*sethost Set oHost property to form reference object.
*newinstance Returns new instance of object.
*addtoproject Dummy code for adding files to project.
*ninstances_access Access method for nInstances property.
*ninstances_assign Assign method for nInstances property.

]PROCEDURE release
LOCAL lcBaseClass

IF this.lRelease
	NODEFAULT
	RETURN .F.
ENDIF
this.lRelease=.T.
lcBaseClass=LOWER(this.BaseClass)
this.oHost=.NULL.
this.ReleaseObjRefs
IF NOT INLIST(lcBaseClass+" ","form ","formset ","toolbar ")
	RELEASE this
ENDIF

ENDPROC
PROCEDURE setobjectref
LPARAMETERS tcName,tvClass,tvClassLibrary
LOCAL lvResult

this.vResult=.T.
DO (this.cSetObjRefProgram) WITH (this),(tcName),(tvClass),(tvClassLibrary)
lvResult=this.vResult
this.vResult=.T.
RETURN lvResult

ENDPROC
PROCEDURE setobjectrefs
LPARAMETERS toObject

RETURN

ENDPROC
PROCEDURE releaseobjrefs
LOCAL lcName,oObject,lnCount

IF this.nObjectRefCount=0
	RETURN
ENDIF
FOR lnCount = this.nObjectRefCount TO 1 STEP -1
	lcName=this.aObjectRefs[lnCount,1]
	IF EMPTY(lcName) OR NOT PEMSTATUS(this,lcName,5) OR TYPE("this."+lcName)#"O"
		LOOP
	ENDIF
	oObject=this.&lcName
	IF ISNULL(oObject)
		LOOP
	ENDIF
	IF TYPE("oObject")=="O" AND NOT ISNULL(oObject) AND PEMSTATUS(oObject,"Release",5)
		oObject.Release
	ENDIF
	IF NOT ISNULL(oObject) AND PEMSTATUS(oObject,"oHost",5)
		oObject.oHost=.NULL.
	ENDIF
	this.&lcName=.NULL.
	oObject=.NULL.
ENDFOR
DIMENSION this.aObjectRefs[1,3]
this.aObjectRefs=""

ENDPROC
PROCEDURE nobjectrefcount_access
LOCAL lnObjectRefCount

lnObjectRefCount=ALEN(this.aObjectRefs,1)
IF lnObjectRefCount=1 AND EMPTY(this.aObjectRefs[1])
	lnObjectRefCount=0
ENDIF
RETURN lnObjectRefCount

ENDPROC
PROCEDURE nobjectrefcount_assign
LPARAMETERS m.vNewVal

ERROR 1743

ENDPROC
PROCEDURE sethost
this.oHost=IIF(TYPE("thisform")=="O",thisform,.NULL.)

ENDPROC
PROCEDURE newinstance
LPARAMETERS tnDataSessionID
LOCAL oNewObject,lnLastDataSessionID

lnLastDataSessionID=SET("DATASESSION")
IF TYPE("tnDataSessionID")=="N" AND tnDataSessionID>=1
	SET DATASESSION TO tnDataSessionID
ENDIF
oNewObject=NEWOBJECT(this.Class,this.ClassLibrary)
SET DATASESSION TO (lnLastDataSessionID)
RETURN oNewObject

ENDPROC
PROCEDURE addtoproject
*-- Dummy code for adding files to project.
RETURN

DO SetObjRf.prg

ENDPROC
PROCEDURE ninstances_access
LOCAL laInstances[1]
	
RETURN AINSTANCE(laInstances,this.Class)

ENDPROC
PROCEDURE ninstances_assign
LPARAMETERS vNewVal

ERROR 1743

ENDPROC
PROCEDURE Error
LPARAMETERS nError, cMethod, nLine
LOCAL lcOnError,lcErrorMsg,lcCodeLineMsg

IF this.lIgnoreErrors OR _vfp.StartMode>0
	RETURN .F.
ENDIF
lcOnError=UPPER(ALLTRIM(ON("ERROR")))
IF NOT EMPTY(lcOnError)
	lcOnError=STRTRAN(STRTRAN(STRTRAN(lcOnError,"ERROR()","nError"), ;
			"PROGRAM()","cMethod"),"LINENO()","nLine")
	&lcOnError
	RETURN
ENDIF
lcErrorMsg=MESSAGE()+CHR(13)+CHR(13)+this.Name+CHR(13)+ ;
		"Error:           "+ALLTRIM(STR(nError))+CHR(13)+ ;
		"Method:       "+LOWER(ALLTRIM(cMethod))
lcCodeLineMsg=MESSAGE(1)
IF BETWEEN(nLine,1,100000) AND NOT lcCodeLineMsg="..."
	lcErrorMsg=lcErrorMsg+CHR(13)+"Line:            "+ALLTRIM(STR(nLine))
	IF NOT EMPTY(lcCodeLineMsg)
		lcErrorMsg=lcErrorMsg+CHR(13)+CHR(13)+lcCodeLineMsg
	ENDIF
ENDIF
WAIT CLEAR
MESSAGEBOX(lcErrorMsg,16,_screen.Caption)
ERROR nError

ENDPROC
PROCEDURE Init
IF this.lSetHost
	this.SetHost
ENDIF
IF this.lAutoSetObjectRefs AND NOT this.SetObjectRefs(this)
	RETURN .F.
ENDIF

ENDPROC
PROCEDURE Destroy
IF this.lRelease
	RETURN .F.
ENDIF
this.lRelease=.T.
this.ReleaseObjRefs
this.oHost=.NULL.

ENDPROC
icversion Version property.
builder Bulder property.
builderx BuilderX property.
lautobuilder Specifies if custom FFC builder is automatically launched when instance is added to a container in design mode, even if the control pallette Builder Lock button is off.
nobjectrefcount Returns the number of items in the object reference array property aObjectRefs.
ohost Object reference to host object (generally THISFORM), which is automatically set on Init if lSetHost is .T.
lautosetobjectrefs Specifiies if the SetObjectRefs method is automatically called from the Init method.
vresult Variant result property for internal usage when calling programs in PRGs and a return file is required.
lrelease Indicates the object's Release method has been executed and the object is in the process of being released from memory.
csetobjrefprogram Program to be called when when setting an object references via the SetObjectRef method.
lignoreerrors Specifies if the default FFC error handler is executed when an error occurs.
lsethost Specifies if the SetHost method is automatically called from the Init method to set the oHost property to THISFORM.
ninstances Number of instances.
^aobjectrefs[1,3] Array of object references properties.
*release Releases object from memory.
*setobjectref Set object reference to specific property.
*setobjectrefs Place holder method for listing SetObjectRef method calls.
*releaseobjrefs Releases all object references of aObjectRefs array.
*nobjectrefcount_access Access method for nObjectRefCount property.
*nobjectrefcount_assign Assign method for nObjectRefCount property.
*sethost Set oHost property to form reference object.
*newinstance Returns new instance of object.
*addtoproject Dummy code for adding files to project.
*ninstances_access Access method for nInstances property.
*ninstances_assign Assign method for nInstances property.

]PROCEDURE release
LOCAL lcBaseClass

IF this.lRelease
	NODEFAULT
	RETURN .F.
ENDIF
this.lRelease=.T.
lcBaseClass=LOWER(this.BaseClass)
this.oHost=.NULL.
this.ReleaseObjRefs
IF NOT INLIST(lcBaseClass+" ","form ","formset ","toolbar ")
	RELEASE this
ENDIF

ENDPROC
PROCEDURE setobjectref
LPARAMETERS tcName,tvClass,tvClassLibrary
LOCAL lvResult

this.vResult=.T.
DO (this.cSetObjRefProgram) WITH (this),(tcName),(tvClass),(tvClassLibrary)
lvResult=this.vResult
this.vResult=.T.
RETURN lvResult

ENDPROC
PROCEDURE setobjectrefs
LPARAMETERS toObject

RETURN

ENDPROC
PROCEDURE releaseobjrefs
LOCAL lcName,oObject,lnCount

IF this.nObjectRefCount=0
	RETURN
ENDIF
FOR lnCount = this.nObjectRefCount TO 1 STEP -1
	lcName=this.aObjectRefs[lnCount,1]
	IF EMPTY(lcName) OR NOT PEMSTATUS(this,lcName,5) OR TYPE("this."+lcName)#"O"
		LOOP
	ENDIF
	oObject=this.&lcName
	IF ISNULL(oObject)
		LOOP
	ENDIF
	IF TYPE("oObject")=="O" AND NOT ISNULL(oObject) AND PEMSTATUS(oObject,"Release",5)
		oObject.Release
	ENDIF
	IF NOT ISNULL(oObject) AND PEMSTATUS(oObject,"oHost",5)
		oObject.oHost=.NULL.
	ENDIF
	this.&lcName=.NULL.
	oObject=.NULL.
ENDFOR
DIMENSION this.aObjectRefs[1,3]
this.aObjectRefs=""

ENDPROC
PROCEDURE nobjectrefcount_access
LOCAL lnObjectRefCount

lnObjectRefCount=ALEN(this.aObjectRefs,1)
IF lnObjectRefCount=1 AND EMPTY(this.aObjectRefs[1])
	lnObjectRefCount=0
ENDIF
RETURN lnObjectRefCount

ENDPROC
PROCEDURE nobjectrefcount_assign
LPARAMETERS m.vNewVal

ERROR 1743

ENDPROC
PROCEDURE sethost
this.oHost=IIF(TYPE("thisform")=="O",thisform,.NULL.)

ENDPROC
PROCEDURE newinstance
LPARAMETERS tnDataSessionID
LOCAL oNewObject,lnLastDataSessionID

lnLastDataSessionID=SET("DATASESSION")
IF TYPE("tnDataSessionID")=="N" AND tnDataSessionID>=1
	SET DATASESSION TO tnDataSessionID
ENDIF
oNewObject=NEWOBJECT(this.Class,this.ClassLibrary)
SET DATASESSION TO (lnLastDataSessionID)
RETURN oNewObject

ENDPROC
PROCEDURE addtoproject
*-- Dummy code for adding files to project.
RETURN

DO SetObjRf.prg

ENDPROC
PROCEDURE ninstances_access
LOCAL laInstances[1]
	
RETURN AINSTANCE(laInstances,this.Class)

ENDPROC
PROCEDURE ninstances_assign
LPARAMETERS vNewVal

ERROR 1743

ENDPROC
PROCEDURE Error
LPARAMETERS nError, cMethod, nLine
LOCAL lcOnError,lcErrorMsg,lcCodeLineMsg

IF this.lIgnoreErrors OR _vfp.StartMode>0
	RETURN .F.
ENDIF
lcOnError=UPPER(ALLTRIM(ON("ERROR")))
IF NOT EMPTY(lcOnError)
	lcOnError=STRTRAN(STRTRAN(STRTRAN(lcOnError,"ERROR()","nError"), ;
			"PROGRAM()","cMethod"),"LINENO()","nLine")
	&lcOnError
	RETURN
ENDIF
lcErrorMsg=MESSAGE()+CHR(13)+CHR(13)+this.Name+CHR(13)+ ;
		"Error:           "+ALLTRIM(STR(nError))+CHR(13)+ ;
		"Method:       "+LOWER(ALLTRIM(cMethod))
lcCodeLineMsg=MESSAGE(1)
IF BETWEEN(nLine,1,100000) AND NOT lcCodeLineMsg="..."
	lcErrorMsg=lcErrorMsg+CHR(13)+"Line:            "+ALLTRIM(STR(nLine))
	IF NOT EMPTY(lcCodeLineMsg)
		lcErrorMsg=lcErrorMsg+CHR(13)+CHR(13)+lcCodeLineMsg
	ENDIF
ENDIF
WAIT CLEAR
MESSAGEBOX(lcErrorMsg,16,_screen.Caption)
ERROR nError

ENDPROC
PROCEDURE Init
IF this.lSetHost
	this.SetHost
ENDIF
IF this.lAutoSetObjectRefs AND NOT this.SetObjectRefs(this)
	RETURN .F.
ENDIF

ENDPROC
PROCEDURE Destroy
IF this.lRelease
	RETURN .F.
ENDIF
this.lRelease=.T.
this.ReleaseObjRefs
this.oHost=.NULL.

ENDPROC
icversion Version property.
builder Bulder property.
builderx BuilderX property.
lautobuilder Specifies if custom FFC builder is automatically launched when instance is added to a container in design mode, even if the control pallette Builder Lock button is off.
nobjectrefcount Returns the number of items in the object reference array property aObjectRefs.
ohost Object reference to host object (generally THISFORM), which is automatically set on Init if lSetHost is .T.
lautosetobjectrefs Specifiies if the SetObjectRefs method is automatically called from the Init method.
vresult Variant result property for internal usage when calling programs in PRGs and a return file is required.
lrelease Indicates the object's Release method has been executed and the object is in the process of being released from memory.
csetobjrefprogram Program to be called when when setting an object references via the SetObjectRef method.
lignoreerrors Specifies if the default FFC error handler is executed when an error occurs.
lsethost Specifies if the SetHost method is automatically called from the Init method to set the oHost property to THISFORM.
ninstances Number of instances.
^aobjectrefs[1,3] Array of object references properties.
*release Releases object from memory.
*setobjectref Set object reference to specific property.
*setobjectrefs Place holder method for listing SetObjectRef method calls.
*releaseobjrefs Releases all object references of aObjectRefs array.
*nobjectrefcount_access Access method for nObjectRefCount property.
*nobjectrefcount_assign Assign method for nObjectRefCount property.
*sethost Set oHost property to form reference object.
*newinstance Returns new instance of object.
*addtoproject Dummy code for adding files to project.
*ninstances_access Access method for nInstances property.
*ninstances_assign Assign method for nInstances property.

]PROCEDURE release
LOCAL lcBaseClass

IF this.lRelease
	NODEFAULT
	RETURN .F.
ENDIF
this.lRelease=.T.
lcBaseClass=LOWER(this.BaseClass)
this.oHost=.NULL.
this.ReleaseObjRefs
IF NOT INLIST(lcBaseClass+" ","form ","formset ","toolbar ")
	RELEASE this
ENDIF

ENDPROC
PROCEDURE setobjectref
LPARAMETERS tcName,tvClass,tvClassLibrary
LOCAL lvResult

this.vResult=.T.
DO (this.cSetObjRefProgram) WITH (this),(tcName),(tvClass),(tvClassLibrary)
lvResult=this.vResult
this.vResult=.T.
RETURN lvResult

ENDPROC
PROCEDURE setobjectrefs
LPARAMETERS toObject

RETURN

ENDPROC
PROCEDURE releaseobjrefs
LOCAL lcName,oObject,lnCount

IF this.nObjectRefCount=0
	RETURN
ENDIF
FOR lnCount = this.nObjectRefCount TO 1 STEP -1
	lcName=this.aObjectRefs[lnCount,1]
	IF EMPTY(lcName) OR NOT PEMSTATUS(this,lcName,5) OR TYPE("this."+lcName)#"O"
		LOOP
	ENDIF
	oObject=this.&lcName
	IF ISNULL(oObject)
		LOOP
	ENDIF
	IF TYPE("oObject")=="O" AND NOT ISNULL(oObject) AND PEMSTATUS(oObject,"Release",5)
		oObject.Release
	ENDIF
	IF NOT ISNULL(oObject) AND PEMSTATUS(oObject,"oHost",5)
		oObject.oHost=.NULL.
	ENDIF
	this.&lcName=.NULL.
	oObject=.NULL.
ENDFOR
DIMENSION this.aObjectRefs[1,3]
this.aObjectRefs=""

ENDPROC
PROCEDURE nobjectrefcount_access
LOCAL lnObjectRefCount

lnObjectRefCount=ALEN(this.aObjectRefs,1)
IF lnObjectRefCount=1 AND EMPTY(this.aObjectRefs[1])
	lnObjectRefCount=0
ENDIF
RETURN lnObjectRefCount

ENDPROC
PROCEDURE nobjectrefcount_assign
LPARAMETERS m.vNewVal

ERROR 1743

ENDPROC
PROCEDURE sethost
this.oHost=IIF(TYPE("thisform")=="O",thisform,.NULL.)

ENDPROC
PROCEDURE newinstance
LPARAMETERS tnDataSessionID
LOCAL oNewObject,lnLastDataSessionID

lnLastDataSessionID=SET("DATASESSION")
IF TYPE("tnDataSessionID")=="N" AND tnDataSessionID>=1
	SET DATASESSION TO tnDataSessionID
ENDIF
oNewObject=NEWOBJECT(this.Class,this.ClassLibrary)
SET DATASESSION TO (lnLastDataSessionID)
RETURN oNewObject

ENDPROC
PROCEDURE addtoproject
*-- Dummy code for adding files to project.
RETURN

DO SetObjRf.prg

ENDPROC
PROCEDURE ninstances_access
LOCAL laInstances[1]
	
RETURN AINSTANCE(laInstances,this.Class)

ENDPROC
PROCEDURE ninstances_assign
LPARAMETERS vNewVal

ERROR 1743

ENDPROC
PROCEDURE Error
LPARAMETERS nError, cMethod, nLine
LOCAL lcOnError,lcErrorMsg,lcCodeLineMsg

IF this.lIgnoreErrors OR _vfp.StartMode>0
	RETURN .F.
ENDIF
lcOnError=UPPER(ALLTRIM(ON("ERROR")))
IF NOT EMPTY(lcOnError)
	lcOnError=STRTRAN(STRTRAN(STRTRAN(lcOnError,"ERROR()","nError"), ;
			"PROGRAM()","cMethod"),"LINENO()","nLine")
	&lcOnError
	RETURN
ENDIF
lcErrorMsg=MESSAGE()+CHR(13)+CHR(13)+this.Name+CHR(13)+ ;
		"Error:           "+ALLTRIM(STR(nError))+CHR(13)+ ;
		"Method:       "+LOWER(ALLTRIM(cMethod))
lcCodeLineMsg=MESSAGE(1)
IF BETWEEN(nLine,1,100000) AND NOT lcCodeLineMsg="..."
	lcErrorMsg=lcErrorMsg+CHR(13)+"Line:            "+ALLTRIM(STR(nLine))
	IF NOT EMPTY(lcCodeLineMsg)
		lcErrorMsg=lcErrorMsg+CHR(13)+CHR(13)+lcCodeLineMsg
	ENDIF
ENDIF
WAIT CLEAR
MESSAGEBOX(lcErrorMsg,16,_screen.Caption)
ERROR nError

ENDPROC
PROCEDURE Init
IF this.lSetHost
	this.SetHost
ENDIF
IF this.lAutoSetObjectRefs AND NOT this.SetObjectRefs(this)
	RETURN .F.
ENDIF

ENDPROC
PROCEDURE Destroy
IF this.lRelease
	RETURN .F.
ENDIF
this.lRelease=.T.
this.ReleaseObjRefs
this.oHost=.NULL.

ENDPROC
icversion Version property.
builder Bulder property.
builderx BuilderX property.
lautobuilder Specifies if custom FFC builder is automatically launched when instance is added to a container in design mode, even if the control pallette Builder Lock button is off.
nobjectrefcount Returns the number of items in the object reference array property aObjectRefs.
ohost Object reference to host object (generally THISFORM), which is automatically set on Init if lSetHost is .T.
lautosetobjectrefs Specifiies if the SetObjectRefs method is automatically called from the Init method.
vresult Variant result property for internal usage when calling programs in PRGs and a return file is required.
lrelease Indicates the object's Release method has been executed and the object is in the process of being released from memory.
csetobjrefprogram Program to be called when when setting an object references via the SetObjectRef method.
lignoreerrors Specifies if the default FFC error handler is executed when an error occurs.
lsethost Specifies if the SetHost method is automatically called from the Init method to set the oHost property to THISFORM.
ninstances Number of instances.
^aobjectrefs[1,3] Array of object references properties.
*release Releases object from memory.
*setobjectref Set object reference to specific property.
*setobjectrefs Place holder method for listing SetObjectRef method calls.
*releaseobjrefs Releases all object references of aObjectRefs array.
*nobjectrefcount_access Access method for nObjectRefCount property.
*nobjectrefcount_assign Assign method for nObjectRefCount property.
*sethost Set oHost property to form reference object.
*newinstance Returns new instance of object.
*addtoproject Dummy code for adding files to project.
*ninstances_access Access method for nInstances property.
*ninstances_assign Assign method for nInstances property.

]PROCEDURE release
LOCAL lcBaseClass

IF this.lRelease
	NODEFAULT
	RETURN .F.
ENDIF
this.lRelease=.T.
lcBaseClass=LOWER(this.BaseClass)
this.oHost=.NULL.
this.ReleaseObjRefs
IF NOT INLIST(lcBaseClass+" ","form ","formset ","toolbar ")
	RELEASE this
ENDIF

ENDPROC
PROCEDURE setobjectref
LPARAMETERS tcName,tvClass,tvClassLibrary
LOCAL lvResult

this.vResult=.T.
DO (this.cSetObjRefProgram) WITH (this),(tcName),(tvClass),(tvClassLibrary)
lvResult=this.vResult
this.vResult=.T.
RETURN lvResult

ENDPROC
PROCEDURE setobjectrefs
LPARAMETERS toObject

RETURN

ENDPROC
PROCEDURE releaseobjrefs
LOCAL lcName,oObject,lnCount

IF this.nObjectRefCount=0
	RETURN
ENDIF
FOR lnCount = this.nObjectRefCount TO 1 STEP -1
	lcName=this.aObjectRefs[lnCount,1]
	IF EMPTY(lcName) OR NOT PEMSTATUS(this,lcName,5) OR TYPE("this."+lcName)#"O"
		LOOP
	ENDIF
	oObject=this.&lcName
	IF ISNULL(oObject)
		LOOP
	ENDIF
	IF TYPE("oObject")=="O" AND NOT ISNULL(oObject) AND PEMSTATUS(oObject,"Release",5)
		oObject.Release
	ENDIF
	IF NOT ISNULL(oObject) AND PEMSTATUS(oObject,"oHost",5)
		oObject.oHost=.NULL.
	ENDIF
	this.&lcName=.NULL.
	oObject=.NULL.
ENDFOR
DIMENSION this.aObjectRefs[1,3]
this.aObjectRefs=""

ENDPROC
PROCEDURE nobjectrefcount_access
LOCAL lnObjectRefCount

lnObjectRefCount=ALEN(this.aObjectRefs,1)
IF lnObjectRefCount=1 AND EMPTY(this.aObjectRefs[1])
	lnObjectRefCount=0
ENDIF
RETURN lnObjectRefCount

ENDPROC
PROCEDURE nobjectrefcount_assign
LPARAMETERS m.vNewVal

ERROR 1743

ENDPROC
PROCEDURE sethost
this.oHost=IIF(TYPE("thisform")=="O",thisform,.NULL.)

ENDPROC
PROCEDURE newinstance
LPARAMETERS tnDataSessionID
LOCAL oNewObject,lnLastDataSessionID

lnLastDataSessionID=SET("DATASESSION")
IF TYPE("tnDataSessionID")=="N" AND tnDataSessionID>=1
	SET DATASESSION TO tnDataSessionID
ENDIF
oNewObject=NEWOBJECT(this.Class,this.ClassLibrary)
SET DATASESSION TO (lnLastDataSessionID)
RETURN oNewObject

ENDPROC
PROCEDURE addtoproject
*-- Dummy code for adding files to project.
RETURN

DO SetObjRf.prg

ENDPROC
PROCEDURE ninstances_access
LOCAL laInstances[1]
	
RETURN AINSTANCE(laInstances,this.Class)

ENDPROC
PROCEDURE ninstances_assign
LPARAMETERS vNewVal

ERROR 1743

ENDPROC
PROCEDURE Error
LPARAMETERS nError, cMethod, nLine
LOCAL lcOnError,lcErrorMsg,lcCodeLineMsg

IF this.lIgnoreErrors OR _vfp.StartMode>0
	RETURN .F.
ENDIF
lcOnError=UPPER(ALLTRIM(ON("ERROR")))
IF NOT EMPTY(lcOnError)
	lcOnError=STRTRAN(STRTRAN(STRTRAN(lcOnError,"ERROR()","nError"), ;
			"PROGRAM()","cMethod"),"LINENO()","nLine")
	&lcOnError
	RETURN
ENDIF
lcErrorMsg=MESSAGE()+CHR(13)+CHR(13)+this.Name+CHR(13)+ ;
		"Error:           "+ALLTRIM(STR(nError))+CHR(13)+ ;
		"Method:       "+LOWER(ALLTRIM(cMethod))
lcCodeLineMsg=MESSAGE(1)
IF BETWEEN(nLine,1,100000) AND NOT lcCodeLineMsg="..."
	lcErrorMsg=lcErrorMsg+CHR(13)+"Line:            "+ALLTRIM(STR(nLine))
	IF NOT EMPTY(lcCodeLineMsg)
		lcErrorMsg=lcErrorMsg+CHR(13)+CHR(13)+lcCodeLineMsg
	ENDIF
ENDIF
WAIT CLEAR
MESSAGEBOX(lcErrorMsg,16,_screen.Caption)
ERROR nError

ENDPROC
PROCEDURE Init
IF this.lSetHost
	this.SetHost
ENDIF
IF this.lAutoSetObjectRefs AND NOT this.SetObjectRefs(this)
	RETURN .F.
ENDIF

ENDPROC
PROCEDURE Destroy
IF this.lRelease
	RETURN .F.
ENDIF
this.lRelease=.T.
this.ReleaseObjRefs
this.oHost=.NULL.

ENDPROC
icversion Version property.
builder Bulder property.
builderx BuilderX property.
lautobuilder Specifies if custom FFC builder is automatically launched when instance is added to a container in design mode, even if the control pallette Builder Lock button is off.
nobjectrefcount Returns the number of items in the object reference array property aObjectRefs.
ohost Object reference to host object (generally THISFORM), which is automatically set on Init if lSetHost is .T.
lautosetobjectrefs Specifiies if the SetObjectRefs method is automatically called from the Init method.
vresult Variant result property for internal usage when calling programs in PRGs and a return file is required.
lrelease Indicates the object's Release method has been executed and the object is in the process of being released from memory.
csetobjrefprogram Program to be called when when setting an object references via the SetObjectRef method.
lignoreerrors Specifies if the default FFC error handler is executed when an error occurs.
lsethost Specifies if the SetHost method is automatically called from the Init method to set the oHost property to THISFORM.
ninstances Number of instances.
^aobjectrefs[1,3] Array of object references properties.
*release Releases object from memory.
*setobjectref Set object reference to specific property.
*setobjectrefs Place holder method for listing SetObjectRef method calls.
*releaseobjrefs Releases all object references of aObjectRefs array.
*nobjectrefcount_access Access method for nObjectRefCount property.
*nobjectrefcount_assign Assign method for nObjectRefCount property.
*sethost Set oHost property to form reference object.
*newinstance Returns new instance of object.
*addtoproject Dummy code for adding files to project.
*ninstances_access Access method for nInstances property.
*ninstances_assign Assign method for nInstances property.

]PROCEDURE release
LOCAL lcBaseClass

IF this.lRelease
	NODEFAULT
	RETURN .F.
ENDIF
this.lRelease=.T.
lcBaseClass=LOWER(this.BaseClass)
this.oHost=.NULL.
this.ReleaseObjRefs
IF NOT INLIST(lcBaseClass+" ","form ","formset ","toolbar ")
	RELEASE this
ENDIF

ENDPROC
PROCEDURE setobjectref
LPARAMETERS tcName,tvClass,tvClassLibrary
LOCAL lvResult

this.vResult=.T.
DO (this.cSetObjRefProgram) WITH (this),(tcName),(tvClass),(tvClassLibrary)
lvResult=this.vResult
this.vResult=.T.
RETURN lvResult

ENDPROC
PROCEDURE setobjectrefs
LPARAMETERS toObject

RETURN

ENDPROC
PROCEDURE releaseobjrefs
LOCAL lcName,oObject,lnCount

IF this.nObjectRefCount=0
	RETURN
ENDIF
FOR lnCount = this.nObjectRefCount TO 1 STEP -1
	lcName=this.aObjectRefs[lnCount,1]
	IF EMPTY(lcName) OR NOT PEMSTATUS(this,lcName,5) OR TYPE("this."+lcName)#"O"
		LOOP
	ENDIF
	oObject=this.&lcName
	IF ISNULL(oObject)
		LOOP
	ENDIF
	IF TYPE("oObject")=="O" AND NOT ISNULL(oObject) AND PEMSTATUS(oObject,"Release",5)
		oObject.Release
	ENDIF
	IF NOT ISNULL(oObject) AND PEMSTATUS(oObject,"oHost",5)
		oObject.oHost=.NULL.
	ENDIF
	this.&lcName=.NULL.
	oObject=.NULL.
ENDFOR
DIMENSION this.aObjectRefs[1,3]
this.aObjectRefs=""

ENDPROC
PROCEDURE nobjectrefcount_access
LOCAL lnObjectRefCount

lnObjectRefCount=ALEN(this.aObjectRefs,1)
IF lnObjectRefCount=1 AND EMPTY(this.aObjectRefs[1])
	lnObjectRefCount=0
ENDIF
RETURN lnObjectRefCount

ENDPROC
PROCEDURE nobjectrefcount_assign
LPARAMETERS m.vNewVal

ERROR 1743

ENDPROC
PROCEDURE sethost
this.oHost=IIF(TYPE("thisform")=="O",thisform,.NULL.)

ENDPROC
PROCEDURE newinstance
LPARAMETERS tnDataSessionID
LOCAL oNewObject,lnLastDataSessionID

lnLastDataSessionID=SET("DATASESSION")
IF TYPE("tnDataSessionID")=="N" AND tnDataSessionID>=1
	SET DATASESSION TO tnDataSessionID
ENDIF
oNewObject=NEWOBJECT(this.Class,this.ClassLibrary)
SET DATASESSION TO (lnLastDataSessionID)
RETURN oNewObject

ENDPROC
PROCEDURE addtoproject
*-- Dummy code for adding files to project.
RETURN

DO SetObjRf.prg

ENDPROC
PROCEDURE ninstances_access
LOCAL laInstances[1]
	
RETURN AINSTANCE(laInstances,this.Class)

ENDPROC
PROCEDURE ninstances_assign
LPARAMETERS vNewVal

ERROR 1743

ENDPROC
PROCEDURE Error
LPARAMETERS nError, cMethod, nLine
LOCAL lcOnError,lcErrorMsg,lcCodeLineMsg

IF this.lIgnoreErrors OR _vfp.StartMode>0
	RETURN .F.
ENDIF
lcOnError=UPPER(ALLTRIM(ON("ERROR")))
IF NOT EMPTY(lcOnError)
	lcOnError=STRTRAN(STRTRAN(STRTRAN(lcOnError,"ERROR()","nError"), ;
			"PROGRAM()","cMethod"),"LINENO()","nLine")
	&lcOnError
	RETURN
ENDIF
lcErrorMsg=MESSAGE()+CHR(13)+CHR(13)+this.Name+CHR(13)+ ;
		"Error:           "+ALLTRIM(STR(nError))+CHR(13)+ ;
		"Method:       "+LOWER(ALLTRIM(cMethod))
lcCodeLineMsg=MESSAGE(1)
IF BETWEEN(nLine,1,100000) AND NOT lcCodeLineMsg="..."
	lcErrorMsg=lcErrorMsg+CHR(13)+"Line:            "+ALLTRIM(STR(nLine))
	IF NOT EMPTY(lcCodeLineMsg)
		lcErrorMsg=lcErrorMsg+CHR(13)+CHR(13)+lcCodeLineMsg
	ENDIF
ENDIF
WAIT CLEAR
MESSAGEBOX(lcErrorMsg,16,_screen.Caption)
ERROR nError

ENDPROC
PROCEDURE Init
IF this.lSetHost
	this.SetHost
ENDIF
IF this.lAutoSetObjectRefs AND NOT this.SetObjectRefs(this)
	RETURN .F.
ENDIF

ENDPROC
PROCEDURE Destroy
IF this.lRelease
	RETURN .F.
ENDIF
this.lRelease=.T.
this.ReleaseObjRefs
this.oHost=.NULL.

ENDPROC
icversion Version property.
builder Bulder property.
builderx BuilderX property.
lautobuilder Specifies if custom FFC builder is automatically launched when instance is added to a container in design mode, even if the control pallette Builder Lock button is off.
nobjectrefcount Returns the number of items in the object reference array property aObjectRefs.
ohost Object reference to host object (generally THISFORM), which is automatically set on Init if lSetHost is .T.
lautosetobjectrefs Specifiies if the SetObjectRefs method is automatically called from the Init method.
vresult Variant result property for internal usage when calling programs in PRGs and a return file is required.
lrelease Indicates the object's Release method has been executed and the object is in the process of being released from memory.
csetobjrefprogram Program to be called when when setting an object references via the SetObjectRef method.
lignoreerrors Specifies if the default FFC error handler is executed when an error occurs.
lsethost Specifies if the SetHost method is automatically called from the Init method to set the oHost property to THISFORM.
ninstances Number of instances.
^aobjectrefs[1,3] Array of object references properties.
*release Releases object from memory.
*setobjectref Set object reference to specific property.
*setobjectrefs Place holder method for listing SetObjectRef method calls.
*releaseobjrefs Releases all object references of aObjectRefs array.
*nobjectrefcount_access Access method for nObjectRefCount property.
*nobjectrefcount_assign Assign method for nObjectRefCount property.
*sethost Set oHost property to form reference object.
*newinstance Returns new instance of object.
*addtoproject Dummy code for adding files to project.
*ninstances_access Access method for nInstances property.
*ninstances_assign Assign method for nInstances property.

]PROCEDURE release
LOCAL lcBaseClass

IF this.lRelease
	NODEFAULT
	RETURN .F.
ENDIF
this.lRelease=.T.
lcBaseClass=LOWER(this.BaseClass)
this.oHost=.NULL.
this.ReleaseObjRefs
IF NOT INLIST(lcBaseClass+" ","form ","formset ","toolbar ")
	RELEASE this
ENDIF

ENDPROC
PROCEDURE setobjectref
LPARAMETERS tcName,tvClass,tvClassLibrary
LOCAL lvResult

this.vResult=.T.
DO (this.cSetObjRefProgram) WITH (this),(tcName),(tvClass),(tvClassLibrary)
lvResult=this.vResult
this.vResult=.T.
RETURN lvResult

ENDPROC
PROCEDURE setobjectrefs
LPARAMETERS toObject

RETURN

ENDPROC
PROCEDURE releaseobjrefs
LOCAL lcName,oObject,lnCount

IF this.nObjectRefCount=0
	RETURN
ENDIF
FOR lnCount = this.nObjectRefCount TO 1 STEP -1
	lcName=this.aObjectRefs[lnCount,1]
	IF EMPTY(lcName) OR NOT PEMSTATUS(this,lcName,5) OR TYPE("this."+lcName)#"O"
		LOOP
	ENDIF
	oObject=this.&lcName
	IF ISNULL(oObject)
		LOOP
	ENDIF
	IF TYPE("oObject")=="O" AND NOT ISNULL(oObject) AND PEMSTATUS(oObject,"Release",5)
		oObject.Release
	ENDIF
	IF NOT ISNULL(oObject) AND PEMSTATUS(oObject,"oHost",5)
		oObject.oHost=.NULL.
	ENDIF
	this.&lcName=.NULL.
	oObject=.NULL.
ENDFOR
DIMENSION this.aObjectRefs[1,3]
this.aObjectRefs=""

ENDPROC
PROCEDURE nobjectrefcount_access
LOCAL lnObjectRefCount

lnObjectRefCount=ALEN(this.aObjectRefs,1)
IF lnObjectRefCount=1 AND EMPTY(this.aObjectRefs[1])
	lnObjectRefCount=0
ENDIF
RETURN lnObjectRefCount

ENDPROC
PROCEDURE nobjectrefcount_assign
LPARAMETERS m.vNewVal

ERROR 1743

ENDPROC
PROCEDURE sethost
this.oHost=IIF(TYPE("thisform")=="O",thisform,.NULL.)

ENDPROC
PROCEDURE newinstance
LPARAMETERS tnDataSessionID
LOCAL oNewObject,lnLastDataSessionID

lnLastDataSessionID=SET("DATASESSION")
IF TYPE("tnDataSessionID")=="N" AND tnDataSessionID>=1
	SET DATASESSION TO tnDataSessionID
ENDIF
oNewObject=NEWOBJECT(this.Class,this.ClassLibrary)
SET DATASESSION TO (lnLastDataSessionID)
RETURN oNewObject

ENDPROC
PROCEDURE addtoproject
*-- Dummy code for adding files to project.
RETURN

DO SetObjRf.prg

ENDPROC
PROCEDURE ninstances_access
LOCAL laInstances[1]
	
RETURN AINSTANCE(laInstances,this.Class)

ENDPROC
PROCEDURE ninstances_assign
LPARAMETERS vNewVal

ERROR 1743

ENDPROC
PROCEDURE Error
LPARAMETERS nError, cMethod, nLine
LOCAL lcOnError,lcErrorMsg,lcCodeLineMsg

IF this.lIgnoreErrors OR _vfp.StartMode>0
	RETURN .F.
ENDIF
lcOnError=UPPER(ALLTRIM(ON("ERROR")))
IF NOT EMPTY(lcOnError)
	lcOnError=STRTRAN(STRTRAN(STRTRAN(lcOnError,"ERROR()","nError"), ;
			"PROGRAM()","cMethod"),"LINENO()","nLine")
	&lcOnError
	RETURN
ENDIF
lcErrorMsg=MESSAGE()+CHR(13)+CHR(13)+this.Name+CHR(13)+ ;
		"Error:           "+ALLTRIM(STR(nError))+CHR(13)+ ;
		"Method:       "+LOWER(ALLTRIM(cMethod))
lcCodeLineMsg=MESSAGE(1)
IF BETWEEN(nLine,1,100000) AND NOT lcCodeLineMsg="..."
	lcErrorMsg=lcErrorMsg+CHR(13)+"Line:            "+ALLTRIM(STR(nLine))
	IF NOT EMPTY(lcCodeLineMsg)
		lcErrorMsg=lcErrorMsg+CHR(13)+CHR(13)+lcCodeLineMsg
	ENDIF
ENDIF
WAIT CLEAR
MESSAGEBOX(lcErrorMsg,16,_screen.Caption)
ERROR nError

ENDPROC
PROCEDURE Init
IF this.lSetHost
	this.SetHost
ENDIF
IF this.lAutoSetObjectRefs AND NOT this.SetObjectRefs(this)
	RETURN .F.
ENDIF

ENDPROC
PROCEDURE Destroy
IF this.lRelease
	RETURN .F.
ENDIF
this.lRelease=.T.
this.ReleaseObjRefs
this.oHost=.NULL.

ENDPROC
icversion Version property.
builder Bulder property.
builderx BuilderX property.
lautobuilder Specifies if custom FFC builder is automatically launched when instance is added to a container in design mode, even if the control pallette Builder Lock button is off.
nobjectrefcount Returns the number of items in the object reference array property aObjectRefs.
ohost Object reference to host object (generally THISFORM), which is automatically set on Init if lSetHost is .T.
lautosetobjectrefs Specifiies if the SetObjectRefs method is automatically called from the Init method.
vresult Variant result property for internal usage when calling programs in PRGs and a return file is required.
lrelease Indicates the object's Release method has been executed and the object is in the process of being released from memory.
csetobjrefprogram Program to be called when when setting an object references via the SetObjectRef method.
lignoreerrors Specifies if the default FFC error handler is executed when an error occurs.
lsethost Specifies if the SetHost method is automatically called from the Init method to set the oHost property to THISFORM.
ninstances Number of instances.
^aobjectrefs[1,3] Array of object references properties.
*release Releases object from memory.
*setobjectref Set object reference to specific property.
*setobjectrefs Place holder method for listing SetObjectRef method calls.
*releaseobjrefs Releases all object references of aObjectRefs array.
*nobjectrefcount_access Access method for nObjectRefCount property.
*nobjectrefcount_assign Assign method for nObjectRefCount property.
*sethost Set oHost property to form reference object.
*newinstance Returns new instance of object.
*addtoproject Dummy code for adding files to project.
*ninstances_access Access method for nInstances property.
*ninstances_assign Assign method for nInstances property.

]PROCEDURE release
LOCAL lcBaseClass

IF this.lRelease
	NODEFAULT
	RETURN .F.
ENDIF
this.lRelease=.T.
lcBaseClass=LOWER(this.BaseClass)
this.oHost=.NULL.
this.ReleaseObjRefs
IF NOT INLIST(lcBaseClass+" ","form ","formset ","toolbar ")
	RELEASE this
ENDIF

ENDPROC
PROCEDURE setobjectref
LPARAMETERS tcName,tvClass,tvClassLibrary
LOCAL lvResult

this.vResult=.T.
DO (this.cSetObjRefProgram) WITH (this),(tcName),(tvClass),(tvClassLibrary)
lvResult=this.vResult
this.vResult=.T.
RETURN lvResult

ENDPROC
PROCEDURE setobjectrefs
LPARAMETERS toObject

RETURN

ENDPROC
PROCEDURE releaseobjrefs
LOCAL lcName,oObject,lnCount

IF this.nObjectRefCount=0
	RETURN
ENDIF
FOR lnCount = this.nObjectRefCount TO 1 STEP -1
	lcName=this.aObjectRefs[lnCount,1]
	IF EMPTY(lcName) OR NOT PEMSTATUS(this,lcName,5) OR TYPE("this."+lcName)#"O"
		LOOP
	ENDIF
	oObject=this.&lcName
	IF ISNULL(oObject)
		LOOP
	ENDIF
	IF TYPE("oObject")=="O" AND NOT ISNULL(oObject) AND PEMSTATUS(oObject,"Release",5)
		oObject.Release
	ENDIF
	IF NOT ISNULL(oObject) AND PEMSTATUS(oObject,"oHost",5)
		oObject.oHost=.NULL.
	ENDIF
	this.&lcName=.NULL.
	oObject=.NULL.
ENDFOR
DIMENSION this.aObjectRefs[1,3]
this.aObjectRefs=""

ENDPROC
PROCEDURE nobjectrefcount_access
LOCAL lnObjectRefCount

lnObjectRefCount=ALEN(this.aObjectRefs,1)
IF lnObjectRefCount=1 AND EMPTY(this.aObjectRefs[1])
	lnObjectRefCount=0
ENDIF
RETURN lnObjectRefCount

ENDPROC
PROCEDURE nobjectrefcount_assign
LPARAMETERS m.vNewVal

ERROR 1743

ENDPROC
PROCEDURE sethost
this.oHost=IIF(TYPE("thisform")=="O",thisform,.NULL.)

ENDPROC
PROCEDURE newinstance
LPARAMETERS tnDataSessionID
LOCAL oNewObject,lnLastDataSessionID

lnLastDataSessionID=SET("DATASESSION")
IF TYPE("tnDataSessionID")=="N" AND tnDataSessionID>=1
	SET DATASESSION TO tnDataSessionID
ENDIF
oNewObject=NEWOBJECT(this.Class,this.ClassLibrary)
SET DATASESSION TO (lnLastDataSessionID)
RETURN oNewObject

ENDPROC
PROCEDURE addtoproject
*-- Dummy code for adding files to project.
RETURN

DO SetObjRf.prg

ENDPROC
PROCEDURE ninstances_access
LOCAL laInstances[1]
	
RETURN AINSTANCE(laInstances,this.Class)

ENDPROC
PROCEDURE ninstances_assign
LPARAMETERS vNewVal

ERROR 1743

ENDPROC
PROCEDURE Error
LPARAMETERS nError, cMethod, nLine
LOCAL lcOnError,lcErrorMsg,lcCodeLineMsg

IF this.lIgnoreErrors OR _vfp.StartMode>0
	RETURN .F.
ENDIF
lcOnError=UPPER(ALLTRIM(ON("ERROR")))
IF NOT EMPTY(lcOnError)
	lcOnError=STRTRAN(STRTRAN(STRTRAN(lcOnError,"ERROR()","nError"), ;
			"PROGRAM()","cMethod"),"LINENO()","nLine")
	&lcOnError
	RETURN
ENDIF
lcErrorMsg=MESSAGE()+CHR(13)+CHR(13)+this.Name+CHR(13)+ ;
		"Error:           "+ALLTRIM(STR(nError))+CHR(13)+ ;
		"Method:       "+LOWER(ALLTRIM(cMethod))
lcCodeLineMsg=MESSAGE(1)
IF BETWEEN(nLine,1,100000) AND NOT lcCodeLineMsg="..."
	lcErrorMsg=lcErrorMsg+CHR(13)+"Line:            "+ALLTRIM(STR(nLine))
	IF NOT EMPTY(lcCodeLineMsg)
		lcErrorMsg=lcErrorMsg+CHR(13)+CHR(13)+lcCodeLineMsg
	ENDIF
ENDIF
WAIT CLEAR
MESSAGEBOX(lcErrorMsg,16,_screen.Caption)
ERROR nError

ENDPROC
PROCEDURE Init
IF this.lSetHost
	this.SetHost
ENDIF
IF this.lAutoSetObjectRefs AND NOT this.SetObjectRefs(this)
	RETURN .F.
ENDIF

ENDPROC
PROCEDURE Destroy
IF this.lRelease
	RETURN .F.
ENDIF
this.lRelease=.T.
this.ReleaseObjRefs
this.oHost=.NULL.

ENDPROC
icversion Version property.
builder Bulder property.
builderx BuilderX property.
lautobuilder Specifies if custom FFC builder is automatically launched when instance is added to a container in design mode, even if the control pallette Builder Lock button is off.
nobjectrefcount Returns the number of items in the object reference array property aObjectRefs.
ohost Object reference to host object (generally THISFORM), which is automatically set on Init if lSetHost is .T.
lautosetobjectrefs Specifiies if the SetObjectRefs method is automatically called from the Init method.
vresult Variant result property for internal usage when calling programs in PRGs and a return file is required.
lrelease Indicates the object's Release method has been executed and the object is in the process of being released from memory.
csetobjrefprogram Program to be called when when setting an object references via the SetObjectRef method.
lignoreerrors Specifies if the default FFC error handler is executed when an error occurs.
lsethost Specifies if the SetHost method is automatically called from the Init method to set the oHost property to THISFORM.
ninstances Number of instances.
^aobjectrefs[1,3] Array of object references properties.
*release Releases object from memory.
*setobjectref Set object reference to specific property.
*setobjectrefs Place holder method for listing SetObjectRef method calls.
*releaseobjrefs Releases all object references of aObjectRefs array.
*nobjectrefcount_access Access method for nObjectRefCount property.
*nobjectrefcount_assign Assign method for nObjectRefCount property.
*sethost Set oHost property to form reference object.
*newinstance Returns new instance of object.
*addtoproject Dummy code for adding files to project.
*ninstances_access Access method for nInstances property.
*ninstances_assign Assign method for nInstances property.
icversion Version property.
builder Bulder property.
builderx BuilderX property.
lautobuilder Specifies if custom FFC builder is automatically launched when instance is added to a container in design mode, even if the control pallette Builder Lock button is off.
nobjectrefcount Returns the number of items in the object reference array property aObjectRefs.
ohost Object reference to host object (generally THISFORM), which is automatically set on Init if lSetHost is .T.
lautosetobjectrefs Specifiies if the SetObjectRefs method is automatically called from the Init method.
vresult Variant result property for internal usage when calling programs in PRGs and a return file is required.
lrelease Indicates the object's Release method has been executed and the object is in the process of being released from memory.
csetobjrefprogram Program to be called when when setting an object references via the SetObjectRef method.
lignoreerrors Specifies if the default FFC error handler is executed when an error occurs.
lsethost Specifies if the SetHost method is automatically called from the Init method to set the oHost property to THISFORM.
ninstances Number of instances.
^aobjectrefs[1,3] Array of object references properties.
*release Releases object from memory.
*setobjectref Set object reference to specific property.
*setobjectrefs Place holder method for listing SetObjectRef method calls.
*releaseobjrefs Releases all object references of aObjectRefs array.
*nobjectrefcount_access Access method for nObjectRefCount property.
*nobjectrefcount_assign Assign method for nObjectRefCount property.
*sethost Set oHost property to form reference object.
*newinstance Returns new instance of object.
*addtoproject Dummy code for adding files to project.
*ninstances_access Access method for nInstances property.
*ninstances_assign Assign method for nInstances property.

�� ���0%�	�v�
�U����%�����"���B�-���T���a��T��C��@��T����
����3%�C�� �form �formset �toolbar �
����<���ULCBASECLASSTHISLRELEASE	BASECLASSOHOSTRELEASEOBJREFSw��������T���a��)�����������������T������T���a��	B����UTCNAMETVCLASSTVCLASSLIBRARYLVRESULTTHISVRESULTCSETOBJREFPROGRAM���B�UTOOBJECT������%������'�B��!������(���������u�T��C������7%�C���C����h
�C�this.�b�O����.��oObject=this.&lcName
%�C�����.��<%�C�oObjectb�O�C��
	�C��Release��h	���
�����%%�C��
�C��oHost��h	��O�T�����this.&lcName=.NULL.
T��������������T������ULCNAMEOOBJECTLNCOUNTTHISNOBJECTREFCOUNTAOBJECTREFSRELEASEOHOSTZ���T��C�����!%����
CC����	��J�
T������	B����ULNOBJECTREFCOUNTTHISAOBJECTREFS	��
��
������UVNEWVAL.+T���CC�thisformb�O����6��UTHISOHOSTTHISFORM��������T��C�DATASESSIONv��.%�C�tnDataSessionIDb�N���	��e�G�(�����T��C�������G�(����	B����UTNDATASESSIONID
ONEWOBJECTLNLASTDATASESSIONIDTHISCLASSCLASSLIBRARYB��SetObjRf.prg�USETOBJRFPRG$
������B�C������ULAINSTANCESTHISCLASS���
������UVNEWVAL�����������%����
�C����B�B�-���T��CCC�ERROR��f��%�C��
����OT��CCC��ERROR()�nError��	PROGRAM()�cMethod��LINENO()�nLine���&lcOnError
B��bT��CEC�
 C�
 ��	C�
 �Error:           CC�Z�C�
 �Method:       CC��@��T��C�E��'%�C���������...
	����0T���C�
 �Line:            CC�Z���%�C��
����T���C�
 C�
 �����R���C���9�
�x��	�����UNERRORCMETHODNLINE	LCONERROR
LCERRORMSG
LCCODELINEMSGTHIS
LIGNOREERRORS	STARTMODENAMECAPTIONL%������
����� %����
C���
	��E�B�-���UTHISLSETHOSTSETHOSTLAUTOSETOBJECTREFS
SETOBJECTREFSD%������B�-���T���a��
����T����UTHISLRELEASERELEASEOBJREFSOHOSTrelease,��setobjectref��
setobjectrefs���releaseobjrefs���nobjectrefcount_access���nobjectrefcount_assigni��sethost���newinstance���addtoproject���ninstances_access���ninstances_assign/��ErrorP��Init���DestroyC	��1qAqA�!��1qA3�q����3qB3�BAA�qAA��AA��AQ�Aq�Aa3qR�A�3��3�3q����A���3B23�B3q�3���qA���AA#�q�AAQA�3�AqA3qA���2/)In�"2�>9�H<&]N>�RH�,_KT�fN��lQ�?rhZ��o�R
�)�icversion Version property.
builder Bulder property.
builderx BuilderX property.
lautobuilder Specifies if custom FFC builder is automatically launched when instance is added to a container in design mode, even if the control pallette Builder Lock button is off.
nobjectrefcount Returns the number of items in the object reference array property aObjectRefs.
ohost Object reference to host object (generally THISFORM), which is automatically set on Init if lSetHost is .T.
lautosetobjectrefs Specifiies if the SetObjectRefs method is automatically called from the Init method.
vresult Variant result property for internal usage when calling programs in PRGs and a return file is required.
lrelease Indicates the object's Release method has been executed and the object is in the process of being released from memory.
csetobjrefprogram Program to be called when when setting an object references via the SetObjectRef method.
lignoreerrors Specifies if the default FFC error handler is executed when an error occurs.
lsethost Specifies if the SetHost method is automatically called from the Init method to set the oHost property to THISFORM.
ninstances Number of instances.
^aobjectrefs[1,3] Array of object references properties.
*release Releases object from memory.
*setobjectref Set object reference to specific property.
*setobjectrefs Place holder method for listing SetObjectRef method calls.
*releaseobjrefs Releases all object references of aObjectRefs array.
*nobjectrefcount_access Access method for nObjectRefCount property.
*nobjectrefcount_assign Assign method for nObjectRefCount property.
*sethost Set oHost property to form reference object.
*newinstance Returns new instance of object.
*addtoproject Dummy code for adding files to project.
*ninstances_access Access method for nInstances property.
*ninstances_assign Assign method for nInstances property.

]PROCEDURE release
LOCAL lcBaseClass

IF this.lRelease
	NODEFAULT
	RETURN .F.
ENDIF
this.lRelease=.T.
lcBaseClass=LOWER(this.BaseClass)
this.oHost=.NULL.
this.ReleaseObjRefs
IF NOT INLIST(lcBaseClass+" ","form ","formset ","toolbar ")
	RELEASE this
ENDIF

ENDPROC
PROCEDURE setobjectref
LPARAMETERS tcName,tvClass,tvClassLibrary
LOCAL lvResult

this.vResult=.T.
DO (this.cSetObjRefProgram) WITH (this),(tcName),(tvClass),(tvClassLibrary)
lvResult=this.vResult
this.vResult=.T.
RETURN lvResult

ENDPROC
PROCEDURE setobjectrefs
LPARAMETERS toObject

RETURN

ENDPROC
PROCEDURE releaseobjrefs
LOCAL lcName,oObject,lnCount

IF this.nObjectRefCount=0
	RETURN
ENDIF
FOR lnCount = this.nObjectRefCount TO 1 STEP -1
	lcName=this.aObjectRefs[lnCount,1]
	IF EMPTY(lcName) OR NOT PEMSTATUS(this,lcName,5) OR TYPE("this."+lcName)#"O"
		LOOP
	ENDIF
	oObject=this.&lcName
	IF ISNULL(oObject)
		LOOP
	ENDIF
	IF TYPE("oObject")=="O" AND NOT ISNULL(oObject) AND PEMSTATUS(oObject,"Release",5)
		oObject.Release
	ENDIF
	IF NOT ISNULL(oObject) AND PEMSTATUS(oObject,"oHost",5)
		oObject.oHost=.NULL.
	ENDIF
	this.&lcName=.NULL.
	oObject=.NULL.
ENDFOR
DIMENSION this.aObjectRefs[1,3]
this.aObjectRefs=""

ENDPROC
PROCEDURE nobjectrefcount_access
LOCAL lnObjectRefCount

lnObjectRefCount=ALEN(this.aObjectRefs,1)
IF lnObjectRefCount=1 AND EMPTY(this.aObjectRefs[1])
	lnObjectRefCount=0
ENDIF
RETURN lnObjectRefCount

ENDPROC
PROCEDURE nobjectrefcount_assign
LPARAMETERS m.vNewVal

ERROR 1743

ENDPROC
PROCEDURE sethost
this.oHost=IIF(TYPE("thisform")=="O",thisform,.NULL.)

ENDPROC
PROCEDURE newinstance
LPARAMETERS tnDataSessionID
LOCAL oNewObject,lnLastDataSessionID

lnLastDataSessionID=SET("DATASESSION")
IF TYPE("tnDataSessionID")=="N" AND tnDataSessionID>=1
	SET DATASESSION TO tnDataSessionID
ENDIF
oNewObject=NEWOBJECT(this.Class,this.ClassLibrary)
SET DATASESSION TO (lnLastDataSessionID)
RETURN oNewObject

ENDPROC
PROCEDURE addtoproject
*-- Dummy code for adding files to project.
RETURN

DO SetObjRf.prg

ENDPROC
PROCEDURE ninstances_access
LOCAL laInstances[1]
	
RETURN AINSTANCE(laInstances,this.Class)

ENDPROC
PROCEDURE ninstances_assign
LPARAMETERS vNewVal

ERROR 1743

ENDPROC
PROCEDURE Error
LPARAMETERS nError, cMethod, nLine
LOCAL lcOnError,lcErrorMsg,lcCodeLineMsg

IF this.lIgnoreErrors OR _vfp.StartMode>0
	RETURN .F.
ENDIF
lcOnError=UPPER(ALLTRIM(ON("ERROR")))
IF NOT EMPTY(lcOnError)
	lcOnError=STRTRAN(STRTRAN(STRTRAN(lcOnError,"ERROR()","nError"), ;
			"PROGRAM()","cMethod"),"LINENO()","nLine")
	&lcOnError
	RETURN
ENDIF
lcErrorMsg=MESSAGE()+CHR(13)+CHR(13)+this.Name+CHR(13)+ ;
		"Error:           "+ALLTRIM(STR(nError))+CHR(13)+ ;
		"Method:       "+LOWER(ALLTRIM(cMethod))
lcCodeLineMsg=MESSAGE(1)
IF BETWEEN(nLine,1,100000) AND NOT lcCodeLineMsg="..."
	lcErrorMsg=lcErrorMsg+CHR(13)+"Line:            "+ALLTRIM(STR(nLine))
	IF NOT EMPTY(lcCodeLineMsg)
		lcErrorMsg=lcErrorMsg+CHR(13)+CHR(13)+lcCodeLineMsg
	ENDIF
ENDIF
WAIT CLEAR
MESSAGEBOX(lcErrorMsg,16,_screen.Caption)
ERROR nError

ENDPROC
PROCEDURE Init
IF this.lSetHost
	this.SetHost
ENDIF
IF this.lAutoSetObjectRefs AND NOT this.SetObjectRefs(this)
	RETURN .F.
ENDIF

ENDPROC
PROCEDURE Destroy
IF this.lRelease
	RETURN .F.
ENDIF
this.lRelease=.T.
this.ReleaseObjRefs
this.oHost=.NULL.

ENDPROC
icversion Version property.
builder Bulder property.
builderx BuilderX property.
lautobuilder Specifies if custom FFC builder is automatically launched when instance is added to a container in design mode, even if the control pallette Builder Lock button is off.
nobjectrefcount Returns the number of items in the object reference array property aObjectRefs.
ohost Object reference to host object (generally THISFORM), which is automatically set on Init if lSetHost is .T.
lautosetobjectrefs Specifiies if the SetObjectRefs method is automatically called from the Init method.
vresult Variant result property for internal usage when calling programs in PRGs and a return file is required.
lrelease Indicates the object's Release method has been executed and the object is in the process of being released from memory.
csetobjrefprogram Program to be called when when setting an object references via the SetObjectRef method.
lignoreerrors Specifies if the default FFC error handler is executed when an error occurs.
lsethost Specifies if the SetHost method is automatically called from the Init method to set the oHost property to THISFORM.
ninstances Number of instances.
^aobjectrefs[1,3] Array of object references properties.
*release Releases object from memory.
*setobjectref Set object reference to specific property.
*setobjectrefs Place holder method for listing SetObjectRef method calls.
*releaseobjrefs Releases all object references of aObjectRefs array.
*nobjectrefcount_access Access method for nObjectRefCount property.
*nobjectrefcount_assign Assign method for nObjectRefCount property.
*sethost Set oHost property to form reference object.
*newinstance Returns new instance of object.
*addtoproject Dummy code for adding files to project.
*ninstances_access Access method for nInstances property.
*ninstances_assign Assign method for nInstances property.

]PROCEDURE release
LOCAL lcBaseClass

IF this.lRelease
	NODEFAULT
	RETURN .F.
ENDIF
this.lRelease=.T.
lcBaseClass=LOWER(this.BaseClass)
this.oHost=.NULL.
this.ReleaseObjRefs
IF NOT INLIST(lcBaseClass+" ","form ","formset ","toolbar ")
	RELEASE this
ENDIF

ENDPROC
PROCEDURE setobjectref
LPARAMETERS tcName,tvClass,tvClassLibrary
LOCAL lvResult

this.vResult=.T.
DO (this.cSetObjRefProgram) WITH (this),(tcName),(tvClass),(tvClassLibrary)
lvResult=this.vResult
this.vResult=.T.
RETURN lvResult

ENDPROC
PROCEDURE setobjectrefs
LPARAMETERS toObject

RETURN

ENDPROC
PROCEDURE releaseobjrefs
LOCAL lcName,oObject,lnCount

IF this.nObjectRefCount=0
	RETURN
ENDIF
FOR lnCount = this.nObjectRefCount TO 1 STEP -1
	lcName=this.aObjectRefs[lnCount,1]
	IF EMPTY(lcName) OR NOT PEMSTATUS(this,lcName,5) OR TYPE("this."+lcName)#"O"
		LOOP
	ENDIF
	oObject=this.&lcName
	IF ISNULL(oObject)
		LOOP
	ENDIF
	IF TYPE("oObject")=="O" AND NOT ISNULL(oObject) AND PEMSTATUS(oObject,"Release",5)
		oObject.Release
	ENDIF
	IF NOT ISNULL(oObject) AND PEMSTATUS(oObject,"oHost",5)
		oObject.oHost=.NULL.
	ENDIF
	this.&lcName=.NULL.
	oObject=.NULL.
ENDFOR
DIMENSION this.aObjectRefs[1,3]
this.aObjectRefs=""

ENDPROC
PROCEDURE nobjectrefcount_access
LOCAL lnObjectRefCount

lnObjectRefCount=ALEN(this.aObjectRefs,1)
IF lnObjectRefCount=1 AND EMPTY(this.aObjectRefs[1])
	lnObjectRefCount=0
ENDIF
RETURN lnObjectRefCount

ENDPROC
PROCEDURE nobjectrefcount_assign
LPARAMETERS m.vNewVal

ERROR 1743

ENDPROC
PROCEDURE sethost
this.oHost=IIF(TYPE("thisform")=="O",thisform,.NULL.)

ENDPROC
PROCEDURE newinstance
LPARAMETERS tnDataSessionID
LOCAL oNewObject,lnLastDataSessionID

lnLastDataSessionID=SET("DATASESSION")
IF TYPE("tnDataSessionID")=="N" AND tnDataSessionID>=1
	SET DATASESSION TO tnDataSessionID
ENDIF
oNewObject=NEWOBJECT(this.Class,this.ClassLibrary)
SET DATASESSION TO (lnLastDataSessionID)
RETURN oNewObject

ENDPROC
PROCEDURE addtoproject
*-- Dummy code for adding files to project.
RETURN

DO SetObjRf.prg

ENDPROC
PROCEDURE ninstances_access
LOCAL laInstances[1]
	
RETURN AINSTANCE(laInstances,this.Class)

ENDPROC
PROCEDURE ninstances_assign
LPARAMETERS vNewVal

ERROR 1743

ENDPROC
PROCEDURE Error
LPARAMETERS nError, cMethod, nLine
LOCAL lcOnError,lcErrorMsg,lcCodeLineMsg

IF this.lIgnoreErrors OR _vfp.StartMode>0
	RETURN .F.
ENDIF
lcOnError=UPPER(ALLTRIM(ON("ERROR")))
IF NOT EMPTY(lcOnError)
	lcOnError=STRTRAN(STRTRAN(STRTRAN(lcOnError,"ERROR()","nError"), ;
			"PROGRAM()","cMethod"),"LINENO()","nLine")
	&lcOnError
	RETURN
ENDIF
lcErrorMsg=MESSAGE()+CHR(13)+CHR(13)+this.Name+CHR(13)+ ;
		"Error:           "+ALLTRIM(STR(nError))+CHR(13)+ ;
		"Method:       "+LOWER(ALLTRIM(cMethod))
lcCodeLineMsg=MESSAGE(1)
IF BETWEEN(nLine,1,100000) AND NOT lcCodeLineMsg="..."
	lcErrorMsg=lcErrorMsg+CHR(13)+"Line:            "+ALLTRIM(STR(nLine))
	IF NOT EMPTY(lcCodeLineMsg)
		lcErrorMsg=lcErrorMsg+CHR(13)+CHR(13)+lcCodeLineMsg
	ENDIF
ENDIF
WAIT CLEAR
MESSAGEBOX(lcErrorMsg,16,_screen.Caption)
ERROR nError

ENDPROC
PROCEDURE Init
IF this.lSetHost
	this.SetHost
ENDIF
IF this.lAutoSetObjectRefs AND NOT this.SetObjectRefs(this)
	RETURN .F.
ENDIF

ENDPROC
PROCEDURE Destroy
IF this.lRelease
	RETURN .F.
ENDIF
this.lRelease=.T.
this.ReleaseObjRefs
this.oHost=.NULL.

ENDPROC

]PROCEDURE release
LOCAL lcBaseClass

IF this.lRelease
	NODEFAULT
	RETURN .F.
ENDIF
this.lRelease=.T.
lcBaseClass=LOWER(this.BaseClass)
this.oHost=.NULL.
this.ReleaseObjRefs
IF NOT INLIST(lcBaseClass+" ","form ","formset ","toolbar ")
	RELEASE this
ENDIF

ENDPROC
PROCEDURE setobjectref
LPARAMETERS tcName,tvClass,tvClassLibrary
LOCAL lvResult

this.vResult=.T.
DO (this.cSetObjRefProgram) WITH (this),(tcName),(tvClass),(tvClassLibrary)
lvResult=this.vResult
this.vResult=.T.
RETURN lvResult

ENDPROC
PROCEDURE setobjectrefs
LPARAMETERS toObject

RETURN

ENDPROC
PROCEDURE releaseobjrefs
LOCAL lcName,oObject,lnCount

IF this.nObjectRefCount=0
	RETURN
ENDIF
FOR lnCount = this.nObjectRefCount TO 1 STEP -1
	lcName=this.aObjectRefs[lnCount,1]
	IF EMPTY(lcName) OR NOT PEMSTATUS(this,lcName,5) OR TYPE("this."+lcName)#"O"
		LOOP
	ENDIF
	oObject=this.&lcName
	IF ISNULL(oObject)
		LOOP
	ENDIF
	IF TYPE("oObject")=="O" AND NOT ISNULL(oObject) AND PEMSTATUS(oObject,"Release",5)
		oObject.Release
	ENDIF
	IF NOT ISNULL(oObject) AND PEMSTATUS(oObject,"oHost",5)
		oObject.oHost=.NULL.
	ENDIF
	this.&lcName=.NULL.
	oObject=.NULL.
ENDFOR
DIMENSION this.aObjectRefs[1,3]
this.aObjectRefs=""

ENDPROC
PROCEDURE nobjectrefcount_access
LOCAL lnObjectRefCount

lnObjectRefCount=ALEN(this.aObjectRefs,1)
IF lnObjectRefCount=1 AND EMPTY(this.aObjectRefs[1])
	lnObjectRefCount=0
ENDIF
RETURN lnObjectRefCount

ENDPROC
PROCEDURE nobjectrefcount_assign
LPARAMETERS m.vNewVal

ERROR 1743

ENDPROC
PROCEDURE sethost
this.oHost=IIF(TYPE("thisform")=="O",thisform,.NULL.)

ENDPROC
PROCEDURE newinstance
LPARAMETERS tnDataSessionID
LOCAL oNewObject,lnLastDataSessionID

lnLastDataSessionID=SET("DATASESSION")
IF TYPE("tnDataSessionID")=="N" AND tnDataSessionID>=1
	SET DATASESSION TO tnDataSessionID
ENDIF
oNewObject=NEWOBJECT(this.Class,this.ClassLibrary)
SET DATASESSION TO (lnLastDataSessionID)
RETURN oNewObject

ENDPROC
PROCEDURE addtoproject
*-- Dummy code for adding files to project.
RETURN

DO SetObjRf.prg

ENDPROC
PROCEDURE ninstances_access
LOCAL laInstances[1]
	
RETURN AINSTANCE(laInstances,this.Class)

ENDPROC
PROCEDURE ninstances_assign
LPARAMETERS vNewVal

ERROR 1743

ENDPROC
PROCEDURE Error
LPARAMETERS nError, cMethod, nLine
LOCAL lcOnError,lcErrorMsg,lcCodeLineMsg

IF this.lIgnoreErrors OR _vfp.StartMode>0
	RETURN .F.
ENDIF
lcOnError=UPPER(ALLTRIM(ON("ERROR")))
IF NOT EMPTY(lcOnError)
	lcOnError=STRTRAN(STRTRAN(STRTRAN(lcOnError,"ERROR()","nError"), ;
			"PROGRAM()","cMethod"),"LINENO()","nLine")
	&lcOnError
	RETURN
ENDIF
lcErrorMsg=MESSAGE()+CHR(13)+CHR(13)+this.Name+CHR(13)+ ;
		"Error:           "+ALLTRIM(STR(nError))+CHR(13)+ ;
		"Method:       "+LOWER(ALLTRIM(cMethod))
lcCodeLineMsg=MESSAGE(1)
IF BETWEEN(nLine,1,100000) AND NOT lcCodeLineMsg="..."
	lcErrorMsg=lcErrorMsg+CHR(13)+"Line:            "+ALLTRIM(STR(nLine))
	IF NOT EMPTY(lcCodeLineMsg)
		lcErrorMsg=lcErrorMsg+CHR(13)+CHR(13)+lcCodeLineMsg
	ENDIF
ENDIF
WAIT CLEAR
MESSAGEBOX(lcErrorMsg,16,_screen.Caption)
ERROR nError

ENDPROC
PROCEDURE Init
IF this.lSetHost
	this.SetHost
ENDIF
IF this.lAutoSetObjectRefs AND NOT this.SetObjectRefs(this)
	RETURN .F.
ENDIF

ENDPROC
PROCEDURE Destroy
IF this.lRelease
	RETURN .F.
ENDIF
this.lRelease=.T.
this.ReleaseObjRefs
this.oHost=.NULL.

ENDPROC

]PROCEDURE release
LOCAL lcBaseClass

IF this.lRelease
	NODEFAULT
	RETURN .F.
ENDIF
this.lRelease=.T.
lcBaseClass=LOWER(this.BaseClass)
this.oHost=.NULL.
this.ReleaseObjRefs
IF NOT INLIST(lcBaseClass+" ","form ","formset ","toolbar ")
	RELEASE this
ENDIF

ENDPROC
PROCEDURE setobjectref
LPARAMETERS tcName,tvClass,tvClassLibrary
LOCAL lvResult

this.vResult=.T.
DO (this.cSetObjRefProgram) WITH (this),(tcName),(tvClass),(tvClassLibrary)
lvResult=this.vResult
this.vResult=.T.
RETURN lvResult

ENDPROC
PROCEDURE setobjectrefs
LPARAMETERS toObject

RETURN

ENDPROC
PROCEDURE releaseobjrefs
LOCAL lcName,oObject,lnCount

IF this.nObjectRefCount=0
	RETURN
ENDIF
FOR lnCount = this.nObjectRefCount TO 1 STEP -1
	lcName=this.aObjectRefs[lnCount,1]
	IF EMPTY(lcName) OR NOT PEMSTATUS(this,lcName,5) OR TYPE("this."+lcName)#"O"
		LOOP
	ENDIF
	oObject=this.&lcName
	IF ISNULL(oObject)
		LOOP
	ENDIF
	IF TYPE("oObject")=="O" AND NOT ISNULL(oObject) AND PEMSTATUS(oObject,"Release",5)
		oObject.Release
	ENDIF
	IF NOT ISNULL(oObject) AND PEMSTATUS(oObject,"oHost",5)
		oObject.oHost=.NULL.
	ENDIF
	this.&lcName=.NULL.
	oObject=.NULL.
ENDFOR
DIMENSION this.aObjectRefs[1,3]
this.aObjectRefs=""

ENDPROC
PROCEDURE nobjectrefcount_access
LOCAL lnObjectRefCount

lnObjectRefCount=ALEN(this.aObjectRefs,1)
IF lnObjectRefCount=1 AND EMPTY(this.aObjectRefs[1])
	lnObjectRefCount=0
ENDIF
RETURN lnObjectRefCount

ENDPROC
PROCEDURE nobjectrefcount_assign
LPARAMETERS m.vNewVal

ERROR 1743

ENDPROC
PROCEDURE sethost
this.oHost=IIF(TYPE("thisform")=="O",thisform,.NULL.)

ENDPROC
PROCEDURE newinstance
LPARAMETERS tnDataSessionID
LOCAL oNewObject,lnLastDataSessionID

lnLastDataSessionID=SET("DATASESSION")
IF TYPE("tnDataSessionID")=="N" AND tnDataSessionID>=1
	SET DATASESSION TO tnDataSessionID
ENDIF
oNewObject=NEWOBJECT(this.Class,this.ClassLibrary)
SET DATASESSION TO (lnLastDataSessionID)
RETURN oNewObject

ENDPROC
PROCEDURE addtoproject
*-- Dummy code for adding files to project.
RETURN

DO SetObjRf.prg

ENDPROC
PROCEDURE ninstances_access
LOCAL laInstances[1]
	
RETURN AINSTANCE(laInstances,this.Class)

ENDPROC
PROCEDURE ninstances_assign
LPARAMETERS vNewVal

ERROR 1743

ENDPROC
PROCEDURE Error
LPARAMETERS nError, cMethod, nLine
LOCAL lcOnError,lcErrorMsg,lcCodeLineMsg

IF this.lIgnoreErrors OR _vfp.StartMode>0
	RETURN .F.
ENDIF
lcOnError=UPPER(ALLTRIM(ON("ERROR")))
IF NOT EMPTY(lcOnError)
	lcOnError=STRTRAN(STRTRAN(STRTRAN(lcOnError,"ERROR()","nError"), ;
			"PROGRAM()","cMethod"),"LINENO()","nLine")
	&lcOnError
	RETURN
ENDIF
lcErrorMsg=MESSAGE()+CHR(13)+CHR(13)+this.Name+CHR(13)+ ;
		"Error:           "+ALLTRIM(STR(nError))+CHR(13)+ ;
		"Method:       "+LOWER(ALLTRIM(cMethod))
lcCodeLineMsg=MESSAGE(1)
IF BETWEEN(nLine,1,100000) AND NOT lcCodeLineMsg="..."
	lcErrorMsg=lcErrorMsg+CHR(13)+"Line:            "+ALLTRIM(STR(nLine))
	IF NOT EMPTY(lcCodeLineMsg)
		lcErrorMsg=lcErrorMsg+CHR(13)+CHR(13)+lcCodeLineMsg
	ENDIF
ENDIF
WAIT CLEAR
MESSAGEBOX(lcErrorMsg,16,_screen.Caption)
ERROR nError

ENDPROC
PROCEDURE Init
IF this.lSetHost
	this.SetHost
ENDIF
IF this.lAutoSetObjectRefs AND NOT this.SetObjectRefs(this)
	RETURN .F.
ENDIF

ENDPROC
PROCEDURE Destroy
IF this.lRelease
	RETURN .F.
ENDIF
this.lRelease=.T.
this.ReleaseObjRefs
this.oHost=.NULL.

ENDPROC

]PROCEDURE release
LOCAL lcBaseClass

IF this.lRelease
	NODEFAULT
	RETURN .F.
ENDIF
this.lRelease=.T.
lcBaseClass=LOWER(this.BaseClass)
this.oHost=.NULL.
this.ReleaseObjRefs
IF NOT INLIST(lcBaseClass+" ","form ","formset ","toolbar ")
	RELEASE this
ENDIF

ENDPROC
PROCEDURE setobjectref
LPARAMETERS tcName,tvClass,tvClassLibrary
LOCAL lvResult

this.vResult=.T.
DO (this.cSetObjRefProgram) WITH (this),(tcName),(tvClass),(tvClassLibrary)
lvResult=this.vResult
this.vResult=.T.
RETURN lvResult

ENDPROC
PROCEDURE setobjectrefs
LPARAMETERS toObject

RETURN

ENDPROC
PROCEDURE releaseobjrefs
LOCAL lcName,oObject,lnCount

IF this.nObjectRefCount=0
	RETURN
ENDIF
FOR lnCount = this.nObjectRefCount TO 1 STEP -1
	lcName=this.aObjectRefs[lnCount,1]
	IF EMPTY(lcName) OR NOT PEMSTATUS(this,lcName,5) OR TYPE("this."+lcName)#"O"
		LOOP
	ENDIF
	oObject=this.&lcName
	IF ISNULL(oObject)
		LOOP
	ENDIF
	IF TYPE("oObject")=="O" AND NOT ISNULL(oObject) AND PEMSTATUS(oObject,"Release",5)
		oObject.Release
	ENDIF
	IF NOT ISNULL(oObject) AND PEMSTATUS(oObject,"oHost",5)
		oObject.oHost=.NULL.
	ENDIF
	this.&lcName=.NULL.
	oObject=.NULL.
ENDFOR
DIMENSION this.aObjectRefs[1,3]
this.aObjectRefs=""

ENDPROC
PROCEDURE nobjectrefcount_access
LOCAL lnObjectRefCount

lnObjectRefCount=ALEN(this.aObjectRefs,1)
IF lnObjectRefCount=1 AND EMPTY(this.aObjectRefs[1])
	lnObjectRefCount=0
ENDIF
RETURN lnObjectRefCount

ENDPROC
PROCEDURE nobjectrefcount_assign
LPARAMETERS m.vNewVal

ERROR 1743

ENDPROC
PROCEDURE sethost
this.oHost=IIF(TYPE("thisform")=="O",thisform,.NULL.)

ENDPROC
PROCEDURE newinstance
LPARAMETERS tnDataSessionID
LOCAL oNewObject,lnLastDataSessionID

lnLastDataSessionID=SET("DATASESSION")
IF TYPE("tnDataSessionID")=="N" AND tnDataSessionID>=1
	SET DATASESSION TO tnDataSessionID
ENDIF
oNewObject=NEWOBJECT(this.Class,this.ClassLibrary)
SET DATASESSION TO (lnLastDataSessionID)
RETURN oNewObject

ENDPROC
PROCEDURE addtoproject
*-- Dummy code for adding files to project.
RETURN

DO SetObjRf.prg

ENDPROC
PROCEDURE ninstances_access
LOCAL laInstances[1]
	
RETURN AINSTANCE(laInstances,this.Class)

ENDPROC
PROCEDURE ninstances_assign
LPARAMETERS vNewVal

ERROR 1743

ENDPROC
PROCEDURE Error
LPARAMETERS nError, cMethod, nLine
LOCAL lcOnError,lcErrorMsg,lcCodeLineMsg

IF this.lIgnoreErrors OR _vfp.StartMode>0
	RETURN .F.
ENDIF
lcOnError=UPPER(ALLTRIM(ON("ERROR")))
IF NOT EMPTY(lcOnError)
	lcOnError=STRTRAN(STRTRAN(STRTRAN(lcOnError,"ERROR()","nError"), ;
			"PROGRAM()","cMethod"),"LINENO()","nLine")
	&lcOnError
	RETURN
ENDIF
lcErrorMsg=MESSAGE()+CHR(13)+CHR(13)+this.Name+CHR(13)+ ;
		"Error:           "+ALLTRIM(STR(nError))+CHR(13)+ ;
		"Method:       "+LOWER(ALLTRIM(cMethod))
lcCodeLineMsg=MESSAGE(1)
IF BETWEEN(nLine,1,100000) AND NOT lcCodeLineMsg="..."
	lcErrorMsg=lcErrorMsg+CHR(13)+"Line:            "+ALLTRIM(STR(nLine))
	IF NOT EMPTY(lcCodeLineMsg)
		lcErrorMsg=lcErrorMsg+CHR(13)+CHR(13)+lcCodeLineMsg
	ENDIF
ENDIF
WAIT CLEAR
MESSAGEBOX(lcErrorMsg,16,_screen.Caption)
ERROR nError

ENDPROC
PROCEDURE Init
IF this.lSetHost
	this.SetHost
ENDIF
IF this.lAutoSetObjectRefs AND NOT this.SetObjectRefs(this)
	RETURN .F.
ENDIF

ENDPROC
PROCEDURE Destroy
IF this.lRelease
	RETURN .F.
ENDIF
this.lRelease=.T.
this.ReleaseObjRefs
this.oHost=.NULL.

ENDPROC

]PROCEDURE release
LOCAL lcBaseClass

IF this.lRelease
	NODEFAULT
	RETURN .F.
ENDIF
this.lRelease=.T.
lcBaseClass=LOWER(this.BaseClass)
this.oHost=.NULL.
this.ReleaseObjRefs
IF NOT INLIST(lcBaseClass+" ","form ","formset ","toolbar ")
	RELEASE this
ENDIF

ENDPROC
PROCEDURE setobjectref
LPARAMETERS tcName,tvClass,tvClassLibrary
LOCAL lvResult

this.vResult=.T.
DO (this.cSetObjRefProgram) WITH (this),(tcName),(tvClass),(tvClassLibrary)
lvResult=this.vResult
this.vResult=.T.
RETURN lvResult

ENDPROC
PROCEDURE setobjectrefs
LPARAMETERS toObject

RETURN

ENDPROC
PROCEDURE releaseobjrefs
LOCAL lcName,oObject,lnCount

IF this.nObjectRefCount=0
	RETURN
ENDIF
FOR lnCount = this.nObjectRefCount TO 1 STEP -1
	lcName=this.aObjectRefs[lnCount,1]
	IF EMPTY(lcName) OR NOT PEMSTATUS(this,lcName,5) OR TYPE("this."+lcName)#"O"
		LOOP
	ENDIF
	oObject=this.&lcName
	IF ISNULL(oObject)
		LOOP
	ENDIF
	IF TYPE("oObject")=="O" AND NOT ISNULL(oObject) AND PEMSTATUS(oObject,"Release",5)
		oObject.Release
	ENDIF
	IF NOT ISNULL(oObject) AND PEMSTATUS(oObject,"oHost",5)
		oObject.oHost=.NULL.
	ENDIF
	this.&lcName=.NULL.
	oObject=.NULL.
ENDFOR
DIMENSION this.aObjectRefs[1,3]
this.aObjectRefs=""

ENDPROC
PROCEDURE nobjectrefcount_access
LOCAL lnObjectRefCount

lnObjectRefCount=ALEN(this.aObjectRefs,1)
IF lnObjectRefCount=1 AND EMPTY(this.aObjectRefs[1])
	lnObjectRefCount=0
ENDIF
RETURN lnObjectRefCount

ENDPROC
PROCEDURE nobjectrefcount_assign
LPARAMETERS m.vNewVal

ERROR 1743

ENDPROC
PROCEDURE sethost
this.oHost=IIF(TYPE("thisform")=="O",thisform,.NULL.)

ENDPROC
PROCEDURE newinstance
LPARAMETERS tnDataSessionID
LOCAL oNewObject,lnLastDataSessionID

lnLastDataSessionID=SET("DATASESSION")
IF TYPE("tnDataSessionID")=="N" AND tnDataSessionID>=1
	SET DATASESSION TO tnDataSessionID
ENDIF
oNewObject=NEWOBJECT(this.Class,this.ClassLibrary)
SET DATASESSION TO (lnLastDataSessionID)
RETURN oNewObject

ENDPROC
PROCEDURE addtoproject
*-- Dummy code for adding files to project.
RETURN

DO SetObjRf.prg

ENDPROC
PROCEDURE ninstances_access
LOCAL laInstances[1]
	
RETURN AINSTANCE(laInstances,this.Class)

ENDPROC
PROCEDURE ninstances_assign
LPARAMETERS vNewVal

ERROR 1743

ENDPROC
PROCEDURE Error
LPARAMETERS nError, cMethod, nLine
LOCAL lcOnError,lcErrorMsg,lcCodeLineMsg

IF this.lIgnoreErrors OR _vfp.StartMode>0
	RETURN .F.
ENDIF
lcOnError=UPPER(ALLTRIM(ON("ERROR")))
IF NOT EMPTY(lcOnError)
	lcOnError=STRTRAN(STRTRAN(STRTRAN(lcOnError,"ERROR()","nError"), ;
			"PROGRAM()","cMethod"),"LINENO()","nLine")
	&lcOnError
	RETURN
ENDIF
lcErrorMsg=MESSAGE()+CHR(13)+CHR(13)+this.Name+CHR(13)+ ;
		"Error:           "+ALLTRIM(STR(nError))+CHR(13)+ ;
		"Method:       "+LOWER(ALLTRIM(cMethod))
lcCodeLineMsg=MESSAGE(1)
IF BETWEEN(nLine,1,100000) AND NOT lcCodeLineMsg="..."
	lcErrorMsg=lcErrorMsg+CHR(13)+"Line:            "+ALLTRIM(STR(nLine))
	IF NOT EMPTY(lcCodeLineMsg)
		lcErrorMsg=lcErrorMsg+CHR(13)+CHR(13)+lcCodeLineMsg
	ENDIF
ENDIF
WAIT CLEAR
MESSAGEBOX(lcErrorMsg,16,_screen.Caption)
ERROR nError

ENDPROC
PROCEDURE Init
IF this.lSetHost
	this.SetHost
ENDIF
IF this.lAutoSetObjectRefs AND NOT this.SetObjectRefs(this)
	RETURN .F.
ENDIF

ENDPROC
PROCEDURE Destroy
IF this.lRelease
	RETURN .F.
ENDIF
this.lRelease=.T.
this.ReleaseObjRefs
this.oHost=.NULL.

ENDPROC

]PROCEDURE release
LOCAL lcBaseClass

IF this.lRelease
	NODEFAULT
	RETURN .F.
ENDIF
this.lRelease=.T.
lcBaseClass=LOWER(this.BaseClass)
this.oHost=.NULL.
this.ReleaseObjRefs
IF NOT INLIST(lcBaseClass+" ","form ","formset ","toolbar ")
	RELEASE this
ENDIF

ENDPROC
PROCEDURE setobjectref
LPARAMETERS tcName,tvClass,tvClassLibrary
LOCAL lvResult

this.vResult=.T.
DO (this.cSetObjRefProgram) WITH (this),(tcName),(tvClass),(tvClassLibrary)
lvResult=this.vResult
this.vResult=.T.
RETURN lvResult

ENDPROC
PROCEDURE setobjectrefs
LPARAMETERS toObject

RETURN

ENDPROC
PROCEDURE releaseobjrefs
LOCAL lcName,oObject,lnCount

IF this.nObjectRefCount=0
	RETURN
ENDIF
FOR lnCount = this.nObjectRefCount TO 1 STEP -1
	lcName=this.aObjectRefs[lnCount,1]
	IF EMPTY(lcName) OR NOT PEMSTATUS(this,lcName,5) OR TYPE("this."+lcName)#"O"
		LOOP
	ENDIF
	oObject=this.&lcName
	IF ISNULL(oObject)
		LOOP
	ENDIF
	IF TYPE("oObject")=="O" AND NOT ISNULL(oObject) AND PEMSTATUS(oObject,"Release",5)
		oObject.Release
	ENDIF
	IF NOT ISNULL(oObject) AND PEMSTATUS(oObject,"oHost",5)
		oObject.oHost=.NULL.
	ENDIF
	this.&lcName=.NULL.
	oObject=.NULL.
ENDFOR
DIMENSION this.aObjectRefs[1,3]
this.aObjectRefs=""

ENDPROC
PROCEDURE nobjectrefcount_access
LOCAL lnObjectRefCount

lnObjectRefCount=ALEN(this.aObjectRefs,1)
IF lnObjectRefCount=1 AND EMPTY(this.aObjectRefs[1])
	lnObjectRefCount=0
ENDIF
RETURN lnObjectRefCount

ENDPROC
PROCEDURE nobjectrefcount_assign
LPARAMETERS m.vNewVal

ERROR 1743

ENDPROC
PROCEDURE sethost
this.oHost=IIF(TYPE("thisform")=="O",thisform,.NULL.)

ENDPROC
PROCEDURE newinstance
LPARAMETERS tnDataSessionID
LOCAL oNewObject,lnLastDataSessionID

lnLastDataSessionID=SET("DATASESSION")
IF TYPE("tnDataSessionID")=="N" AND tnDataSessionID>=1
	SET DATASESSION TO tnDataSessionID
ENDIF
oNewObject=NEWOBJECT(this.Class,this.ClassLibrary)
SET DATASESSION TO (lnLastDataSessionID)
RETURN oNewObject

ENDPROC
PROCEDURE addtoproject
*-- Dummy code for adding files to project.
RETURN

DO SetObjRf.prg

ENDPROC
PROCEDURE ninstances_access
LOCAL laInstances[1]
	
RETURN AINSTANCE(laInstances,this.Class)

ENDPROC
PROCEDURE ninstances_assign
LPARAMETERS vNewVal

ERROR 1743

ENDPROC
PROCEDURE Error
LPARAMETERS nError, cMethod, nLine
LOCAL lcOnError,lcErrorMsg,lcCodeLineMsg

IF this.lIgnoreErrors OR _vfp.StartMode>0
	RETURN .F.
ENDIF
lcOnError=UPPER(ALLTRIM(ON("ERROR")))
IF NOT EMPTY(lcOnError)
	lcOnError=STRTRAN(STRTRAN(STRTRAN(lcOnError,"ERROR()","nError"), ;
			"PROGRAM()","cMethod"),"LINENO()","nLine")
	&lcOnError
	RETURN
ENDIF
lcErrorMsg=MESSAGE()+CHR(13)+CHR(13)+this.Name+CHR(13)+ ;
		"Error:           "+ALLTRIM(STR(nError))+CHR(13)+ ;
		"Method:       "+LOWER(ALLTRIM(cMethod))
lcCodeLineMsg=MESSAGE(1)
IF BETWEEN(nLine,1,100000) AND NOT lcCodeLineMsg="..."
	lcErrorMsg=lcErrorMsg+CHR(13)+"Line:            "+ALLTRIM(STR(nLine))
	IF NOT EMPTY(lcCodeLineMsg)
		lcErrorMsg=lcErrorMsg+CHR(13)+CHR(13)+lcCodeLineMsg
	ENDIF
ENDIF
WAIT CLEAR
MESSAGEBOX(lcErrorMsg,16,_screen.Caption)
ERROR nError

ENDPROC
PROCEDURE Init
IF this.lSetHost
	this.SetHost
ENDIF
IF this.lAutoSetObjectRefs AND NOT this.SetObjectRefs(this)
	RETURN .F.
ENDIF

ENDPROC
PROCEDURE Destroy
IF this.lRelease
	RETURN .F.
ENDIF
this.lRelease=.T.
this.ReleaseObjRefs
this.oHost=.NULL.

ENDPROC

]PROCEDURE release
LOCAL lcBaseClass

IF this.lRelease
	NODEFAULT
	RETURN .F.
ENDIF
this.lRelease=.T.
lcBaseClass=LOWER(this.BaseClass)
this.oHost=.NULL.
this.ReleaseObjRefs
IF NOT INLIST(lcBaseClass+" ","form ","formset ","toolbar ")
	RELEASE this
ENDIF

ENDPROC
PROCEDURE setobjectref
LPARAMETERS tcName,tvClass,tvClassLibrary
LOCAL lvResult

this.vResult=.T.
DO (this.cSetObjRefProgram) WITH (this),(tcName),(tvClass),(tvClassLibrary)
lvResult=this.vResult
this.vResult=.T.
RETURN lvResult

ENDPROC
PROCEDURE setobjectrefs
LPARAMETERS toObject

RETURN

ENDPROC
PROCEDURE releaseobjrefs
LOCAL lcName,oObject,lnCount

IF this.nObjectRefCount=0
	RETURN
ENDIF
FOR lnCount = this.nObjectRefCount TO 1 STEP -1
	lcName=this.aObjectRefs[lnCount,1]
	IF EMPTY(lcName) OR NOT PEMSTATUS(this,lcName,5) OR TYPE("this."+lcName)#"O"
		LOOP
	ENDIF
	oObject=this.&lcName
	IF ISNULL(oObject)
		LOOP
	ENDIF
	IF TYPE("oObject")=="O" AND NOT ISNULL(oObject) AND PEMSTATUS(oObject,"Release",5)
		oObject.Release
	ENDIF
	IF NOT ISNULL(oObject) AND PEMSTATUS(oObject,"oHost",5)
		oObject.oHost=.NULL.
	ENDIF
	this.&lcName=.NULL.
	oObject=.NULL.
ENDFOR
DIMENSION this.aObjectRefs[1,3]
this.aObjectRefs=""

ENDPROC
PROCEDURE nobjectrefcount_access
LOCAL lnObjectRefCount

lnObjectRefCount=ALEN(this.aObjectRefs,1)
IF lnObjectRefCount=1 AND EMPTY(this.aObjectRefs[1])
	lnObjectRefCount=0
ENDIF
RETURN lnObjectRefCount

ENDPROC
PROCEDURE nobjectrefcount_assign
LPARAMETERS m.vNewVal

ERROR 1743

ENDPROC
PROCEDURE sethost
this.oHost=IIF(TYPE("thisform")=="O",thisform,.NULL.)

ENDPROC
PROCEDURE newinstance
LPARAMETERS tnDataSessionID
LOCAL oNewObject,lnLastDataSessionID

lnLastDataSessionID=SET("DATASESSION")
IF TYPE("tnDataSessionID")=="N" AND tnDataSessionID>=1
	SET DATASESSION TO tnDataSessionID
ENDIF
oNewObject=NEWOBJECT(this.Class,this.ClassLibrary)
SET DATASESSION TO (lnLastDataSessionID)
RETURN oNewObject

ENDPROC
PROCEDURE addtoproject
*-- Dummy code for adding files to project.
RETURN

DO SetObjRf.prg

ENDPROC
PROCEDURE ninstances_access
LOCAL laInstances[1]
	
RETURN AINSTANCE(laInstances,this.Class)

ENDPROC
PROCEDURE ninstances_assign
LPARAMETERS vNewVal

ERROR 1743

ENDPROC
PROCEDURE Error
LPARAMETERS nError, cMethod, nLine
LOCAL lcOnError,lcErrorMsg,lcCodeLineMsg

IF this.lIgnoreErrors OR _vfp.StartMode>0
	RETURN .F.
ENDIF
lcOnError=UPPER(ALLTRIM(ON("ERROR")))
IF NOT EMPTY(lcOnError)
	lcOnError=STRTRAN(STRTRAN(STRTRAN(lcOnError,"ERROR()","nError"), ;
			"PROGRAM()","cMethod"),"LINENO()","nLine")
	&lcOnError
	RETURN
ENDIF
lcErrorMsg=MESSAGE()+CHR(13)+CHR(13)+this.Name+CHR(13)+ ;
		"Error:           "+ALLTRIM(STR(nError))+CHR(13)+ ;
		"Method:       "+LOWER(ALLTRIM(cMethod))
lcCodeLineMsg=MESSAGE(1)
IF BETWEEN(nLine,1,100000) AND NOT lcCodeLineMsg="..."
	lcErrorMsg=lcErrorMsg+CHR(13)+"Line:            "+ALLTRIM(STR(nLine))
	IF NOT EMPTY(lcCodeLineMsg)
		lcErrorMsg=lcErrorMsg+CHR(13)+CHR(13)+lcCodeLineMsg
	ENDIF
ENDIF
WAIT CLEAR
MESSAGEBOX(lcErrorMsg,16,_screen.Caption)
ERROR nError

ENDPROC
PROCEDURE Init
IF this.lSetHost
	this.SetHost
ENDIF
IF this.lAutoSetObjectRefs AND NOT this.SetObjectRefs(this)
	RETURN .F.
ENDIF

ENDPROC
PROCEDURE Destroy
IF this.lRelease
	RETURN .F.
ENDIF
this.lRelease=.T.
this.ReleaseObjRefs
this.oHost=.NULL.

ENDPROC
icversion Version property.
builder Bulder property.
builderx BuilderX property.
lautobuilder Specifies if custom FFC builder is automatically launched when instance is added to a container in design mode, even if the control pallette Builder Lock button is off.
nobjectrefcount Returns the number of items in the object reference array property aObjectRefs.
ohost Object reference to host object (generally THISFORM), which is automatically set on Init if lSetHost is .T.
lautosetobjectrefs Specifiies if the SetObjectRefs method is automatically called from the Init method.
vresult Variant result property for internal usage when calling programs in PRGs and a return file is required.
lrelease Indicates the object's Release method has been executed and the object is in the process of being released from memory.
csetobjrefprogram Program to be called when when setting an object references via the SetObjectRef method.
lignoreerrors Specifies if the default FFC error handler is executed when an error occurs.
lsethost Specifies if the SetHost method is automatically called from the Init method to set the oHost property to THISFORM.
ninstances Number of instances.
^aobjectrefs[1,3] Array of object references properties.
*release Releases object from memory.
*setobjectref Set object reference to specific property.
*setobjectrefs Place holder method for listing SetObjectRef method calls.
*releaseobjrefs Releases all object references of aObjectRefs array.
*nobjectrefcount_access Access method for nObjectRefCount property.
*nobjectrefcount_assign Assign method for nObjectRefCount property.
*sethost Set oHost property to form reference object.
*newinstance Returns new instance of object.
*addtoproject Dummy code for adding files to project.
*ninstances_access Access method for nInstances property.
*ninstances_assign Assign method for nInstances property.
icversion Version property.
builder Bulder property.
builderx BuilderX property.
lautobuilder Specifies if custom FFC builder is automatically launched when instance is added to a container in design mode, even if the control pallette Builder Lock button is off.
nobjectrefcount Returns the number of items in the object reference array property aObjectRefs.
ohost Object reference to host object (generally THISFORM), which is automatically set on Init if lSetHost is .T.
lautosetobjectrefs Specifiies if the SetObjectRefs method is automatically called from the Init method.
vresult Variant result property for internal usage when calling programs in PRGs and a return file is required.
lrelease Indicates the object's Release method has been executed and the object is in the process of being released from memory.
csetobjrefprogram Program to be called when when setting an object references via the SetObjectRef method.
lignoreerrors Specifies if the default FFC error handler is executed when an error occurs.
lsethost Specifies if the SetHost method is automatically called from the Init method to set the oHost property to THISFORM.
ninstances Number of instances.
^aobjectrefs[1,3] Array of object references properties.
*release Releases object from memory.
*setobjectref Set object reference to specific property.
*setobjectrefs Place holder method for listing SetObjectRef method calls.
*releaseobjrefs Releases all object references of aObjectRefs array.
*nobjectrefcount_access Access method for nObjectRefCount property.
*nobjectrefcount_assign Assign method for nObjectRefCount property.
*sethost Set oHost property to form reference object.
*newinstance Returns new instance of object.
*addtoproject Dummy code for adding files to project.
*ninstances_access Access method for nInstances property.
*ninstances_assign Assign method for nInstances property.

]PROCEDURE release
LOCAL lcBaseClass

IF this.lRelease
	NODEFAULT
	RETURN .F.
ENDIF
this.lRelease=.T.
lcBaseClass=LOWER(this.BaseClass)
this.oHost=.NULL.
this.ReleaseObjRefs
IF NOT INLIST(lcBaseClass+" ","form ","formset ","toolbar ")
	RELEASE this
ENDIF

ENDPROC
PROCEDURE setobjectref
LPARAMETERS tcName,tvClass,tvClassLibrary
LOCAL lvResult

this.vResult=.T.
DO (this.cSetObjRefProgram) WITH (this),(tcName),(tvClass),(tvClassLibrary)
lvResult=this.vResult
this.vResult=.T.
RETURN lvResult

ENDPROC
PROCEDURE setobjectrefs
LPARAMETERS toObject

RETURN

ENDPROC
PROCEDURE releaseobjrefs
LOCAL lcName,oObject,lnCount

IF this.nObjectRefCount=0
	RETURN
ENDIF
FOR lnCount = this.nObjectRefCount TO 1 STEP -1
	lcName=this.aObjectRefs[lnCount,1]
	IF EMPTY(lcName) OR NOT PEMSTATUS(this,lcName,5) OR TYPE("this."+lcName)#"O"
		LOOP
	ENDIF
	oObject=this.&lcName
	IF ISNULL(oObject)
		LOOP
	ENDIF
	IF TYPE("oObject")=="O" AND NOT ISNULL(oObject) AND PEMSTATUS(oObject,"Release",5)
		oObject.Release
	ENDIF
	IF NOT ISNULL(oObject) AND PEMSTATUS(oObject,"oHost",5)
		oObject.oHost=.NULL.
	ENDIF
	this.&lcName=.NULL.
	oObject=.NULL.
ENDFOR
DIMENSION this.aObjectRefs[1,3]
this.aObjectRefs=""

ENDPROC
PROCEDURE nobjectrefcount_access
LOCAL lnObjectRefCount

lnObjectRefCount=ALEN(this.aObjectRefs,1)
IF lnObjectRefCount=1 AND EMPTY(this.aObjectRefs[1])
	lnObjectRefCount=0
ENDIF
RETURN lnObjectRefCount

ENDPROC
PROCEDURE nobjectrefcount_assign
LPARAMETERS m.vNewVal

ERROR 1743

ENDPROC
PROCEDURE sethost
this.oHost=IIF(TYPE("thisform")=="O",thisform,.NULL.)

ENDPROC
PROCEDURE newinstance
LPARAMETERS tnDataSessionID
LOCAL oNewObject,lnLastDataSessionID

lnLastDataSessionID=SET("DATASESSION")
IF TYPE("tnDataSessionID")=="N" AND tnDataSessionID>=1
	SET DATASESSION TO tnDataSessionID
ENDIF
oNewObject=NEWOBJECT(this.Class,this.ClassLibrary)
SET DATASESSION TO (lnLastDataSessionID)
RETURN oNewObject

ENDPROC
PROCEDURE addtoproject
*-- Dummy code for adding files to project.
RETURN

DO SetObjRf.prg

ENDPROC
PROCEDURE ninstances_access
LOCAL laInstances[1]
	
RETURN AINSTANCE(laInstances,this.Class)

ENDPROC
PROCEDURE ninstances_assign
LPARAMETERS vNewVal

ERROR 1743

ENDPROC
PROCEDURE Error
LPARAMETERS nError, cMethod, nLine
LOCAL lcOnError,lcErrorMsg,lcCodeLineMsg

IF this.lIgnoreErrors OR _vfp.StartMode>0
	RETURN .F.
ENDIF
lcOnError=UPPER(ALLTRIM(ON("ERROR")))
IF NOT EMPTY(lcOnError)
	lcOnError=STRTRAN(STRTRAN(STRTRAN(lcOnError,"ERROR()","nError"), ;
			"PROGRAM()","cMethod"),"LINENO()","nLine")
	&lcOnError
	RETURN
ENDIF
lcErrorMsg=MESSAGE()+CHR(13)+CHR(13)+this.Name+CHR(13)+ ;
		"Error:           "+ALLTRIM(STR(nError))+CHR(13)+ ;
		"Method:       "+LOWER(ALLTRIM(cMethod))
lcCodeLineMsg=MESSAGE(1)
IF BETWEEN(nLine,1,100000) AND NOT lcCodeLineMsg="..."
	lcErrorMsg=lcErrorMsg+CHR(13)+"Line:            "+ALLTRIM(STR(nLine))
	IF NOT EMPTY(lcCodeLineMsg)
		lcErrorMsg=lcErrorMsg+CHR(13)+CHR(13)+lcCodeLineMsg
	ENDIF
ENDIF
WAIT CLEAR
MESSAGEBOX(lcErrorMsg,16,_screen.Caption)
ERROR nError

ENDPROC
PROCEDURE Init
IF this.lSetHost
	this.SetHost
ENDIF
IF this.lAutoSetObjectRefs AND NOT this.SetObjectRefs(this)
	RETURN .F.
ENDIF

ENDPROC
PROCEDURE Destroy
IF this.lRelease
	RETURN .F.
ENDIF
this.lRelease=.T.
this.ReleaseObjRefs
this.oHost=.NULL.

ENDPROC
icversion Version property.
builder Bulder property.
builderx BuilderX property.
lautobuilder Specifies if custom FFC builder is automatically launched when instance is added to a container in design mode, even if the control pallette Builder Lock button is off.
nobjectrefcount Returns the number of items in the object reference array property aObjectRefs.
ohost Object reference to host object (generally THISFORM), which is automatically set on Init if lSetHost is .T.
lautosetobjectrefs Specifiies if the SetObjectRefs method is automatically called from the Init method.
vresult Variant result property for internal usage when calling programs in PRGs and a return file is required.
lrelease Indicates the object's Release method has been executed and the object is in the process of being released from memory.
csetobjrefprogram Program to be called when when setting an object references via the SetObjectRef method.
lignoreerrors Specifies if the default FFC error handler is executed when an error occurs.
lsethost Specifies if the SetHost method is automatically called from the Init method to set the oHost property to THISFORM.
ninstances Number of instances.
^aobjectrefs[1,3] Array of object references properties.
*release Releases object from memory.
*setobjectref Set object reference to specific property.
*setobjectrefs Place holder method for listing SetObjectRef method calls.
*releaseobjrefs Releases all object references of aObjectRefs array.
*nobjectrefcount_access Access method for nObjectRefCount property.
*nobjectrefcount_assign Assign method for nObjectRefCount property.
*sethost Set oHost property to form reference object.
*newinstance Returns new instance of object.
*addtoproject Dummy code for adding files to project.
*ninstances_access Access method for nInstances property.
*ninstances_assign Assign method for nInstances property.
icversion Version property.
builder Bulder property.
builderx BuilderX property.
lautobuilder Specifies if custom FFC builder is automatically launched when instance is added to a container in design mode, even if the control pallette Builder Lock button is off.
nobjectrefcount Returns the number of items in the object reference array property aObjectRefs.
ohost Object reference to host object (generally THISFORM), which is automatically set on Init if lSetHost is .T.
lautosetobjectrefs Specifiies if the SetObjectRefs method is automatically called from the Init method.
vresult Variant result property for internal usage when calling programs in PRGs and a return file is required.
lrelease Indicates the object's Release method has been executed and the object is in the process of being released from memory.
csetobjrefprogram Program to be called when when setting an object references via the SetObjectRef method.
lignoreerrors Specifies if the default FFC error handler is executed when an error occurs.
lsethost Specifies if the SetHost method is automatically called from the Init method to set the oHost property to THISFORM.
ninstances Number of instances.
^aobjectrefs[1,3] Array of object references properties.
*release Releases object from memory.
*setobjectref Set object reference to specific property.
*setobjectrefs Place holder method for listing SetObjectRef method calls.
*releaseobjrefs Releases all object references of aObjectRefs array.
*nobjectrefcount_access Access method for nObjectRefCount property.
*nobjectrefcount_assign Assign method for nObjectRefCount property.
*sethost Set oHost property to form reference object.
*newinstance Returns new instance of object.
*addtoproject Dummy code for adding files to project.
*ninstances_access Access method for nInstances property.
*ninstances_assign Assign method for nInstances property.
icversion Version property.
builder Bulder property.
builderx BuilderX property.
lautobuilder Specifies if custom FFC builder is automatically launched when instance is added to a container in design mode, even if the control pallette Builder Lock button is off.
nobjectrefcount Returns the number of items in the object reference array property aObjectRefs.
ohost Object reference to host object (generally THISFORM), which is automatically set on Init if lSetHost is .T.
lautosetobjectrefs Specifiies if the SetObjectRefs method is automatically called from the Init method.
vresult Variant result property for internal usage when calling programs in PRGs and a return file is required.
lrelease Indicates the object's Release method has been executed and the object is in the process of being released from memory.
csetobjrefprogram Program to be called when when setting an object references via the SetObjectRef method.
lignoreerrors Specifies if the default FFC error handler is executed when an error occurs.
lsethost Specifies if the SetHost method is automatically called from the Init method to set the oHost property to THISFORM.
ninstances Number of instances.
^aobjectrefs[1,3] Array of object references properties.
*release Releases object from memory.
*setobjectref Set object reference to specific property.
*setobjectrefs Place holder method for listing SetObjectRef method calls.
*releaseobjrefs Releases all object references of aObjectRefs array.
*nobjectrefcount_access Access method for nObjectRefCount property.
*nobjectrefcount_assign Assign method for nObjectRefCount property.
*sethost Set oHost property to form reference object.
*newinstance Returns new instance of object.
*addtoproject Dummy code for adding files to project.
*ninstances_access Access method for nInstances property.
*ninstances_assign Assign method for nInstances property.
icversion Version property.
builder Bulder property.
builderx BuilderX property.
lautobuilder Specifies if custom FFC builder is automatically launched when instance is added to a container in design mode, even if the control pallette Builder Lock button is off.
nobjectrefcount Returns the number of items in the object reference array property aObjectRefs.
ohost Object reference to host object (generally THISFORM), which is automatically set on Init if lSetHost is .T.
lautosetobjectrefs Specifiies if the SetObjectRefs method is automatically called from the Init method.
vresult Variant result property for internal usage when calling programs in PRGs and a return file is required.
lrelease Indicates the object's Release method has been executed and the object is in the process of being released from memory.
csetobjrefprogram Program to be called when when setting an object references via the SetObjectRef method.
lignoreerrors Specifies if the default FFC error handler is executed when an error occurs.
lsethost Specifies if the SetHost method is automatically called from the Init method to set the oHost property to THISFORM.
ninstances Number of instances.
^aobjectrefs[1,3] Array of object references properties.
*release Releases object from memory.
*setobjectref Set object reference to specific property.
*setobjectrefs Place holder method for listing SetObjectRef method calls.
*releaseobjrefs Releases all object references of aObjectRefs array.
*nobjectrefcount_access Access method for nObjectRefCount property.
*nobjectrefcount_assign Assign method for nObjectRefCount property.
*sethost Set oHost property to form reference object.
*newinstance Returns new instance of object.
*addtoproject Dummy code for adding files to project.
*ninstances_access Access method for nInstances property.
*ninstances_assign Assign method for nInstances property.

�� ���0%�	�v�
�U����%�����"���B�-���T���a��T��C��@��T����
����3%�C�� �form �formset �toolbar �
����<���ULCBASECLASSTHISLRELEASE	BASECLASSOHOSTRELEASEOBJREFSw��������T���a��)�����������������T������T���a��	B����UTCNAMETVCLASSTVCLASSLIBRARYLVRESULTTHISVRESULTCSETOBJREFPROGRAM���B�UTOOBJECT������%������'�B��!������(���������u�T��C������7%�C���C����h
�C�this.�b�O����.��oObject=this.&lcName
%�C�����.��<%�C�oObjectb�O�C��
	�C��Release��h	���
�����%%�C��
�C��oHost��h	��O�T�����this.&lcName=.NULL.
T��������������T������ULCNAMEOOBJECTLNCOUNTTHISNOBJECTREFCOUNTAOBJECTREFSRELEASEOHOSTZ���T��C�����!%����
CC����	��J�
T������	B����ULNOBJECTREFCOUNTTHISAOBJECTREFS	��
��
������UVNEWVAL.+T���CC�thisformb�O����6��UTHISOHOSTTHISFORM��������T��C�DATASESSIONv��.%�C�tnDataSessionIDb�N���	��e�G�(�����T��C�������G�(����	B����UTNDATASESSIONID
ONEWOBJECTLNLASTDATASESSIONIDTHISCLASSCLASSLIBRARYB��SetObjRf.prg�USETOBJRFPRG$
������B�C������ULAINSTANCESTHISCLASS���
������UVNEWVAL�����������%����
�C����B�B�-���T��CCC�ERROR��f��%�C��
����OT��CCC��ERROR()�nError��	PROGRAM()�cMethod��LINENO()�nLine���&lcOnError
B��bT��CEC�
 C�
 ��	C�
 �Error:           CC�Z�C�
 �Method:       CC��@��T��C�E��'%�C���������...
	����0T���C�
 �Line:            CC�Z���%�C��
����T���C�
 C�
 �����R���C���9�
�x��	�����UNERRORCMETHODNLINE	LCONERROR
LCERRORMSG
LCCODELINEMSGTHIS
LIGNOREERRORS	STARTMODENAMECAPTIONL%������
����� %����
C���
	��E�B�-���UTHISLSETHOSTSETHOSTLAUTOSETOBJECTREFS
SETOBJECTREFSD%������B�-���T���a��
����T����UTHISLRELEASERELEASEOBJREFSOHOSTrelease,��setobjectref��
setobjectrefs���releaseobjrefs���nobjectrefcount_access���nobjectrefcount_assigni��sethost���newinstance���addtoproject���ninstances_access���ninstances_assign/��ErrorP��Init���DestroyC	��1qAqA�!��1qA3�q����3qB3�BAA�qAA��AA��AQ�Aq�Aa3qR�A�3��3�3q����A���3B23�B3q�3���qA���AA#�q�AAQA�3�AqA3qA���2/)In�"2�>9�H<&]N>�RH�,_KT�fN��lQ�?rhZ��o�R
�)�
�� ���0%�	�v�
�U����%�����"���B�-���T���a��T��C��@��T����
����3%�C�� �form �formset �toolbar �
����<���ULCBASECLASSTHISLRELEASE	BASECLASSOHOSTRELEASEOBJREFSw��������T���a��)�����������������T������T���a��	B����UTCNAMETVCLASSTVCLASSLIBRARYLVRESULTTHISVRESULTCSETOBJREFPROGRAM���B�UTOOBJECT������%������'�B��!������(���������u�T��C������7%�C���C����h
�C�this.�b�O����.��oObject=this.&lcName
%�C�����.��<%�C�oObjectb�O�C��
	�C��Release��h	���
�����%%�C��
�C��oHost��h	��O�T�����this.&lcName=.NULL.
T��������������T������ULCNAMEOOBJECTLNCOUNTTHISNOBJECTREFCOUNTAOBJECTREFSRELEASEOHOSTZ���T��C�����!%����
CC����	��J�
T������	B����ULNOBJECTREFCOUNTTHISAOBJECTREFS	��
��
������UVNEWVAL.+T���CC�thisformb�O����6��UTHISOHOSTTHISFORM��������T��C�DATASESSIONv��.%�C�tnDataSessionIDb�N���	��e�G�(�����T��C�������G�(����	B����UTNDATASESSIONID
ONEWOBJECTLNLASTDATASESSIONIDTHISCLASSCLASSLIBRARYB��SetObjRf.prg�USETOBJRFPRG$
������B�C������ULAINSTANCESTHISCLASS���
������UVNEWVAL�����������%����
�C����B�B�-���T��CCC�ERROR��f��%�C��
����OT��CCC��ERROR()�nError��	PROGRAM()�cMethod��LINENO()�nLine���&lcOnError
B��bT��CEC�
 C�
 ��	C�
 �Error:           CC�Z�C�
 �Method:       CC��@��T��C�E��'%�C���������...
	����0T���C�
 �Line:            CC�Z���%�C��
����T���C�
 C�
 �����R���C���9�
�x��	�����UNERRORCMETHODNLINE	LCONERROR
LCERRORMSG
LCCODELINEMSGTHIS
LIGNOREERRORS	STARTMODENAMECAPTIONL%������
����� %����
C���
	��E�B�-���UTHISLSETHOSTSETHOSTLAUTOSETOBJECTREFS
SETOBJECTREFSD%������B�-���T���a��
����T����UTHISLRELEASERELEASEOBJREFSOHOSTrelease,��setobjectref��
setobjectrefs���releaseobjrefs���nobjectrefcount_access���nobjectrefcount_assigni��sethost���newinstance���addtoproject���ninstances_access���ninstances_assign/��ErrorP��Init���DestroyC	��1qAqA�!��1qA3�q����3qB3�BAA�qAA��AA��AQ�Aq�Aa3qR�A�3��3�3q����A���3B23�B3q�3���qA���AA#�q�AAQA�3�AqA3qA���2/)In�"2�>9�H<&]N>�RH�,_KT�fN��lQ�?rhZ��o�R
�)�
�� ���0%�	�v�
�U����%�����"���B�-���T���a��T��C��@��T����
����3%�C�� �form �formset �toolbar �
����<���ULCBASECLASSTHISLRELEASE	BASECLASSOHOSTRELEASEOBJREFSw��������T���a��)�����������������T������T���a��	B����UTCNAMETVCLASSTVCLASSLIBRARYLVRESULTTHISVRESULTCSETOBJREFPROGRAM���B�UTOOBJECT������%������'�B��!������(���������u�T��C������7%�C���C����h
�C�this.�b�O����.��oObject=this.&lcName
%�C�����.��<%�C�oObjectb�O�C��
	�C��Release��h	���
�����%%�C��
�C��oHost��h	��O�T�����this.&lcName=.NULL.
T��������������T������ULCNAMEOOBJECTLNCOUNTTHISNOBJECTREFCOUNTAOBJECTREFSRELEASEOHOSTZ���T��C�����!%����
CC����	��J�
T������	B����ULNOBJECTREFCOUNTTHISAOBJECTREFS	��
��
������UVNEWVAL.+T���CC�thisformb�O����6��UTHISOHOSTTHISFORM��������T��C�DATASESSIONv��.%�C�tnDataSessionIDb�N���	��e�G�(�����T��C�������G�(����	B����UTNDATASESSIONID
ONEWOBJECTLNLASTDATASESSIONIDTHISCLASSCLASSLIBRARYB��SetObjRf.prg�USETOBJRFPRG$
������B�C������ULAINSTANCESTHISCLASS���
������UVNEWVAL�����������%����
�C����B�B�-���T��CCC�ERROR��f��%�C��
����OT��CCC��ERROR()�nError��	PROGRAM()�cMethod��LINENO()�nLine���&lcOnError
B��bT��CEC�
 C�
 ��	C�
 �Error:           CC�Z�C�
 �Method:       CC��@��T��C�E��'%�C���������...
	����0T���C�
 �Line:            CC�Z���%�C��
����T���C�
 C�
 �����R���C���9�
�x��	�����UNERRORCMETHODNLINE	LCONERROR
LCERRORMSG
LCCODELINEMSGTHIS
LIGNOREERRORS	STARTMODENAMECAPTIONL%������
����� %����
C���
	��E�B�-���UTHISLSETHOSTSETHOSTLAUTOSETOBJECTREFS
SETOBJECTREFSD%������B�-���T���a��
����T����UTHISLRELEASERELEASEOBJREFSOHOSTrelease,��setobjectref��
setobjectrefs���releaseobjrefs���nobjectrefcount_access���nobjectrefcount_assigni��sethost���newinstance���addtoproject���ninstances_access���ninstances_assign/��ErrorP��Init���DestroyC	��1qAqA�!��1qA3�q����3qB3�BAA�qAA��AA��AQ�Aq�Aa3qR�A�3��3�3q����A���3B23�B3q�3���qA���AA#�q�AAQA�3�AqA3qA���2/)In�"2�>9�H<&]N>�RH�,_KT�fN��lQ�?rhZ��o�R
�)�
�� ���0%�	�v�
�U����%�����"���B�-���T���a��T��C��@��T����
����3%�C�� �form �formset �toolbar �
����<���ULCBASECLASSTHISLRELEASE	BASECLASSOHOSTRELEASEOBJREFSw��������T���a��)�����������������T������T���a��	B����UTCNAMETVCLASSTVCLASSLIBRARYLVRESULTTHISVRESULTCSETOBJREFPROGRAM���B�UTOOBJECT������%������'�B��!������(���������u�T��C������7%�C���C����h
�C�this.�b�O����.��oObject=this.&lcName
%�C�����.��<%�C�oObjectb�O�C��
	�C��Release��h	���
�����%%�C��
�C��oHost��h	��O�T�����this.&lcName=.NULL.
T��������������T������ULCNAMEOOBJECTLNCOUNTTHISNOBJECTREFCOUNTAOBJECTREFSRELEASEOHOSTZ���T��C�����!%����
CC����	��J�
T������	B����ULNOBJECTREFCOUNTTHISAOBJECTREFS	��
��
������UVNEWVAL.+T���CC�thisformb�O����6��UTHISOHOSTTHISFORM��������T��C�DATASESSIONv��.%�C�tnDataSessionIDb�N���	��e�G�(�����T��C�������G�(����	B����UTNDATASESSIONID
ONEWOBJECTLNLASTDATASESSIONIDTHISCLASSCLASSLIBRARYB��SetObjRf.prg�USETOBJRFPRG$
������B�C������ULAINSTANCESTHISCLASS���
������UVNEWVAL�����������%����
�C����B�B�-���T��CCC�ERROR��f��%�C��
����OT��CCC��ERROR()�nError��	PROGRAM()�cMethod��LINENO()�nLine���&lcOnError
B��bT��CEC�
 C�
 ��	C�
 �Error:           CC�Z�C�
 �Method:       CC��@��T��C�E��'%�C���������...
	����0T���C�
 �Line:            CC�Z���%�C��
����T���C�
 C�
 �����R���C���9�
�x��	�����UNERRORCMETHODNLINE	LCONERROR
LCERRORMSG
LCCODELINEMSGTHIS
LIGNOREERRORS	STARTMODENAMECAPTIONL%������
����� %����
C���
	��E�B�-���UTHISLSETHOSTSETHOSTLAUTOSETOBJECTREFS
SETOBJECTREFSD%������B�-���T���a��
����T����UTHISLRELEASERELEASEOBJREFSOHOSTrelease,��setobjectref��
setobjectrefs���releaseobjrefs���nobjectrefcount_access���nobjectrefcount_assigni��sethost���newinstance���addtoproject���ninstances_access���ninstances_assign/��ErrorP��Init���DestroyC	��1qAqA�!��1qA3�q����3qB3�BAA�qAA��AA��AQ�Aq�Aa3qR�A�3��3�3q����A���3B23�B3q�3���qA���AA#�q�AAQA�3�AqA3qA���2/)In�"2�>9�H<&]N>�RH�,_KT�fN��lQ�?rhZ��o�R
�)�
�� ���0%�	�v�
�U����%�����"���B�-���T���a��T��C��@��T����
����3%�C�� �form �formset �toolbar �
����<���ULCBASECLASSTHISLRELEASE	BASECLASSOHOSTRELEASEOBJREFSw��������T���a��)�����������������T������T���a��	B����UTCNAMETVCLASSTVCLASSLIBRARYLVRESULTTHISVRESULTCSETOBJREFPROGRAM���B�UTOOBJECT������%������'�B��!������(���������u�T��C������7%�C���C����h
�C�this.�b�O����.��oObject=this.&lcName
%�C�����.��<%�C�oObjectb�O�C��
	�C��Release��h	���
�����%%�C��
�C��oHost��h	��O�T�����this.&lcName=.NULL.
T��������������T������ULCNAMEOOBJECTLNCOUNTTHISNOBJECTREFCOUNTAOBJECTREFSRELEASEOHOSTZ���T��C�����!%����
CC����	��J�
T������	B����ULNOBJECTREFCOUNTTHISAOBJECTREFS	��
��
������UVNEWVAL.+T���CC�thisformb�O����6��UTHISOHOSTTHISFORM��������T��C�DATASESSIONv��.%�C�tnDataSessionIDb�N���	��e�G�(�����T��C�������G�(����	B����UTNDATASESSIONID
ONEWOBJECTLNLASTDATASESSIONIDTHISCLASSCLASSLIBRARYB��SetObjRf.prg�USETOBJRFPRG$
������B�C������ULAINSTANCESTHISCLASS���
������UVNEWVAL�����������%����
�C����B�B�-���T��CCC�ERROR��f��%�C��
����OT��CCC��ERROR()�nError��	PROGRAM()�cMethod��LINENO()�nLine���&lcOnError
B��bT��CEC�
 C�
 ��	C�
 �Error:           CC�Z�C�
 �Method:       CC��@��T��C�E��'%�C���������...
	����0T���C�
 �Line:            CC�Z���%�C��
����T���C�
 C�
 �����R���C���9�
�x��	�����UNERRORCMETHODNLINE	LCONERROR
LCERRORMSG
LCCODELINEMSGTHIS
LIGNOREERRORS	STARTMODENAMECAPTIONL%������
����� %����
C���
	��E�B�-���UTHISLSETHOSTSETHOSTLAUTOSETOBJECTREFS
SETOBJECTREFSD%������B�-���T���a��
����T����UTHISLRELEASERELEASEOBJREFSOHOSTrelease,��setobjectref��
setobjectrefs���releaseobjrefs���nobjectrefcount_access���nobjectrefcount_assigni��sethost���newinstance���addtoproject���ninstances_access���ninstances_assign/��ErrorP��Init���DestroyC	��1qAqA�!��1qA3�q����3qB3�BAA�qAA��AA��AQ�Aq�Aa3qR�A�3��3�3q����A���3B23�B3q�3���qA���AA#�q�AAQA�3�AqA3qA���2/)In�"2�>9�H<&]N>�RH�,_KT�fN��lQ�?rhZ��o�R
�)�
�� ���0%�	�v�
�U����%�����"���B�-���T���a��T��C��@��T����
����3%�C�� �form �formset �toolbar �
����<���ULCBASECLASSTHISLRELEASE	BASECLASSOHOSTRELEASEOBJREFSw��������T���a��)�����������������T������T���a��	B����UTCNAMETVCLASSTVCLASSLIBRARYLVRESULTTHISVRESULTCSETOBJREFPROGRAM���B�UTOOBJECT������%������'�B��!������(���������u�T��C������7%�C���C����h
�C�this.�b�O����.��oObject=this.&lcName
%�C�����.��<%�C�oObjectb�O�C��
	�C��Release��h	���
�����%%�C��
�C��oHost��h	��O�T�����this.&lcName=.NULL.
T��������������T������ULCNAMEOOBJECTLNCOUNTTHISNOBJECTREFCOUNTAOBJECTREFSRELEASEOHOSTZ���T��C�����!%����
CC����	��J�
T������	B����ULNOBJECTREFCOUNTTHISAOBJECTREFS	��
��
������UVNEWVAL.+T���CC�thisformb�O����6��UTHISOHOSTTHISFORM��������T��C�DATASESSIONv��.%�C�tnDataSessionIDb�N���	��e�G�(�����T��C�������G�(����	B����UTNDATASESSIONID
ONEWOBJECTLNLASTDATASESSIONIDTHISCLASSCLASSLIBRARYB��SetObjRf.prg�USETOBJRFPRG$
������B�C������ULAINSTANCESTHISCLASS���
������UVNEWVAL�����������%����
�C����B�B�-���T��CCC�ERROR��f��%�C��
����OT��CCC��ERROR()�nError��	PROGRAM()�cMethod��LINENO()�nLine���&lcOnError
B��bT��CEC�
 C�
 ��	C�
 �Error:           CC�Z�C�
 �Method:       CC��@��T��C�E��'%�C���������...
	����0T���C�
 �Line:            CC�Z���%�C��
����T���C�
 C�
 �����R���C���9�
�x��	�����UNERRORCMETHODNLINE	LCONERROR
LCERRORMSG
LCCODELINEMSGTHIS
LIGNOREERRORS	STARTMODENAMECAPTIONL%������
����� %����
C���
	��E�B�-���UTHISLSETHOSTSETHOSTLAUTOSETOBJECTREFS
SETOBJECTREFSD%������B�-���T���a��
����T����UTHISLRELEASERELEASEOBJREFSOHOSTrelease,��setobjectref��
setobjectrefs���releaseobjrefs���nobjectrefcount_access���nobjectrefcount_assigni��sethost���newinstance���addtoproject���ninstances_access���ninstances_assign/��ErrorP��Init���DestroyC	��1qAqA�!��1qA3�q����3qB3�BAA�qAA��AA��AQ�Aq�Aa3qR�A�3��3�3q����A���3B23�B3q�3���qA���AA#�q�AAQA�3�AqA3qA���2/)In�"2�>9�H<&]N>�RH�,_KT�fN��lQ�?rhZ��o�R
�)�
�� ���0%�	�v�
�U����%�����"���B�-���T���a��T��C��@��T����
����3%�C�� �form �formset �toolbar �
����<���ULCBASECLASSTHISLRELEASE	BASECLASSOHOSTRELEASEOBJREFSw��������T���a��)�����������������T������T���a��	B����UTCNAMETVCLASSTVCLASSLIBRARYLVRESULTTHISVRESULTCSETOBJREFPROGRAM���B�UTOOBJECT������%������'�B��!������(���������u�T��C������7%�C���C����h
�C�this.�b�O����.��oObject=this.&lcName
%�C�����.��<%�C�oObjectb�O�C��
	�C��Release��h	���
�����%%�C��
�C��oHost��h	��O�T�����this.&lcName=.NULL.
T��������������T������ULCNAMEOOBJECTLNCOUNTTHISNOBJECTREFCOUNTAOBJECTREFSRELEASEOHOSTZ���T��C�����!%����
CC����	��J�
T������	B����ULNOBJECTREFCOUNTTHISAOBJECTREFS	��
��
������UVNEWVAL.+T���CC�thisformb�O����6��UTHISOHOSTTHISFORM��������T��C�DATASESSIONv��.%�C�tnDataSessionIDb�N���	��e�G�(�����T��C�������G�(����	B����UTNDATASESSIONID
ONEWOBJECTLNLASTDATASESSIONIDTHISCLASSCLASSLIBRARYB��SetObjRf.prg�USETOBJRFPRG$
������B�C������ULAINSTANCESTHISCLASS���
������UVNEWVAL�����������%����
�C����B�B�-���T��CCC�ERROR��f��%�C��
����OT��CCC��ERROR()�nError��	PROGRAM()�cMethod��LINENO()�nLine���&lcOnError
B��bT��CEC�
 C�
 ��	C�
 �Error:           CC�Z�C�
 �Method:       CC��@��T��C�E��'%�C���������...
	����0T���C�
 �Line:            CC�Z���%�C��
����T���C�
 C�
 �����R���C���9�
�x��	�����UNERRORCMETHODNLINE	LCONERROR
LCERRORMSG
LCCODELINEMSGTHIS
LIGNOREERRORS	STARTMODENAMECAPTIONL%������
����� %����
C���
	��E�B�-���UTHISLSETHOSTSETHOSTLAUTOSETOBJECTREFS
SETOBJECTREFSD%������B�-���T���a��
����T����UTHISLRELEASERELEASEOBJREFSOHOSTrelease,��setobjectref��
setobjectrefs���releaseobjrefs���nobjectrefcount_access���nobjectrefcount_assigni��sethost���newinstance���addtoproject���ninstances_access���ninstances_assign/��ErrorP��Init���DestroyC	��1qAqA�!��1qA3�q����3qB3�BAA�qAA��AA��AQ�Aq�Aa3qR�A�3��3�3q����A���3B23�B3q�3���qA���AA#�q�AAQA�3�AqA3qA���2/)In�"2�>9�H<&]N>�RH�,_KT�fN��lQ�?rhZ��o�R
�)�
�� ���0%�	�v�
�U����%�����"���B�-���T���a��T��C��@��T����
����3%�C�� �form �formset �toolbar �
����<���ULCBASECLASSTHISLRELEASE	BASECLASSOHOSTRELEASEOBJREFSw��������T���a��)�����������������T������T���a��	B����UTCNAMETVCLASSTVCLASSLIBRARYLVRESULTTHISVRESULTCSETOBJREFPROGRAM���B�UTOOBJECT������%������'�B��!������(���������u�T��C������7%�C���C����h
�C�this.�b�O����.��oObject=this.&lcName
%�C�����.��<%�C�oObjectb�O�C��
	�C��Release��h	���
�����%%�C��
�C��oHost��h	��O�T�����this.&lcName=.NULL.
T��������������T������ULCNAMEOOBJECTLNCOUNTTHISNOBJECTREFCOUNTAOBJECTREFSRELEASEOHOSTZ���T��C�����!%����
CC����	��J�
T������	B����ULNOBJECTREFCOUNTTHISAOBJECTREFS	��
��
������UVNEWVAL.+T���CC�thisformb�O����6��UTHISOHOSTTHISFORM��������T��C�DATASESSIONv��.%�C�tnDataSessionIDb�N���	��e�G�(�����T��C�������G�(����	B����UTNDATASESSIONID
ONEWOBJECTLNLASTDATASESSIONIDTHISCLASSCLASSLIBRARYB��SetObjRf.prg�USETOBJRFPRG$
������B�C������ULAINSTANCESTHISCLASS���
������UVNEWVAL�����������%����
�C����B�B�-���T��CCC�ERROR��f��%�C��
����OT��CCC��ERROR()�nError��	PROGRAM()�cMethod��LINENO()�nLine���&lcOnError
B��bT��CEC�
 C�
 ��	C�
 �Error:           CC�Z�C�
 �Method:       CC��@��T��C�E��'%�C���������...
	����0T���C�
 �Line:            CC�Z���%�C��
����T���C�
 C�
 �����R���C���9�
�x��	�����UNERRORCMETHODNLINE	LCONERROR
LCERRORMSG
LCCODELINEMSGTHIS
LIGNOREERRORS	STARTMODENAMECAPTIONL%������
����� %����
C���
	��E�B�-���UTHISLSETHOSTSETHOSTLAUTOSETOBJECTREFS
SETOBJECTREFSD%������B�-���T���a��
����T����UTHISLRELEASERELEASEOBJREFSOHOSTrelease,��setobjectref��
setobjectrefs���releaseobjrefs���nobjectrefcount_access���nobjectrefcount_assigni��sethost���newinstance���addtoproject���ninstances_access���ninstances_assign/��ErrorP��Init���DestroyC	��1qAqA�!��1qA3�q����3qB3�BAA�qAA��AA��AQ�Aq�Aa3qR�A�3��3�3q����A���3B23�B3q�3���qA���AA#�q�AAQA�3�AqA3qA���2/)In�"2�>9�H<&]N>�RH�,_KT�fN��lQ�?rhZ��o�R
�)�
]PROCEDURE release
LOCAL lcBaseClass

IF this.lRelease
	NODEFAULT
	RETURN .F.
ENDIF
this.lRelease=.T.
lcBaseClass=LOWER(this.BaseClass)
this.oHost=.NULL.
this.ReleaseObjRefs
IF NOT INLIST(lcBaseClass+" ","form ","formset ","toolbar ")
	RELEASE this
ENDIF

ENDPROC
PROCEDURE setobjectref
LPARAMETERS tcName,tvClass,tvClassLibrary
LOCAL lvResult

this.vResult=.T.
DO (this.cSetObjRefProgram) WITH (this),(tcName),(tvClass),(tvClassLibrary)
lvResult=this.vResult
this.vResult=.T.
RETURN lvResult

ENDPROC
PROCEDURE setobjectrefs
LPARAMETERS toObject

RETURN

ENDPROC
PROCEDURE releaseobjrefs
LOCAL lcName,oObject,lnCount

IF this.nObjectRefCount=0
	RETURN
ENDIF
FOR lnCount = this.nObjectRefCount TO 1 STEP -1
	lcName=this.aObjectRefs[lnCount,1]
	IF EMPTY(lcName) OR NOT PEMSTATUS(this,lcName,5) OR TYPE("this."+lcName)#"O"
		LOOP
	ENDIF
	oObject=this.&lcName
	IF ISNULL(oObject)
		LOOP
	ENDIF
	IF TYPE("oObject")=="O" AND NOT ISNULL(oObject) AND PEMSTATUS(oObject,"Release",5)
		oObject.Release
	ENDIF
	IF NOT ISNULL(oObject) AND PEMSTATUS(oObject,"oHost",5)
		oObject.oHost=.NULL.
	ENDIF
	this.&lcName=.NULL.
	oObject=.NULL.
ENDFOR
DIMENSION this.aObjectRefs[1,3]
this.aObjectRefs=""

ENDPROC
PROCEDURE nobjectrefcount_access
LOCAL lnObjectRefCount

lnObjectRefCount=ALEN(this.aObjectRefs,1)
IF lnObjectRefCount=1 AND EMPTY(this.aObjectRefs[1])
	lnObjectRefCount=0
ENDIF
RETURN lnObjectRefCount

ENDPROC
PROCEDURE nobjectrefcount_assign
LPARAMETERS m.vNewVal

ERROR 1743

ENDPROC
PROCEDURE sethost
this.oHost=IIF(TYPE("thisform")=="O",thisform,.NULL.)

ENDPROC
PROCEDURE newinstance
LPARAMETERS tnDataSessionID
LOCAL oNewObject,lnLastDataSessionID

lnLastDataSessionID=SET("DATASESSION")
IF TYPE("tnDataSessionID")=="N" AND tnDataSessionID>=1
	SET DATASESSION TO tnDataSessionID
ENDIF
oNewObject=NEWOBJECT(this.Class,this.ClassLibrary)
SET DATASESSION TO (lnLastDataSessionID)
RETURN oNewObject

ENDPROC
PROCEDURE addtoproject
*-- Dummy code for adding files to project.
RETURN

DO SetObjRf.prg

ENDPROC
PROCEDURE ninstances_access
LOCAL laInstances[1]
	
RETURN AINSTANCE(laInstances,this.Class)

ENDPROC
PROCEDURE ninstances_assign
LPARAMETERS vNewVal

ERROR 1743

ENDPROC
PROCEDURE Error
LPARAMETERS nError, cMethod, nLine
LOCAL lcOnError,lcErrorMsg,lcCodeLineMsg

IF this.lIgnoreErrors OR _vfp.StartMode>0
	RETURN .F.
ENDIF
lcOnError=UPPER(ALLTRIM(ON("ERROR")))
IF NOT EMPTY(lcOnError)
	lcOnError=STRTRAN(STRTRAN(STRTRAN(lcOnError,"ERROR()","nError"), ;
			"PROGRAM()","cMethod"),"LINENO()","nLine")
	&lcOnError
	RETURN
ENDIF
lcErrorMsg=MESSAGE()+CHR(13)+CHR(13)+this.Name+CHR(13)+ ;
		"Error:           "+ALLTRIM(STR(nError))+CHR(13)+ ;
		"Method:       "+LOWER(ALLTRIM(cMethod))
lcCodeLineMsg=MESSAGE(1)
IF BETWEEN(nLine,1,100000) AND NOT lcCodeLineMsg="..."
	lcErrorMsg=lcErrorMsg+CHR(13)+"Line:            "+ALLTRIM(STR(nLine))
	IF NOT EMPTY(lcCodeLineMsg)
		lcErrorMsg=lcErrorMsg+CHR(13)+CHR(13)+lcCodeLineMsg
	ENDIF
ENDIF
WAIT CLEAR
MESSAGEBOX(lcErrorMsg,16,_screen.Caption)
ERROR nError

ENDPROC
PROCEDURE Init
IF this.lSetHost
	this.SetHost
ENDIF
IF this.lAutoSetObjectRefs AND NOT this.SetObjectRefs(this)
	RETURN .F.
ENDIF

ENDPROC
PROCEDURE Destroy
IF this.lRelease
	RETURN .F.
ENDIF
this.lRelease=.T.
this.ReleaseObjRefs
this.oHost=.NULL.

ENDPROC

�� ���0%�	�v�
�U����%�����"���B�-���T���a��T��C��@��T����
����3%�C�� �form �formset �toolbar �
����<���ULCBASECLASSTHISLRELEASE	BASECLASSOHOSTRELEASEOBJREFSw��������T���a��)�����������������T������T���a��	B����UTCNAMETVCLASSTVCLASSLIBRARYLVRESULTTHISVRESULTCSETOBJREFPROGRAM���B�UTOOBJECT������%������'�B��!������(���������u�T��C������7%�C���C����h
�C�this.�b�O����.��oObject=this.&lcName
%�C�����.��<%�C�oObjectb�O�C��
	�C��Release��h	���
�����%%�C��
�C��oHost��h	��O�T�����this.&lcName=.NULL.
T��������������T������ULCNAMEOOBJECTLNCOUNTTHISNOBJECTREFCOUNTAOBJECTREFSRELEASEOHOSTZ���T��C�����!%����
CC����	��J�
T������	B����ULNOBJECTREFCOUNTTHISAOBJECTREFS	��
��
������UVNEWVAL.+T���CC�thisformb�O����6��UTHISOHOSTTHISFORM��������T��C�DATASESSIONv��.%�C�tnDataSessionIDb�N���	��e�G�(�����T��C�������G�(����	B����UTNDATASESSIONID
ONEWOBJECTLNLASTDATASESSIONIDTHISCLASSCLASSLIBRARYB��SetObjRf.prg�USETOBJRFPRG$
������B�C������ULAINSTANCESTHISCLASS���
������UVNEWVAL�����������%����
�C����B�B�-���T��CCC�ERROR��f��%�C��
����OT��CCC��ERROR()�nError��	PROGRAM()�cMethod��LINENO()�nLine���&lcOnError
B��bT��CEC�
 C�
 ��	C�
 �Error:           CC�Z�C�
 �Method:       CC��@��T��C�E��'%�C���������...
	����0T���C�
 �Line:            CC�Z���%�C��
����T���C�
 C�
 �����R���C���9�
�x��	�����UNERRORCMETHODNLINE	LCONERROR
LCERRORMSG
LCCODELINEMSGTHIS
LIGNOREERRORS	STARTMODENAMECAPTIONL%������
����� %����
C���
	��E�B�-���UTHISLSETHOSTSETHOSTLAUTOSETOBJECTREFS
SETOBJECTREFSD%������B�-���T���a��
����T����UTHISLRELEASERELEASEOBJREFSOHOSTrelease,��setobjectref��
setobjectrefs���releaseobjrefs���nobjectrefcount_access���nobjectrefcount_assigni��sethost���newinstance���addtoproject���ninstances_access���ninstances_assign/��ErrorP��Init���DestroyC	��1qAqA�!��1qA3�q����3qB3�BAA�qAA��AA��AQ�Aq�Aa3qR�A�3��3�3q����A���3B23�B3q�3���qA���AA#�q�AAQA�3�AqA3qA���2/)In�"2�>9�H<&]N>�RH�,_KT�fN��lQ�?rhZ��o�R
�)�
�� ���0%�	�v�
�U����%�����"���B�-���T���a��T��C��@��T����
����3%�C�� �form �formset �toolbar �
����<���ULCBASECLASSTHISLRELEASE	BASECLASSOHOSTRELEASEOBJREFSw��������T���a��)�����������������T������T���a��	B����UTCNAMETVCLASSTVCLASSLIBRARYLVRESULTTHISVRESULTCSETOBJREFPROGRAM���B�UTOOBJECT������%������'�B��!������(���������u�T��C������7%�C���C����h
�C�this.�b�O����.��oObject=this.&lcName
%�C�����.��<%�C�oObjectb�O�C��
	�C��Release��h	���
�����%%�C��
�C��oHost��h	��O�T�����this.&lcName=.NULL.
T��������������T������ULCNAMEOOBJECTLNCOUNTTHISNOBJECTREFCOUNTAOBJECTREFSRELEASEOHOSTZ���T��C�����!%����
CC����	��J�
T������	B����ULNOBJECTREFCOUNTTHISAOBJECTREFS	��
��
������UVNEWVAL.+T���CC�thisformb�O����6��UTHISOHOSTTHISFORM��������T��C�DATASESSIONv��.%�C�tnDataSessionIDb�N���	��e�G�(�����T��C�������G�(����	B����UTNDATASESSIONID
ONEWOBJECTLNLASTDATASESSIONIDTHISCLASSCLASSLIBRARYB��SetObjRf.prg�USETOBJRFPRG$
������B�C������ULAINSTANCESTHISCLASS���
������UVNEWVAL�����������%����
�C����B�B�-���T��CCC�ERROR��f��%�C��
����OT��CCC��ERROR()�nError��	PROGRAM()�cMethod��LINENO()�nLine���&lcOnError
B��bT��CEC�
 C�
 ��	C�
 �Error:           CC�Z�C�
 �Method:       CC��@��T��C�E��'%�C���������...
	����0T���C�
 �Line:            CC�Z���%�C��
����T���C�
 C�
 �����R���C���9�
�x��	�����UNERRORCMETHODNLINE	LCONERROR
LCERRORMSG
LCCODELINEMSGTHIS
LIGNOREERRORS	STARTMODENAMECAPTIONL%������
����� %����
C���
	��E�B�-���UTHISLSETHOSTSETHOSTLAUTOSETOBJECTREFS
SETOBJECTREFSD%������B�-���T���a��
����T����UTHISLRELEASERELEASEOBJREFSOHOSTrelease,��setobjectref��
setobjectrefs���releaseobjrefs���nobjectrefcount_access���nobjectrefcount_assigni��sethost���newinstance���addtoproject���ninstances_access���ninstances_assign/��ErrorP��Init���DestroyC	��1qAqA�!��1qA3�q����3qB3�BAA�qAA��AA��AQ�Aq�Aa3qR�A�3��3�3q����A���3B23�B3q�3���qA���AA#�q�AAQA�3�AqA3qA���2/)In�"2�>9�H<&]N>�RH�,_KT�fN��lQ�?rhZ��o�R
�)�
�� ���0%�	�v�
�U����%�����"���B�-���T���a��T��C��@��T����
����3%�C�� �form �formset �toolbar �
����<���ULCBASECLASSTHISLRELEASE	BASECLASSOHOSTRELEASEOBJREFSw��������T���a��)�����������������T������T���a��	B����UTCNAMETVCLASSTVCLASSLIBRARYLVRESULTTHISVRESULTCSETOBJREFPROGRAM���B�UTOOBJECT������%������'�B��!������(���������u�T��C������7%�C���C����h
�C�this.�b�O����.��oObject=this.&lcName
%�C�����.��<%�C�oObjectb�O�C��
	�C��Release��h	���
�����%%�C��
�C��oHost��h	��O�T�����this.&lcName=.NULL.
T��������������T������ULCNAMEOOBJECTLNCOUNTTHISNOBJECTREFCOUNTAOBJECTREFSRELEASEOHOSTZ���T��C�����!%����
CC����	��J�
T������	B����ULNOBJECTREFCOUNTTHISAOBJECTREFS	��
��
������UVNEWVAL.+T���CC�thisformb�O����6��UTHISOHOSTTHISFORM��������T��C�DATASESSIONv��.%�C�tnDataSessionIDb�N���	��e�G�(�����T��C�������G�(����	B����UTNDATASESSIONID
ONEWOBJECTLNLASTDATASESSIONIDTHISCLASSCLASSLIBRARYB��SetObjRf.prg�USETOBJRFPRG$
������B�C������ULAINSTANCESTHISCLASS���
������UVNEWVAL�����������%����
�C����B�B�-���T��CCC�ERROR��f��%�C��
����OT��CCC��ERROR()�nError��	PROGRAM()�cMethod��LINENO()�nLine���&lcOnError
B��bT��CEC�
 C�
 ��	C�
 �Error:           CC�Z�C�
 �Method:       CC��@��T��C�E��'%�C���������...
	����0T���C�
 �Line:            CC�Z���%�C��
����T���C�
 C�
 �����R���C���9�
�x��	�����UNERRORCMETHODNLINE	LCONERROR
LCERRORMSG
LCCODELINEMSGTHIS
LIGNOREERRORS	STARTMODENAMECAPTIONL%������
����� %����
C���
	��E�B�-���UTHISLSETHOSTSETHOSTLAUTOSETOBJECTREFS
SETOBJECTREFSD%������B�-���T���a��
����T����UTHISLRELEASERELEASEOBJREFSOHOSTrelease,��setobjectref��
setobjectrefs���releaseobjrefs���nobjectrefcount_access���nobjectrefcount_assigni��sethost���newinstance���addtoproject���ninstances_access���ninstances_assign/��ErrorP��Init���DestroyC	��1qAqA�!��1qA3�q����3qB3�BAA�qAA��AA��AQ�Aq�Aa3qR�A�3��3�3q����A���3B23�B3q�3���qA���AA#�q�AAQA�3�AqA3qA���2/)In�"2�>9�H<&]N>�RH�,_KT�fN��lQ�?rhZ��o�R
�)�
�� ���0%�	�v�
�U����%�����"���B�-���T���a��T��C��@��T����
����3%�C�� �form �formset �toolbar �
����<���ULCBASECLASSTHISLRELEASE	BASECLASSOHOSTRELEASEOBJREFSw��������T���a��)�����������������T������T���a��	B����UTCNAMETVCLASSTVCLASSLIBRARYLVRESULTTHISVRESULTCSETOBJREFPROGRAM���B�UTOOBJECT������%������'�B��!������(���������u�T��C������7%�C���C����h
�C�this.�b�O����.��oObject=this.&lcName
%�C�����.��<%�C�oObjectb�O�C��
	�C��Release��h	���
�����%%�C��
�C��oHost��h	��O�T�����this.&lcName=.NULL.
T��������������T������ULCNAMEOOBJECTLNCOUNTTHISNOBJECTREFCOUNTAOBJECTREFSRELEASEOHOSTZ���T��C�����!%����
CC����	��J�
T������	B����ULNOBJECTREFCOUNTTHISAOBJECTREFS	��
��
������UVNEWVAL.+T���CC�thisformb�O����6��UTHISOHOSTTHISFORM��������T��C�DATASESSIONv��.%�C�tnDataSessionIDb�N���	��e�G�(�����T��C�������G�(����	B����UTNDATASESSIONID
ONEWOBJECTLNLASTDATASESSIONIDTHISCLASSCLASSLIBRARYB��SetObjRf.prg�USETOBJRFPRG$
������B�C������ULAINSTANCESTHISCLASS���
������UVNEWVAL�����������%����
�C����B�B�-���T��CCC�ERROR��f��%�C��
����OT��CCC��ERROR()�nError��	PROGRAM()�cMethod��LINENO()�nLine���&lcOnError
B��bT��CEC�
 C�
 ��	C�
 �Error:           CC�Z�C�
 �Method:       CC��@��T��C�E��'%�C���������...
	����0T���C�
 �Line:            CC�Z���%�C��
����T���C�
 C�
 �����R���C���9�
�x��	�����UNERRORCMETHODNLINE	LCONERROR
LCERRORMSG
LCCODELINEMSGTHIS
LIGNOREERRORS	STARTMODENAMECAPTIONL%������
����� %����
C���
	��E�B�-���UTHISLSETHOSTSETHOSTLAUTOSETOBJECTREFS
SETOBJECTREFSD%������B�-���T���a��
����T����UTHISLRELEASERELEASEOBJREFSOHOSTrelease,��setobjectref��
setobjectrefs���releaseobjrefs���nobjectrefcount_access���nobjectrefcount_assigni��sethost���newinstance���addtoproject���ninstances_access���ninstances_assign/��ErrorP��Init���DestroyC	��1qAqA�!��1qA3�q����3qB3�BAA�qAA��AA��AQ�Aq�Aa3qR�A�3��3�3q����A���3B23�B3q�3���qA���AA#�q�AAQA�3�AqA3qA���2/)In�"2�>9�H<&]N>�RH�,_KT�fN��lQ�?rhZ��o�R
�)�
�� ���0%�	�v�
�U����%�����"���B�-���T���a��T��C��@��T����
����3%�C�� �form �formset �toolbar �
����<���ULCBASECLASSTHISLRELEASE	BASECLASSOHOSTRELEASEOBJREFSw��������T���a��)�����������������T������T���a��	B����UTCNAMETVCLASSTVCLASSLIBRARYLVRESULTTHISVRESULTCSETOBJREFPROGRAM���B�UTOOBJECT������%������'�B��!������(���������u�T��C������7%�C���C����h
�C�this.�b�O����.��oObject=this.&lcName
%�C�����.��<%�C�oObjectb�O�C��
	�C��Release��h	���
�����%%�C��
�C��oHost��h	��O�T�����this.&lcName=.NULL.
T��������������T������ULCNAMEOOBJECTLNCOUNTTHISNOBJECTREFCOUNTAOBJECTREFSRELEASEOHOSTZ���T��C�����!%����
CC����	��J�
T������	B����ULNOBJECTREFCOUNTTHISAOBJECTREFS	��
��
������UVNEWVAL.+T���CC�thisformb�O����6��UTHISOHOSTTHISFORM��������T��C�DATASESSIONv��.%�C�tnDataSessionIDb�N���	��e�G�(�����T��C�������G�(����	B����UTNDATASESSIONID
ONEWOBJECTLNLASTDATASESSIONIDTHISCLASSCLASSLIBRARYB��SetObjRf.prg�USETOBJRFPRG$
������B�C������ULAINSTANCESTHISCLASS���
������UVNEWVAL�����������%����
�C����B�B�-���T��CCC�ERROR��f��%�C��
����OT��CCC��ERROR()�nError��	PROGRAM()�cMethod��LINENO()�nLine���&lcOnError
B��bT��CEC�
 C�
 ��	C�
 �Error:           CC�Z�C�
 �Method:       CC��@��T��C�E��'%�C���������...
	����0T���C�
 �Line:            CC�Z���%�C��
����T���C�
 C�
 �����R���C���9�
�x��	�����UNERRORCMETHODNLINE	LCONERROR
LCERRORMSG
LCCODELINEMSGTHIS
LIGNOREERRORS	STARTMODENAMECAPTIONL%������
����� %����
C���
	��E�B�-���UTHISLSETHOSTSETHOSTLAUTOSETOBJECTREFS
SETOBJECTREFSD%������B�-���T���a��
����T����UTHISLRELEASERELEASEOBJREFSOHOSTrelease,��setobjectref��
setobjectrefs���releaseobjrefs���nobjectrefcount_access���nobjectrefcount_assigni��sethost���newinstance���addtoproject���ninstances_access���ninstances_assign/��ErrorP��Init���DestroyC	��1qAqA�!��1qA3�q����3qB3�BAA�qAA��AA��AQ�Aq�Aa3qR�A�3��3�3q����A���3B23�B3q�3���qA���AA#�q�AAQA�3�AqA3qA���2/)In�"2�>9�H<&]N>�RH�,_KT�fN��lQ�?rhZ��o�R
�)�
�� ���0%�	�v�
�U����%�����"���B�-���T���a��T��C��@��T����
����3%�C�� �form �formset �toolbar �
����<���ULCBASECLASSTHISLRELEASE	BASECLASSOHOSTRELEASEOBJREFSw��������T���a��)�����������������T������T���a��	B����UTCNAMETVCLASSTVCLASSLIBRARYLVRESULTTHISVRESULTCSETOBJREFPROGRAM���B�UTOOBJECT������%������'�B��!������(���������u�T��C������7%�C���C����h
�C�this.�b�O����.��oObject=this.&lcName
%�C�����.��<%�C�oObjectb�O�C��
	�C��Release��h	���
�����%%�C��
�C��oHost��h	��O�T�����this.&lcName=.NULL.
T��������������T������ULCNAMEOOBJECTLNCOUNTTHISNOBJECTREFCOUNTAOBJECTREFSRELEASEOHOSTZ���T��C�����!%����
CC����	��J�
T������	B����ULNOBJECTREFCOUNTTHISAOBJECTREFS	��
��
������UVNEWVAL.+T���CC�thisformb�O����6��UTHISOHOSTTHISFORM��������T��C�DATASESSIONv��.%�C�tnDataSessionIDb�N���	��e�G�(�����T��C�������G�(����	B����UTNDATASESSIONID
ONEWOBJECTLNLASTDATASESSIONIDTHISCLASSCLASSLIBRARYB��SetObjRf.prg�USETOBJRFPRG$
������B�C������ULAINSTANCESTHISCLASS���
������UVNEWVAL�����������%����
�C����B�B�-���T��CCC�ERROR��f��%�C��
����OT��CCC��ERROR()�nError��	PROGRAM()�cMethod��LINENO()�nLine���&lcOnError
B��bT��CEC�
 C�
 ��	C�
 �Error:           CC�Z�C�
 �Method:       CC��@��T��C�E��'%�C���������...
	����0T���C�
 �Line:            CC�Z���%�C��
����T���C�
 C�
 �����R���C���9�
�x��	�����UNERRORCMETHODNLINE	LCONERROR
LCERRORMSG
LCCODELINEMSGTHIS
LIGNOREERRORS	STARTMODENAMECAPTIONL%������
����� %����
C���
	��E�B�-���UTHISLSETHOSTSETHOSTLAUTOSETOBJECTREFS
SETOBJECTREFSD%������B�-���T���a��
����T����UTHISLRELEASERELEASEOBJREFSOHOSTrelease,��setobjectref��
setobjectrefs���releaseobjrefs���nobjectrefcount_access���nobjectrefcount_assigni��sethost���newinstance���addtoproject���ninstances_access���ninstances_assign/��ErrorP��Init���DestroyC	��1qAqA�!��1qA3�q����3qB3�BAA�qAA��AA��AQ�Aq�Aa3qR�A�3��3�3q����A���3B23�B3q�3���qA���AA#�q�AAQA�3�AqA3qA���2/)In�"2�>9�H<&]N>�RH�,_KT�fN��lQ�?rhZ��o�R
�)�
�� ���0%�	�v�
�U����%�����"���B�-���T���a��T��C��@��T����
����3%�C�� �form �formset �toolbar �
����<���ULCBASECLASSTHISLRELEASE	BASECLASSOHOSTRELEASEOBJREFSw��������T���a��)�����������������T������T���a��	B����UTCNAMETVCLASSTVCLASSLIBRARYLVRESULTTHISVRESULTCSETOBJREFPROGRAM���B�UTOOBJECT������%������'�B��!������(���������u�T��C������7%�C���C����h
�C�this.�b�O����.��oObject=this.&lcName
%�C�����.��<%�C�oObjectb�O�C��
	�C��Release��h	���
�����%%�C��
�C��oHost��h	��O�T�����this.&lcName=.NULL.
T��������������T������ULCNAMEOOBJECTLNCOUNTTHISNOBJECTREFCOUNTAOBJECTREFSRELEASEOHOSTZ���T��C�����!%����
CC����	��J�
T������	B����ULNOBJECTREFCOUNTTHISAOBJECTREFS	��
��
������UVNEWVAL.+T���CC�thisformb�O����6��UTHISOHOSTTHISFORM��������T��C�DATASESSIONv��.%�C�tnDataSessionIDb�N���	��e�G�(�����T��C�������G�(����	B����UTNDATASESSIONID
ONEWOBJECTLNLASTDATASESSIONIDTHISCLASSCLASSLIBRARYB��SetObjRf.prg�USETOBJRFPRG$
������B�C������ULAINSTANCESTHISCLASS���
������UVNEWVAL�����������%����
�C����B�B�-���T��CCC�ERROR��f��%�C��
����OT��CCC��ERROR()�nError��	PROGRAM()�cMethod��LINENO()�nLine���&lcOnError
B��bT��CEC�
 C�
 ��	C�
 �Error:           CC�Z�C�
 �Method:       CC��@��T��C�E��'%�C���������...
	����0T���C�
 �Line:            CC�Z���%�C��
����T���C�
 C�
 �����R���C���9�
�x��	�����UNERRORCMETHODNLINE	LCONERROR
LCERRORMSG
LCCODELINEMSGTHIS
LIGNOREERRORS	STARTMODENAMECAPTIONL%������
����� %����
C���
	��E�B�-���UTHISLSETHOSTSETHOSTLAUTOSETOBJECTREFS
SETOBJECTREFSD%������B�-���T���a��
����T����UTHISLRELEASERELEASEOBJREFSOHOSTrelease,��setobjectref��
setobjectrefs���releaseobjrefs���nobjectrefcount_access���nobjectrefcount_assigni��sethost���newinstance���addtoproject���ninstances_access���ninstances_assign/��ErrorP��Init���DestroyC	��1qAqA�!��1qA3�q����3qB3�BAA�qAA��AA��AQ�Aq�Aa3qR�A�3��3�3q����A���3B23�B3q�3���qA���AA#�q�AAQA�3�AqA3qA���2/)In�"2�>9�H<&]N>�RH�,_KT�fN��lQ�?rhZ��o�R
�)�
�� ���0%�	�v�
�U����%�����"���B�-���T���a��T��C��@��T����
����3%�C�� �form �formset �toolbar �
����<���ULCBASECLASSTHISLRELEASE	BASECLASSOHOSTRELEASEOBJREFSw��������T���a��)�����������������T������T���a��	B����UTCNAMETVCLASSTVCLASSLIBRARYLVRESULTTHISVRESULTCSETOBJREFPROGRAM���B�UTOOBJECT������%������'�B��!������(���������u�T��C������7%�C���C����h
�C�this.�b�O����.��oObject=this.&lcName
%�C�����.��<%�C�oObjectb�O�C��
	�C��Release��h	���
�����%%�C��
�C��oHost��h	��O�T�����this.&lcName=.NULL.
T��������������T������ULCNAMEOOBJECTLNCOUNTTHISNOBJECTREFCOUNTAOBJECTREFSRELEASEOHOSTZ���T��C�����!%����
CC����	��J�
T������	B����ULNOBJECTREFCOUNTTHISAOBJECTREFS	��
��
������UVNEWVAL.+T���CC�thisformb�O����6��UTHISOHOSTTHISFORM��������T��C�DATASESSIONv��.%�C�tnDataSessionIDb�N���	��e�G�(�����T��C�������G�(����	B����UTNDATASESSIONID
ONEWOBJECTLNLASTDATASESSIONIDTHISCLASSCLASSLIBRARYB��SetObjRf.prg�USETOBJRFPRG$
������B�C������ULAINSTANCESTHISCLASS���
������UVNEWVAL�����������%����
�C����B�B�-���T��CCC�ERROR��f��%�C��
����OT��CCC��ERROR()�nError��	PROGRAM()�cMethod��LINENO()�nLine���&lcOnError
B��bT��CEC�
 C�
 ��	C�
 �Error:           CC�Z�C�
 �Method:       CC��@��T��C�E��'%�C���������...
	����0T���C�
 �Line:            CC�Z���%�C��
����T���C�
 C�
 �����R���C���9�
�x��	�����UNERRORCMETHODNLINE	LCONERROR
LCERRORMSG
LCCODELINEMSGTHIS
LIGNOREERRORS	STARTMODENAMECAPTIONL%������
����� %����
C���
	��E�B�-���UTHISLSETHOSTSETHOSTLAUTOSETOBJECTREFS
SETOBJECTREFSD%������B�-���T���a��
����T����UTHISLRELEASERELEASEOBJREFSOHOSTrelease,��setobjectref��
setobjectrefs���releaseobjrefs���nobjectrefcount_access���nobjectrefcount_assigni��sethost���newinstance���addtoproject���ninstances_access���ninstances_assign/��ErrorP��Init���DestroyC	��1qAqA�!��1qA3�q����3qB3�BAA�qAA��AA��AQ�Aq�Aa3qR�A�3��3�3q����A���3B23�B3q�3���qA���AA#�q�AAQA�3�AqA3qA���2/)In�"2�>9�H<&]N>�RH�,_KT�fN��lQ�?rhZ��o�R
�)�
]PROCEDURE release
LOCAL lcBaseClass

IF this.lRelease
	NODEFAULT
	RETURN .F.
ENDIF
this.lRelease=.T.
lcBaseClass=LOWER(this.BaseClass)
this.oHost=.NULL.
this.ReleaseObjRefs
IF NOT INLIST(lcBaseClass+" ","form ","formset ","toolbar ")
	RELEASE this
ENDIF

ENDPROC
PROCEDURE setobjectref
LPARAMETERS tcName,tvClass,tvClassLibrary
LOCAL lvResult

this.vResult=.T.
DO (this.cSetObjRefProgram) WITH (this),(tcName),(tvClass),(tvClassLibrary)
lvResult=this.vResult
this.vResult=.T.
RETURN lvResult

ENDPROC
PROCEDURE setobjectrefs
LPARAMETERS toObject

RETURN

ENDPROC
PROCEDURE releaseobjrefs
LOCAL lcName,oObject,lnCount

IF this.nObjectRefCount=0
	RETURN
ENDIF
FOR lnCount = this.nObjectRefCount TO 1 STEP -1
	lcName=this.aObjectRefs[lnCount,1]
	IF EMPTY(lcName) OR NOT PEMSTATUS(this,lcName,5) OR TYPE("this."+lcName)#"O"
		LOOP
	ENDIF
	oObject=this.&lcName
	IF ISNULL(oObject)
		LOOP
	ENDIF
	IF TYPE("oObject")=="O" AND NOT ISNULL(oObject) AND PEMSTATUS(oObject,"Release",5)
		oObject.Release
	ENDIF
	IF NOT ISNULL(oObject) AND PEMSTATUS(oObject,"oHost",5)
		oObject.oHost=.NULL.
	ENDIF
	this.&lcName=.NULL.
	oObject=.NULL.
ENDFOR
DIMENSION this.aObjectRefs[1,3]
this.aObjectRefs=""

ENDPROC
PROCEDURE nobjectrefcount_access
LOCAL lnObjectRefCount

lnObjectRefCount=ALEN(this.aObjectRefs,1)
IF lnObjectRefCount=1 AND EMPTY(this.aObjectRefs[1])
	lnObjectRefCount=0
ENDIF
RETURN lnObjectRefCount

ENDPROC
PROCEDURE nobjectrefcount_assign
LPARAMETERS m.vNewVal

ERROR 1743

ENDPROC
PROCEDURE sethost
this.oHost=IIF(TYPE("thisform")=="O",thisform,.NULL.)

ENDPROC
PROCEDURE newinstance
LPARAMETERS tnDataSessionID
LOCAL oNewObject,lnLastDataSessionID

lnLastDataSessionID=SET("DATASESSION")
IF TYPE("tnDataSessionID")=="N" AND tnDataSessionID>=1
	SET DATASESSION TO tnDataSessionID
ENDIF
oNewObject=NEWOBJECT(this.Class,this.ClassLibrary)
SET DATASESSION TO (lnLastDataSessionID)
RETURN oNewObject

ENDPROC
PROCEDURE addtoproject
*-- Dummy code for adding files to project.
RETURN

DO SetObjRf.prg

ENDPROC
PROCEDURE ninstances_access
LOCAL laInstances[1]
	
RETURN AINSTANCE(laInstances,this.Class)

ENDPROC
PROCEDURE ninstances_assign
LPARAMETERS vNewVal

ERROR 1743

ENDPROC
PROCEDURE Error
LPARAMETERS nError, cMethod, nLine
LOCAL lcOnError,lcErrorMsg,lcCodeLineMsg

IF this.lIgnoreErrors OR _vfp.StartMode>0
	RETURN .F.
ENDIF
lcOnError=UPPER(ALLTRIM(ON("ERROR")))
IF NOT EMPTY(lcOnError)
	lcOnError=STRTRAN(STRTRAN(STRTRAN(lcOnError,"ERROR()","nError"), ;
			"PROGRAM()","cMethod"),"LINENO()","nLine")
	&lcOnError
	RETURN
ENDIF
lcErrorMsg=MESSAGE()+CHR(13)+CHR(13)+this.Name+CHR(13)+ ;
		"Error:           "+ALLTRIM(STR(nError))+CHR(13)+ ;
		"Method:       "+LOWER(ALLTRIM(cMethod))
lcCodeLineMsg=MESSAGE(1)
IF BETWEEN(nLine,1,100000) AND NOT lcCodeLineMsg="..."
	lcErrorMsg=lcErrorMsg+CHR(13)+"Line:            "+ALLTRIM(STR(nLine))
	IF NOT EMPTY(lcCodeLineMsg)
		lcErrorMsg=lcErrorMsg+CHR(13)+CHR(13)+lcCodeLineMsg
	ENDIF
ENDIF
WAIT CLEAR
MESSAGEBOX(lcErrorMsg,16,_screen.Caption)
ERROR nError

ENDPROC
PROCEDURE Init
IF this.lSetHost
	this.SetHost
ENDIF
IF this.lAutoSetObjectRefs AND NOT this.SetObjectRefs(this)
	RETURN .F.
ENDIF

ENDPROC
PROCEDURE Destroy
IF this.lRelease
	RETURN .F.
ENDIF
this.lRelease=.T.
this.ReleaseObjRefs
this.oHost=.NULL.

ENDPROC

]PROCEDURE release
LOCAL lcBaseClass

IF this.lRelease
	NODEFAULT
	RETURN .F.
ENDIF
this.lRelease=.T.
lcBaseClass=LOWER(this.BaseClass)
this.oHost=.NULL.
this.ReleaseObjRefs
IF NOT INLIST(lcBaseClass+" ","form ","formset ","toolbar ")
	RELEASE this
ENDIF

ENDPROC
PROCEDURE setobjectref
LPARAMETERS tcName,tvClass,tvClassLibrary
LOCAL lvResult

this.vResult=.T.
DO (this.cSetObjRefProgram) WITH (this),(tcName),(tvClass),(tvClassLibrary)
lvResult=this.vResult
this.vResult=.T.
RETURN lvResult

ENDPROC
PROCEDURE setobjectrefs
LPARAMETERS toObject

RETURN

ENDPROC
PROCEDURE releaseobjrefs
LOCAL lcName,oObject,lnCount

IF this.nObjectRefCount=0
	RETURN
ENDIF
FOR lnCount = this.nObjectRefCount TO 1 STEP -1
	lcName=this.aObjectRefs[lnCount,1]
	IF EMPTY(lcName) OR NOT PEMSTATUS(this,lcName,5) OR TYPE("this."+lcName)#"O"
		LOOP
	ENDIF
	oObject=this.&lcName
	IF ISNULL(oObject)
		LOOP
	ENDIF
	IF TYPE("oObject")=="O" AND NOT ISNULL(oObject) AND PEMSTATUS(oObject,"Release",5)
		oObject.Release
	ENDIF
	IF NOT ISNULL(oObject) AND PEMSTATUS(oObject,"oHost",5)
		oObject.oHost=.NULL.
	ENDIF
	this.&lcName=.NULL.
	oObject=.NULL.
ENDFOR
DIMENSION this.aObjectRefs[1,3]
this.aObjectRefs=""

ENDPROC
PROCEDURE nobjectrefcount_access
LOCAL lnObjectRefCount

lnObjectRefCount=ALEN(this.aObjectRefs,1)
IF lnObjectRefCount=1 AND EMPTY(this.aObjectRefs[1])
	lnObjectRefCount=0
ENDIF
RETURN lnObjectRefCount

ENDPROC
PROCEDURE nobjectrefcount_assign
LPARAMETERS m.vNewVal

ERROR 1743

ENDPROC
PROCEDURE sethost
this.oHost=IIF(TYPE("thisform")=="O",thisform,.NULL.)

ENDPROC
PROCEDURE newinstance
LPARAMETERS tnDataSessionID
LOCAL oNewObject,lnLastDataSessionID

lnLastDataSessionID=SET("DATASESSION")
IF TYPE("tnDataSessionID")=="N" AND tnDataSessionID>=1
	SET DATASESSION TO tnDataSessionID
ENDIF
oNewObject=NEWOBJECT(this.Class,this.ClassLibrary)
SET DATASESSION TO (lnLastDataSessionID)
RETURN oNewObject

ENDPROC
PROCEDURE addtoproject
*-- Dummy code for adding files to project.
RETURN

DO SetObjRf.prg

ENDPROC
PROCEDURE ninstances_access
LOCAL laInstances[1]
	
RETURN AINSTANCE(laInstances,this.Class)

ENDPROC
PROCEDURE ninstances_assign
LPARAMETERS vNewVal

ERROR 1743

ENDPROC
PROCEDURE Error
LPARAMETERS nError, cMethod, nLine
LOCAL lcOnError,lcErrorMsg,lcCodeLineMsg

IF this.lIgnoreErrors OR _vfp.StartMode>0
	RETURN .F.
ENDIF
lcOnError=UPPER(ALLTRIM(ON("ERROR")))
IF NOT EMPTY(lcOnError)
	lcOnError=STRTRAN(STRTRAN(STRTRAN(lcOnError,"ERROR()","nError"), ;
			"PROGRAM()","cMethod"),"LINENO()","nLine")
	&lcOnError
	RETURN
ENDIF
lcErrorMsg=MESSAGE()+CHR(13)+CHR(13)+this.Name+CHR(13)+ ;
		"Error:           "+ALLTRIM(STR(nError))+CHR(13)+ ;
		"Method:       "+LOWER(ALLTRIM(cMethod))
lcCodeLineMsg=MESSAGE(1)
IF BETWEEN(nLine,1,100000) AND NOT lcCodeLineMsg="..."
	lcErrorMsg=lcErrorMsg+CHR(13)+"Line:            "+ALLTRIM(STR(nLine))
	IF NOT EMPTY(lcCodeLineMsg)
		lcErrorMsg=lcErrorMsg+CHR(13)+CHR(13)+lcCodeLineMsg
	ENDIF
ENDIF
WAIT CLEAR
MESSAGEBOX(lcErrorMsg,16,_screen.Caption)
ERROR nError

ENDPROC
PROCEDURE Init
IF this.lSetHost
	this.SetHost
ENDIF
IF this.lAutoSetObjectRefs AND NOT this.SetObjectRefs(this)
	RETURN .F.
ENDIF

ENDPROC
PROCEDURE Destroy
IF this.lRelease
	RETURN .F.
ENDIF
this.lRelease=.T.
this.ReleaseObjRefs
this.oHost=.NULL.

ENDPROC

]PROCEDURE release
LOCAL lcBaseClass

IF this.lRelease
	NODEFAULT
	RETURN .F.
ENDIF
this.lRelease=.T.
lcBaseClass=LOWER(this.BaseClass)
this.oHost=.NULL.
this.ReleaseObjRefs
IF NOT INLIST(lcBaseClass+" ","form ","formset ","toolbar ")
	RELEASE this
ENDIF

ENDPROC
PROCEDURE setobjectref
LPARAMETERS tcName,tvClass,tvClassLibrary
LOCAL lvResult

this.vResult=.T.
DO (this.cSetObjRefProgram) WITH (this),(tcName),(tvClass),(tvClassLibrary)
lvResult=this.vResult
this.vResult=.T.
RETURN lvResult

ENDPROC
PROCEDURE setobjectrefs
LPARAMETERS toObject

RETURN

ENDPROC
PROCEDURE releaseobjrefs
LOCAL lcName,oObject,lnCount

IF this.nObjectRefCount=0
	RETURN
ENDIF
FOR lnCount = this.nObjectRefCount TO 1 STEP -1
	lcName=this.aObjectRefs[lnCount,1]
	IF EMPTY(lcName) OR NOT PEMSTATUS(this,lcName,5) OR TYPE("this."+lcName)#"O"
		LOOP
	ENDIF
	oObject=this.&lcName
	IF ISNULL(oObject)
		LOOP
	ENDIF
	IF TYPE("oObject")=="O" AND NOT ISNULL(oObject) AND PEMSTATUS(oObject,"Release",5)
		oObject.Release
	ENDIF
	IF NOT ISNULL(oObject) AND PEMSTATUS(oObject,"oHost",5)
		oObject.oHost=.NULL.
	ENDIF
	this.&lcName=.NULL.
	oObject=.NULL.
ENDFOR
DIMENSION this.aObjectRefs[1,3]
this.aObjectRefs=""

ENDPROC
PROCEDURE nobjectrefcount_access
LOCAL lnObjectRefCount

lnObjectRefCount=ALEN(this.aObjectRefs,1)
IF lnObjectRefCount=1 AND EMPTY(this.aObjectRefs[1])
	lnObjectRefCount=0
ENDIF
RETURN lnObjectRefCount

ENDPROC
PROCEDURE nobjectrefcount_assign
LPARAMETERS m.vNewVal

ERROR 1743

ENDPROC
PROCEDURE sethost
this.oHost=IIF(TYPE("thisform")=="O",thisform,.NULL.)

ENDPROC
PROCEDURE newinstance
LPARAMETERS tnDataSessionID
LOCAL oNewObject,lnLastDataSessionID

lnLastDataSessionID=SET("DATASESSION")
IF TYPE("tnDataSessionID")=="N" AND tnDataSessionID>=1
	SET DATASESSION TO tnDataSessionID
ENDIF
oNewObject=NEWOBJECT(this.Class,this.ClassLibrary)
SET DATASESSION TO (lnLastDataSessionID)
RETURN oNewObject

ENDPROC
PROCEDURE addtoproject
*-- Dummy code for adding files to project.
RETURN

DO SetObjRf.prg

ENDPROC
PROCEDURE ninstances_access
LOCAL laInstances[1]
	
RETURN AINSTANCE(laInstances,this.Class)

ENDPROC
PROCEDURE ninstances_assign
LPARAMETERS vNewVal

ERROR 1743

ENDPROC
PROCEDURE Destroy
IF this.lRelease
	RETURN .F.
ENDIF
this.lRelease=.T.
this.ReleaseObjRefs
this.oHost=.NULL.

ENDPROC
PROCEDURE Init
IF this.lSetHost
	this.SetHost
ENDIF
IF this.lAutoSetObjectRefs AND NOT this.SetObjectRefs(this)
	RETURN .F.
ENDIF

ENDPROC
PROCEDURE Error
LPARAMETERS nError, cMethod, nLine
LOCAL lcOnError,lcErrorMsg,lcCodeLineMsg

IF this.lIgnoreErrors OR _vfp.StartMode>0
	RETURN .F.
ENDIF
lcOnError=UPPER(ALLTRIM(ON("ERROR")))
IF NOT EMPTY(lcOnError)
	lcOnError=STRTRAN(STRTRAN(STRTRAN(lcOnError,"ERROR()","nError"), ;
			"PROGRAM()","cMethod"),"LINENO()","nLine")
	&lcOnError
	RETURN
ENDIF
lcErrorMsg=MESSAGE()+CHR(13)+CHR(13)+this.Name+CHR(13)+ ;
		"Error:           "+ALLTRIM(STR(nError))+CHR(13)+ ;
		"Method:       "+LOWER(ALLTRIM(cMethod))
lcCodeLineMsg=MESSAGE(1)
IF BETWEEN(nLine,1,100000) AND NOT lcCodeLineMsg="..."
	lcErrorMsg=lcErrorMsg+CHR(13)+"Line:            "+ALLTRIM(STR(nLine))
	IF NOT EMPTY(lcCodeLineMsg)
		lcErrorMsg=lcErrorMsg+CHR(13)+CHR(13)+lcCodeLineMsg
	ENDIF
ENDIF
WAIT CLEAR
MESSAGEBOX(lcErrorMsg,16,_screen.Caption)
ERROR nError

ENDPROC

]PROCEDURE release
LOCAL lcBaseClass

IF this.lRelease
	NODEFAULT
	RETURN .F.
ENDIF
this.lRelease=.T.
lcBaseClass=LOWER(this.BaseClass)
this.oHost=.NULL.
this.ReleaseObjRefs
IF NOT INLIST(lcBaseClass+" ","form ","formset ","toolbar ")
	RELEASE this
ENDIF

ENDPROC
PROCEDURE setobjectref
LPARAMETERS tcName,tvClass,tvClassLibrary
LOCAL lvResult

this.vResult=.T.
DO (this.cSetObjRefProgram) WITH (this),(tcName),(tvClass),(tvClassLibrary)
lvResult=this.vResult
this.vResult=.T.
RETURN lvResult

ENDPROC
PROCEDURE setobjectrefs
LPARAMETERS toObject

RETURN

ENDPROC
PROCEDURE releaseobjrefs
LOCAL lcName,oObject,lnCount

IF this.nObjectRefCount=0
	RETURN
ENDIF
FOR lnCount = this.nObjectRefCount TO 1 STEP -1
	lcName=this.aObjectRefs[lnCount,1]
	IF EMPTY(lcName) OR NOT PEMSTATUS(this,lcName,5) OR TYPE("this."+lcName)#"O"
		LOOP
	ENDIF
	oObject=this.&lcName
	IF ISNULL(oObject)
		LOOP
	ENDIF
	IF TYPE("oObject")=="O" AND NOT ISNULL(oObject) AND PEMSTATUS(oObject,"Release",5)
		oObject.Release
	ENDIF
	IF NOT ISNULL(oObject) AND PEMSTATUS(oObject,"oHost",5)
		oObject.oHost=.NULL.
	ENDIF
	this.&lcName=.NULL.
	oObject=.NULL.
ENDFOR
DIMENSION this.aObjectRefs[1,3]
this.aObjectRefs=""

ENDPROC
PROCEDURE nobjectrefcount_access
LOCAL lnObjectRefCount

lnObjectRefCount=ALEN(this.aObjectRefs,1)
IF lnObjectRefCount=1 AND EMPTY(this.aObjectRefs[1])
	lnObjectRefCount=0
ENDIF
RETURN lnObjectRefCount

ENDPROC
PROCEDURE nobjectrefcount_assign
LPARAMETERS m.vNewVal

ERROR 1743

ENDPROC
PROCEDURE sethost
this.oHost=IIF(TYPE("thisform")=="O",thisform,.NULL.)

ENDPROC
PROCEDURE newinstance
LPARAMETERS tnDataSessionID
LOCAL oNewObject,lnLastDataSessionID

lnLastDataSessionID=SET("DATASESSION")
IF TYPE("tnDataSessionID")=="N" AND tnDataSessionID>=1
	SET DATASESSION TO tnDataSessionID
ENDIF
oNewObject=NEWOBJECT(this.Class,this.ClassLibrary)
SET DATASESSION TO (lnLastDataSessionID)
RETURN oNewObject

ENDPROC
PROCEDURE addtoproject
*-- Dummy code for adding files to project.
RETURN

DO SetObjRf.prg

ENDPROC
PROCEDURE ninstances_access
LOCAL laInstances[1]
	
RETURN AINSTANCE(laInstances,this.Class)

ENDPROC
PROCEDURE ninstances_assign
LPARAMETERS vNewVal

ERROR 1743

ENDPROC
PROCEDURE Error
LPARAMETERS nError, cMethod, nLine
LOCAL lcOnError,lcErrorMsg,lcCodeLineMsg

IF this.lIgnoreErrors OR _vfp.StartMode>0
	RETURN .F.
ENDIF
lcOnError=UPPER(ALLTRIM(ON("ERROR")))
IF NOT EMPTY(lcOnError)
	lcOnError=STRTRAN(STRTRAN(STRTRAN(lcOnError,"ERROR()","nError"), ;
			"PROGRAM()","cMethod"),"LINENO()","nLine")
	&lcOnError
	RETURN
ENDIF
lcErrorMsg=MESSAGE()+CHR(13)+CHR(13)+this.Name+CHR(13)+ ;
		"Error:           "+ALLTRIM(STR(nError))+CHR(13)+ ;
		"Method:       "+LOWER(ALLTRIM(cMethod))
lcCodeLineMsg=MESSAGE(1)
IF BETWEEN(nLine,1,100000) AND NOT lcCodeLineMsg="..."
	lcErrorMsg=lcErrorMsg+CHR(13)+"Line:            "+ALLTRIM(STR(nLine))
	IF NOT EMPTY(lcCodeLineMsg)
		lcErrorMsg=lcErrorMsg+CHR(13)+CHR(13)+lcCodeLineMsg
	ENDIF
ENDIF
WAIT CLEAR
MESSAGEBOX(lcErrorMsg,16,_screen.Caption)
ERROR nError

ENDPROC
PROCEDURE Init
IF this.lSetHost
	this.SetHost
ENDIF
IF this.lAutoSetObjectRefs AND NOT this.SetObjectRefs(this)
	RETURN .F.
ENDIF

ENDPROC
PROCEDURE Destroy
IF this.lRelease
	RETURN .F.
ENDIF
this.lRelease=.T.
this.ReleaseObjRefs
this.oHost=.NULL.

ENDPROC

]PROCEDURE release
LOCAL lcBaseClass

IF this.lRelease
	NODEFAULT
	RETURN .F.
ENDIF
this.lRelease=.T.
lcBaseClass=LOWER(this.BaseClass)
this.oHost=.NULL.
this.ReleaseObjRefs
IF NOT INLIST(lcBaseClass+" ","form ","formset ","toolbar ")
	RELEASE this
ENDIF

ENDPROC
PROCEDURE setobjectref
LPARAMETERS tcName,tvClass,tvClassLibrary
LOCAL lvResult

this.vResult=.T.
DO (this.cSetObjRefProgram) WITH (this),(tcName),(tvClass),(tvClassLibrary)
lvResult=this.vResult
this.vResult=.T.
RETURN lvResult

ENDPROC
PROCEDURE setobjectrefs
LPARAMETERS toObject

RETURN

ENDPROC
PROCEDURE releaseobjrefs
LOCAL lcName,oObject,lnCount

IF this.nObjectRefCount=0
	RETURN
ENDIF
FOR lnCount = this.nObjectRefCount TO 1 STEP -1
	lcName=this.aObjectRefs[lnCount,1]
	IF EMPTY(lcName) OR NOT PEMSTATUS(this,lcName,5) OR TYPE("this."+lcName)#"O"
		LOOP
	ENDIF
	oObject=this.&lcName
	IF ISNULL(oObject)
		LOOP
	ENDIF
	IF TYPE("oObject")=="O" AND NOT ISNULL(oObject) AND PEMSTATUS(oObject,"Release",5)
		oObject.Release
	ENDIF
	IF NOT ISNULL(oObject) AND PEMSTATUS(oObject,"oHost",5)
		oObject.oHost=.NULL.
	ENDIF
	this.&lcName=.NULL.
	oObject=.NULL.
ENDFOR
DIMENSION this.aObjectRefs[1,3]
this.aObjectRefs=""

ENDPROC
PROCEDURE nobjectrefcount_access
LOCAL lnObjectRefCount

lnObjectRefCount=ALEN(this.aObjectRefs,1)
IF lnObjectRefCount=1 AND EMPTY(this.aObjectRefs[1])
	lnObjectRefCount=0
ENDIF
RETURN lnObjectRefCount

ENDPROC
PROCEDURE nobjectrefcount_assign
LPARAMETERS m.vNewVal

ERROR 1743

ENDPROC
PROCEDURE sethost
this.oHost=IIF(TYPE("thisform")=="O",thisform,.NULL.)

ENDPROC
PROCEDURE newinstance
LPARAMETERS tnDataSessionID
LOCAL oNewObject,lnLastDataSessionID

lnLastDataSessionID=SET("DATASESSION")
IF TYPE("tnDataSessionID")=="N" AND tnDataSessionID>=1
	SET DATASESSION TO tnDataSessionID
ENDIF
oNewObject=NEWOBJECT(this.Class,this.ClassLibrary)
SET DATASESSION TO (lnLastDataSessionID)
RETURN oNewObject

ENDPROC
PROCEDURE addtoproject
*-- Dummy code for adding files to project.
RETURN

DO SetObjRf.prg

ENDPROC
PROCEDURE ninstances_access
LOCAL laInstances[1]
	
RETURN AINSTANCE(laInstances,this.Class)

ENDPROC
PROCEDURE ninstances_assign
LPARAMETERS vNewVal

ERROR 1743

ENDPROC
PROCEDURE Error
LPARAMETERS nError, cMethod, nLine
LOCAL lcOnError,lcErrorMsg,lcCodeLineMsg

IF this.lIgnoreErrors OR _vfp.StartMode>0
	RETURN .F.
ENDIF
lcOnError=UPPER(ALLTRIM(ON("ERROR")))
IF NOT EMPTY(lcOnError)
	lcOnError=STRTRAN(STRTRAN(STRTRAN(lcOnError,"ERROR()","nError"), ;
			"PROGRAM()","cMethod"),"LINENO()","nLine")
	&lcOnError
	RETURN
ENDIF
lcErrorMsg=MESSAGE()+CHR(13)+CHR(13)+this.Name+CHR(13)+ ;
		"Error:           "+ALLTRIM(STR(nError))+CHR(13)+ ;
		"Method:       "+LOWER(ALLTRIM(cMethod))
lcCodeLineMsg=MESSAGE(1)
IF BETWEEN(nLine,1,100000) AND NOT lcCodeLineMsg="..."
	lcErrorMsg=lcErrorMsg+CHR(13)+"Line:            "+ALLTRIM(STR(nLine))
	IF NOT EMPTY(lcCodeLineMsg)
		lcErrorMsg=lcErrorMsg+CHR(13)+CHR(13)+lcCodeLineMsg
	ENDIF
ENDIF
WAIT CLEAR
MESSAGEBOX(lcErrorMsg,16,_screen.Caption)
ERROR nError

ENDPROC
PROCEDURE Init
IF this.lSetHost
	this.SetHost
ENDIF
IF this.lAutoSetObjectRefs AND NOT this.SetObjectRefs(this)
	RETURN .F.
ENDIF

ENDPROC
PROCEDURE Destroy
IF this.lRelease
	RETURN .F.
ENDIF
this.lRelease=.T.
this.ReleaseObjRefs
this.oHost=.NULL.

ENDPROC

]PROCEDURE release
LOCAL lcBaseClass

IF this.lRelease
	NODEFAULT
	RETURN .F.
ENDIF
this.lRelease=.T.
lcBaseClass=LOWER(this.BaseClass)
this.oHost=.NULL.
this.ReleaseObjRefs
IF NOT INLIST(lcBaseClass+" ","form ","formset ","toolbar ")
	RELEASE this
ENDIF

ENDPROC
PROCEDURE setobjectref
LPARAMETERS tcName,tvClass,tvClassLibrary
LOCAL lvResult

this.vResult=.T.
DO (this.cSetObjRefProgram) WITH (this),(tcName),(tvClass),(tvClassLibrary)
lvResult=this.vResult
this.vResult=.T.
RETURN lvResult

ENDPROC
PROCEDURE setobjectrefs
LPARAMETERS toObject

RETURN

ENDPROC
PROCEDURE releaseobjrefs
LOCAL lcName,oObject,lnCount

IF this.nObjectRefCount=0
	RETURN
ENDIF
FOR lnCount = this.nObjectRefCount TO 1 STEP -1
	lcName=this.aObjectRefs[lnCount,1]
	IF EMPTY(lcName) OR NOT PEMSTATUS(this,lcName,5) OR TYPE("this."+lcName)#"O"
		LOOP
	ENDIF
	oObject=this.&lcName
	IF ISNULL(oObject)
		LOOP
	ENDIF
	IF TYPE("oObject")=="O" AND NOT ISNULL(oObject) AND PEMSTATUS(oObject,"Release",5)
		oObject.Release
	ENDIF
	IF NOT ISNULL(oObject) AND PEMSTATUS(oObject,"oHost",5)
		oObject.oHost=.NULL.
	ENDIF
	this.&lcName=.NULL.
	oObject=.NULL.
ENDFOR
DIMENSION this.aObjectRefs[1,3]
this.aObjectRefs=""

ENDPROC
PROCEDURE nobjectrefcount_access
LOCAL lnObjectRefCount

lnObjectRefCount=ALEN(this.aObjectRefs,1)
IF lnObjectRefCount=1 AND EMPTY(this.aObjectRefs[1])
	lnObjectRefCount=0
ENDIF
RETURN lnObjectRefCount

ENDPROC
PROCEDURE nobjectrefcount_assign
LPARAMETERS m.vNewVal

ERROR 1743

ENDPROC
PROCEDURE sethost
this.oHost=IIF(TYPE("thisform")=="O",thisform,.NULL.)

ENDPROC
PROCEDURE newinstance
LPARAMETERS tnDataSessionID
LOCAL oNewObject,lnLastDataSessionID

lnLastDataSessionID=SET("DATASESSION")
IF TYPE("tnDataSessionID")=="N" AND tnDataSessionID>=1
	SET DATASESSION TO tnDataSessionID
ENDIF
oNewObject=NEWOBJECT(this.Class,this.ClassLibrary)
SET DATASESSION TO (lnLastDataSessionID)
RETURN oNewObject

ENDPROC
PROCEDURE addtoproject
*-- Dummy code for adding files to project.
RETURN

DO SetObjRf.prg

ENDPROC
PROCEDURE ninstances_access
LOCAL laInstances[1]
	
RETURN AINSTANCE(laInstances,this.Class)

ENDPROC
PROCEDURE ninstances_assign
LPARAMETERS vNewVal

ERROR 1743

ENDPROC
PROCEDURE Error
LPARAMETERS nError, cMethod, nLine
LOCAL lcOnError,lcErrorMsg,lcCodeLineMsg

IF this.lIgnoreErrors OR _vfp.StartMode>0
	RETURN .F.
ENDIF
lcOnError=UPPER(ALLTRIM(ON("ERROR")))
IF NOT EMPTY(lcOnError)
	lcOnError=STRTRAN(STRTRAN(STRTRAN(lcOnError,"ERROR()","nError"), ;
			"PROGRAM()","cMethod"),"LINENO()","nLine")
	&lcOnError
	RETURN
ENDIF
lcErrorMsg=MESSAGE()+CHR(13)+CHR(13)+this.Name+CHR(13)+ ;
		"Error:           "+ALLTRIM(STR(nError))+CHR(13)+ ;
		"Method:       "+LOWER(ALLTRIM(cMethod))
lcCodeLineMsg=MESSAGE(1)
IF BETWEEN(nLine,1,100000) AND NOT lcCodeLineMsg="..."
	lcErrorMsg=lcErrorMsg+CHR(13)+"Line:            "+ALLTRIM(STR(nLine))
	IF NOT EMPTY(lcCodeLineMsg)
		lcErrorMsg=lcErrorMsg+CHR(13)+CHR(13)+lcCodeLineMsg
	ENDIF
ENDIF
WAIT CLEAR
MESSAGEBOX(lcErrorMsg,16,_screen.Caption)
ERROR nError

ENDPROC
PROCEDURE Init
IF this.lSetHost
	this.SetHost
ENDIF
IF this.lAutoSetObjectRefs AND NOT this.SetObjectRefs(this)
	RETURN .F.
ENDIF

ENDPROC
PROCEDURE Destroy
IF this.lRelease
	RETURN .F.
ENDIF
this.lRelease=.T.
this.ReleaseObjRefs
this.oHost=.NULL.

ENDPROC

]PROCEDURE release
LOCAL lcBaseClass

IF this.lRelease
	NODEFAULT
	RETURN .F.
ENDIF
this.lRelease=.T.
lcBaseClass=LOWER(this.BaseClass)
this.oHost=.NULL.
this.ReleaseObjRefs
IF NOT INLIST(lcBaseClass+" ","form ","formset ","toolbar ")
	RELEASE this
ENDIF

ENDPROC
PROCEDURE setobjectref
LPARAMETERS tcName,tvClass,tvClassLibrary
LOCAL lvResult

this.vResult=.T.
DO (this.cSetObjRefProgram) WITH (this),(tcName),(tvClass),(tvClassLibrary)
lvResult=this.vResult
this.vResult=.T.
RETURN lvResult

ENDPROC
PROCEDURE setobjectrefs
LPARAMETERS toObject

RETURN

ENDPROC
PROCEDURE releaseobjrefs
LOCAL lcName,oObject,lnCount

IF this.nObjectRefCount=0
	RETURN
ENDIF
FOR lnCount = this.nObjectRefCount TO 1 STEP -1
	lcName=this.aObjectRefs[lnCount,1]
	IF EMPTY(lcName) OR NOT PEMSTATUS(this,lcName,5) OR TYPE("this."+lcName)#"O"
		LOOP
	ENDIF
	oObject=this.&lcName
	IF ISNULL(oObject)
		LOOP
	ENDIF
	IF TYPE("oObject")=="O" AND NOT ISNULL(oObject) AND PEMSTATUS(oObject,"Release",5)
		oObject.Release
	ENDIF
	IF NOT ISNULL(oObject) AND PEMSTATUS(oObject,"oHost",5)
		oObject.oHost=.NULL.
	ENDIF
	this.&lcName=.NULL.
	oObject=.NULL.
ENDFOR
DIMENSION this.aObjectRefs[1,3]
this.aObjectRefs=""

ENDPROC
PROCEDURE nobjectrefcount_access
LOCAL lnObjectRefCount

lnObjectRefCount=ALEN(this.aObjectRefs,1)
IF lnObjectRefCount=1 AND EMPTY(this.aObjectRefs[1])
	lnObjectRefCount=0
ENDIF
RETURN lnObjectRefCount

ENDPROC
PROCEDURE nobjectrefcount_assign
LPARAMETERS m.vNewVal

ERROR 1743

ENDPROC
PROCEDURE sethost
this.oHost=IIF(TYPE("thisform")=="O",thisform,.NULL.)

ENDPROC
PROCEDURE newinstance
LPARAMETERS tnDataSessionID
LOCAL oNewObject,lnLastDataSessionID

lnLastDataSessionID=SET("DATASESSION")
IF TYPE("tnDataSessionID")=="N" AND tnDataSessionID>=1
	SET DATASESSION TO tnDataSessionID
ENDIF
oNewObject=NEWOBJECT(this.Class,this.ClassLibrary)
SET DATASESSION TO (lnLastDataSessionID)
RETURN oNewObject

ENDPROC
PROCEDURE addtoproject
*-- Dummy code for adding files to project.
RETURN

DO SetObjRf.prg

ENDPROC
PROCEDURE ninstances_access
LOCAL laInstances[1]
	
RETURN AINSTANCE(laInstances,this.Class)

ENDPROC
PROCEDURE ninstances_assign
LPARAMETERS vNewVal

ERROR 1743

ENDPROC
PROCEDURE Error
LPARAMETERS nError, cMethod, nLine
LOCAL lcOnError,lcErrorMsg,lcCodeLineMsg

IF this.lIgnoreErrors OR _vfp.StartMode>0
	RETURN .F.
ENDIF
lcOnError=UPPER(ALLTRIM(ON("ERROR")))
IF NOT EMPTY(lcOnError)
	lcOnError=STRTRAN(STRTRAN(STRTRAN(lcOnError,"ERROR()","nError"), ;
			"PROGRAM()","cMethod"),"LINENO()","nLine")
	&lcOnError
	RETURN
ENDIF
lcErrorMsg=MESSAGE()+CHR(13)+CHR(13)+this.Name+CHR(13)+ ;
		"Error:           "+ALLTRIM(STR(nError))+CHR(13)+ ;
		"Method:       "+LOWER(ALLTRIM(cMethod))
lcCodeLineMsg=MESSAGE(1)
IF BETWEEN(nLine,1,100000) AND NOT lcCodeLineMsg="..."
	lcErrorMsg=lcErrorMsg+CHR(13)+"Line:            "+ALLTRIM(STR(nLine))
	IF NOT EMPTY(lcCodeLineMsg)
		lcErrorMsg=lcErrorMsg+CHR(13)+CHR(13)+lcCodeLineMsg
	ENDIF
ENDIF
WAIT CLEAR
MESSAGEBOX(lcErrorMsg,16,_screen.Caption)
ERROR nError

ENDPROC
PROCEDURE Init
IF this.lSetHost
	this.SetHost
ENDIF
IF this.lAutoSetObjectRefs AND NOT this.SetObjectRefs(this)
	RETURN .F.
ENDIF

ENDPROC
PROCEDURE Destroy
IF this.lRelease
	RETURN .F.
ENDIF
this.lRelease=.T.
this.ReleaseObjRefs
this.oHost=.NULL.

ENDPROC

]PROCEDURE release
LOCAL lcBaseClass

IF this.lRelease
	NODEFAULT
	RETURN .F.
ENDIF
this.lRelease=.T.
lcBaseClass=LOWER(this.BaseClass)
this.oHost=.NULL.
this.ReleaseObjRefs
IF NOT INLIST(lcBaseClass+" ","form ","formset ","toolbar ")
	RELEASE this
ENDIF

ENDPROC
PROCEDURE setobjectref
LPARAMETERS tcName,tvClass,tvClassLibrary
LOCAL lvResult

this.vResult=.T.
DO (this.cSetObjRefProgram) WITH (this),(tcName),(tvClass),(tvClassLibrary)
lvResult=this.vResult
this.vResult=.T.
RETURN lvResult

ENDPROC
PROCEDURE setobjectrefs
LPARAMETERS toObject

RETURN

ENDPROC
PROCEDURE releaseobjrefs
LOCAL lcName,oObject,lnCount

IF this.nObjectRefCount=0
	RETURN
ENDIF
FOR lnCount = this.nObjectRefCount TO 1 STEP -1
	lcName=this.aObjectRefs[lnCount,1]
	IF EMPTY(lcName) OR NOT PEMSTATUS(this,lcName,5) OR TYPE("this."+lcName)#"O"
		LOOP
	ENDIF
	oObject=this.&lcName
	IF ISNULL(oObject)
		LOOP
	ENDIF
	IF TYPE("oObject")=="O" AND NOT ISNULL(oObject) AND PEMSTATUS(oObject,"Release",5)
		oObject.Release
	ENDIF
	IF NOT ISNULL(oObject) AND PEMSTATUS(oObject,"oHost",5)
		oObject.oHost=.NULL.
	ENDIF
	this.&lcName=.NULL.
	oObject=.NULL.
ENDFOR
DIMENSION this.aObjectRefs[1,3]
this.aObjectRefs=""

ENDPROC
PROCEDURE nobjectrefcount_access
LOCAL lnObjectRefCount

lnObjectRefCount=ALEN(this.aObjectRefs,1)
IF lnObjectRefCount=1 AND EMPTY(this.aObjectRefs[1])
	lnObjectRefCount=0
ENDIF
RETURN lnObjectRefCount

ENDPROC
PROCEDURE nobjectrefcount_assign
LPARAMETERS m.vNewVal

ERROR 1743

ENDPROC
PROCEDURE sethost
this.oHost=IIF(TYPE("thisform")=="O",thisform,.NULL.)

ENDPROC
PROCEDURE newinstance
LPARAMETERS tnDataSessionID
LOCAL oNewObject,lnLastDataSessionID

lnLastDataSessionID=SET("DATASESSION")
IF TYPE("tnDataSessionID")=="N" AND tnDataSessionID>=1
	SET DATASESSION TO tnDataSessionID
ENDIF
oNewObject=NEWOBJECT(this.Class,this.ClassLibrary)
SET DATASESSION TO (lnLastDataSessionID)
RETURN oNewObject

ENDPROC
PROCEDURE addtoproject
*-- Dummy code for adding files to project.
RETURN

DO SetObjRf.prg

ENDPROC
PROCEDURE ninstances_access
LOCAL laInstances[1]
	
RETURN AINSTANCE(laInstances,this.Class)

ENDPROC
PROCEDURE ninstances_assign
LPARAMETERS vNewVal

ERROR 1743

ENDPROC
PROCEDURE Destroy
IF this.lRelease
	RETURN .F.
ENDIF
this.lRelease=.T.
this.ReleaseObjRefs
this.oHost=.NULL.

ENDPROC
PROCEDURE Init
IF this.lSetHost
	this.SetHost
ENDIF
IF this.lAutoSetObjectRefs AND NOT this.SetObjectRefs(this)
	RETURN .F.
ENDIF

ENDPROC
PROCEDURE Error
LPARAMETERS nError, cMethod, nLine
LOCAL lcOnError,lcErrorMsg,lcCodeLineMsg

IF this.lIgnoreErrors OR _vfp.StartMode>0
	RETURN .F.
ENDIF
lcOnError=UPPER(ALLTRIM(ON("ERROR")))
IF NOT EMPTY(lcOnError)
	lcOnError=STRTRAN(STRTRAN(STRTRAN(lcOnError,"ERROR()","nError"), ;
			"PROGRAM()","cMethod"),"LINENO()","nLine")
	&lcOnError
	RETURN
ENDIF
lcErrorMsg=MESSAGE()+CHR(13)+CHR(13)+this.Name+CHR(13)+ ;
		"Error:           "+ALLTRIM(STR(nError))+CHR(13)+ ;
		"Method:       "+LOWER(ALLTRIM(cMethod))
lcCodeLineMsg=MESSAGE(1)
IF BETWEEN(nLine,1,100000) AND NOT lcCodeLineMsg="..."
	lcErrorMsg=lcErrorMsg+CHR(13)+"Line:            "+ALLTRIM(STR(nLine))
	IF NOT EMPTY(lcCodeLineMsg)
		lcErrorMsg=lcErrorMsg+CHR(13)+CHR(13)+lcCodeLineMsg
	ENDIF
ENDIF
WAIT CLEAR
MESSAGEBOX(lcErrorMsg,16,_screen.Caption)
ERROR nError

ENDPROC
_page2addtoproject
PixelsFoundation OptionButton class.Class1page_page2icversion Version property.
builder Bulder property.
builderx BuilderX property.
lautobuilder Specifies if custom FFC builder is automatically launched when instance is added to a container in design mode, even if the control pallette Builder Lock button is off.
nobjectrefcount Returns the number of items in the object reference array property aObjectRefs.
ohost Object reference to host object (generally THISFORM), which is automatically set on Init if lSetHost is .T.
lautosetobjectrefs Specifiies if the SetObjectRefs method is automatically called from the Init method.
vresult Variant result property for internal usage when calling programs in PRGs and a return file is required.
lrelease Indicates the object's Release method has been executed and the object is in the process of being released from memory.
csetobjrefprogram Program to be called when when setting an object references via the SetObjectRef method.
lignoreerrors Specifies if the default FFC error handler is executed when an error occurs.
lsethost Specifies if the SetHost method is automatically called from the Init method to set the oHost property to THISFORM.
ninstances Number of instances.
^aobjectrefs[1,3] Array of object references properties.
*release Releases object from memory.
*setobjectref Set object reference to specific property.
*setobjectrefs Place holder method for listing SetObjectRef method calls.
*releaseobjrefs Releases all object references of aObjectRefs array.
*nobjectrefcount_access Access method for nObjectRefCount property.
*nobjectrefcount_assign Assign method for nObjectRefCount property.
*sethost Set oHost property to form reference object.
*newinstance Returns new instance of object.
*addtoproject Dummy code for adding files to project.
*ninstances_access Access method for nInstances property.
*ninstances_assign Assign method for nInstances property.

�� ���0%�	�v�
�U����%�����"���B�-���T���a��T��C��@��T����
����3%�C�� �form �formset �toolbar �
����<���ULCBASECLASSTHISLRELEASE	BASECLASSOHOSTRELEASEOBJREFSw��������T���a��)�����������������T������T���a��	B����UTCNAMETVCLASSTVCLASSLIBRARYLVRESULTTHISVRESULTCSETOBJREFPROGRAM���B�UTOOBJECT������%������'�B��!������(���������u�T��C������7%�C���C����h
�C�this.�b�O����.��oObject=this.&lcName
%�C�����.��<%�C�oObjectb�O�C��
	�C��Release��h	���
�����%%�C��
�C��oHost��h	��O�T�����this.&lcName=.NULL.
T��������������T������ULCNAMEOOBJECTLNCOUNTTHISNOBJECTREFCOUNTAOBJECTREFSRELEASEOHOSTZ���T��C�����!%����
CC����	��J�
T������	B����ULNOBJECTREFCOUNTTHISAOBJECTREFS	��
��
������UVNEWVAL.+T���CC�thisformb�O����6��UTHISOHOSTTHISFORM��������T��C�DATASESSIONv��.%�C�tnDataSessionIDb�N���	��e�G�(�����T��C�������G�(����	B����UTNDATASESSIONID
ONEWOBJECTLNLASTDATASESSIONIDTHISCLASSCLASSLIBRARYB��SetObjRf.prg�USETOBJRFPRG$
������B�C������ULAINSTANCESTHISCLASS���
������UVNEWVAL�����������%����
�C����B�B�-���T��CCC�ERROR��f��%�C��
����OT��CCC��ERROR()�nError��	PROGRAM()�cMethod��LINENO()�nLine���&lcOnError
B��bT��CEC�
 C�
 ��	C�
 �Error:           CC�Z�C�
 �Method:       CC��@��T��C�E��'%�C���������...
	����0T���C�
 �Line:            CC�Z���%�C��
����T���C�
 C�
 �����R���C���9�
�x��	�����UNERRORCMETHODNLINE	LCONERROR
LCERRORMSG
LCCODELINEMSGTHIS
LIGNOREERRORS	STARTMODENAMECAPTIONL%������
����� %����
C���
	��E�B�-���UTHISLSETHOSTSETHOSTLAUTOSETOBJECTREFS
SETOBJECTREFSD%������B�-���T���a��
����T����UTHISLRELEASERELEASEOBJREFSOHOSTrelease,��setobjectref��
setobjectrefs���releaseobjrefs���nobjectrefcount_access���nobjectrefcount_assigni��sethost���newinstance���addtoproject���ninstances_access���ninstances_assign/��ErrorP��Init���DestroyC	��1qAqA�!��1qA3�q����3qB3�BAA�qAA��AA��AQ�Aq�Aa3qR�A�3��3�3q����A���3B23�B3q�3���qA���AA#�q�AAQA�3�AqA3qA���2/)In�"2�>9�H<&]N>�RH�,_KT�fN��lQ�?rhZ��o�R
�)�
]PROCEDURE release
LOCAL lcBaseClass

IF this.lRelease
	NODEFAULT
	RETURN .F.
ENDIF
this.lRelease=.T.
lcBaseClass=LOWER(this.BaseClass)
this.oHost=.NULL.
this.ReleaseObjRefs
IF NOT INLIST(lcBaseClass+" ","form ","formset ","toolbar ")
	RELEASE this
ENDIF

ENDPROC
PROCEDURE setobjectref
LPARAMETERS tcName,tvClass,tvClassLibrary
LOCAL lvResult

this.vResult=.T.
DO (this.cSetObjRefProgram) WITH (this),(tcName),(tvClass),(tvClassLibrary)
lvResult=this.vResult
this.vResult=.T.
RETURN lvResult

ENDPROC
PROCEDURE setobjectrefs
LPARAMETERS toObject

RETURN

ENDPROC
PROCEDURE releaseobjrefs
LOCAL lcName,oObject,lnCount

IF this.nObjectRefCount=0
	RETURN
ENDIF
FOR lnCount = this.nObjectRefCount TO 1 STEP -1
	lcName=this.aObjectRefs[lnCount,1]
	IF EMPTY(lcName) OR NOT PEMSTATUS(this,lcName,5) OR TYPE("this."+lcName)#"O"
		LOOP
	ENDIF
	oObject=this.&lcName
	IF ISNULL(oObject)
		LOOP
	ENDIF
	IF TYPE("oObject")=="O" AND NOT ISNULL(oObject) AND PEMSTATUS(oObject,"Release",5)
		oObject.Release
	ENDIF
	IF NOT ISNULL(oObject) AND PEMSTATUS(oObject,"oHost",5)
		oObject.oHost=.NULL.
	ENDIF
	this.&lcName=.NULL.
	oObject=.NULL.
ENDFOR
DIMENSION this.aObjectRefs[1,3]
this.aObjectRefs=""

ENDPROC
PROCEDURE nobjectrefcount_access
LOCAL lnObjectRefCount

lnObjectRefCount=ALEN(this.aObjectRefs,1)
IF lnObjectRefCount=1 AND EMPTY(this.aObjectRefs[1])
	lnObjectRefCount=0
ENDIF
RETURN lnObjectRefCount

ENDPROC
PROCEDURE nobjectrefcount_assign
LPARAMETERS m.vNewVal

ERROR 1743

ENDPROC
PROCEDURE sethost
this.oHost=IIF(TYPE("thisform")=="O",thisform,.NULL.)

ENDPROC
PROCEDURE newinstance
LPARAMETERS tnDataSessionID
LOCAL oNewObject,lnLastDataSessionID

lnLastDataSessionID=SET("DATASESSION")
IF TYPE("tnDataSessionID")=="N" AND tnDataSessionID>=1
	SET DATASESSION TO tnDataSessionID
ENDIF
oNewObject=NEWOBJECT(this.Class,this.ClassLibrary)
SET DATASESSION TO (lnLastDataSessionID)
RETURN oNewObject

ENDPROC
PROCEDURE addtoproject
*-- Dummy code for adding files to project.
RETURN

DO SetObjRf.prg

ENDPROC
PROCEDURE ninstances_access
LOCAL laInstances[1]
	
RETURN AINSTANCE(laInstances,this.Class)

ENDPROC
PROCEDURE ninstances_assign
LPARAMETERS vNewVal

ERROR 1743

ENDPROC
PROCEDURE Error
LPARAMETERS nError, cMethod, nLine
LOCAL lcOnError,lcErrorMsg,lcCodeLineMsg

IF this.lIgnoreErrors OR _vfp.StartMode>0
	RETURN .F.
ENDIF
lcOnError=UPPER(ALLTRIM(ON("ERROR")))
IF NOT EMPTY(lcOnError)
	lcOnError=STRTRAN(STRTRAN(STRTRAN(lcOnError,"ERROR()","nError"), ;
			"PROGRAM()","cMethod"),"LINENO()","nLine")
	&lcOnError
	RETURN
ENDIF
lcErrorMsg=MESSAGE()+CHR(13)+CHR(13)+this.Name+CHR(13)+ ;
		"Error:           "+ALLTRIM(STR(nError))+CHR(13)+ ;
		"Method:       "+LOWER(ALLTRIM(cMethod))
lcCodeLineMsg=MESSAGE(1)
IF BETWEEN(nLine,1,100000) AND NOT lcCodeLineMsg="..."
	lcErrorMsg=lcErrorMsg+CHR(13)+"Line:            "+ALLTRIM(STR(nLine))
	IF NOT EMPTY(lcCodeLineMsg)
		lcErrorMsg=lcErrorMsg+CHR(13)+CHR(13)+lcCodeLineMsg
	ENDIF
ENDIF
WAIT CLEAR
MESSAGEBOX(lcErrorMsg,16,_screen.Caption)
ERROR nError

ENDPROC
PROCEDURE Init
IF this.lSetHost
	this.SetHost
ENDIF
IF this.lAutoSetObjectRefs AND NOT this.SetObjectRefs(this)
	RETURN .F.
ENDIF

ENDPROC
PROCEDURE Destroy
IF this.lRelease
	RETURN .F.
ENDIF
this.lRelease=.T.
this.ReleaseObjRefs
this.oHost=.NULL.

ENDPROC
Caption = "Page1"
Height = 16
Width = 60
cversion = 
builder = 
builderx = (HOME()+"Wizards\BuilderD,BuilderDForm")
nobjectrefcount = 0
ohost = .NULL.
vresult = .T.
csetobjrefprogram = (IIF(VERSION(2)=0,"",HOME()+"FFC\")+"SetObjRf.prg")
ninstances = 0
Name = "_page2"
pageFoundation Page class.