From: <sr...@us...> - 2006-05-27 05:36:12
|
Revision: 678 Author: srmitch Date: 2006-05-26 22:35:41 -0700 (Fri, 26 May 2006) ViewCVS: http://svn.sourceforge.net/instantobjects?rev=678&view=rev Log Message: ----------- Update of Help files and its sources: Part 2. Added Paths: ----------- trunk/Help/AttributeEditorPresentation.gif trunk/Help/ClassEditorAttributesPop-upMenu.gif trunk/Help/ClassEditorClass.gif trunk/Help/ModelExplorerBuildDatabaseButton.gif trunk/Help/ModelExplorerPop-upMenu.gif trunk/Help/ModelExplorerSelectUnitsButton.gif trunk/Help/ModelExplorerViewInheritanceButton.gif trunk/Help/ModelExplorerViewRelationsButton.gif Removed Paths: ------------- trunk/Help/ClassEditor.gif Added: trunk/Help/AttributeEditorPresentation.gif =================================================================== (Binary files differ) Property changes on: trunk/Help/AttributeEditorPresentation.gif ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Deleted: trunk/Help/ClassEditor.gif =================================================================== (Binary files differ) Added: trunk/Help/ClassEditorAttributesPop-upMenu.gif =================================================================== (Binary files differ) Property changes on: trunk/Help/ClassEditorAttributesPop-upMenu.gif ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/Help/ClassEditorClass.gif =================================================================== (Binary files differ) Property changes on: trunk/Help/ClassEditorClass.gif ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/Help/ModelExplorerBuildDatabaseButton.gif =================================================================== (Binary files differ) Property changes on: trunk/Help/ModelExplorerBuildDatabaseButton.gif ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/Help/ModelExplorerPop-upMenu.gif =================================================================== (Binary files differ) Property changes on: trunk/Help/ModelExplorerPop-upMenu.gif ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/Help/ModelExplorerSelectUnitsButton.gif =================================================================== (Binary files differ) Property changes on: trunk/Help/ModelExplorerSelectUnitsButton.gif ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/Help/ModelExplorerViewInheritanceButton.gif =================================================================== (Binary files differ) Property changes on: trunk/Help/ModelExplorerViewInheritanceButton.gif ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/Help/ModelExplorerViewRelationsButton.gif =================================================================== (Binary files differ) Property changes on: trunk/Help/ModelExplorerViewRelationsButton.gif ___________________________________________________________________ Name: svn:mime-type + application/octet-stream |
From: <sr...@us...> - 2006-05-29 00:17:55
|
Revision: 679 Author: srmitch Date: 2006-05-28 17:17:20 -0700 (Sun, 28 May 2006) ViewCVS: http://svn.sourceforge.net/instantobjects?rev=679&view=rev Log Message: ----------- Update of Help files and its sources as follows: 1. Modified TInstantCustomExposer.IsChanged topic. 2. Added TInstantCustomExposer.IsSubjectChanged topic. 3. Updated TInstantCustomExposer links to reflect changes. Modified Paths: -------------- trunk/Help/IOHelp.hlp trunk/Help/IOHelp.hpj trunk/Help/IOHelp.hsc trunk/Help/IOHelp.rtf Modified: trunk/Help/IOHelp.hlp =================================================================== (Binary files differ) Modified: trunk/Help/IOHelp.hpj =================================================================== --- trunk/Help/IOHelp.hpj 2006-05-27 05:35:41 UTC (rev 678) +++ trunk/Help/IOHelp.hpj 2006-05-29 00:17:20 UTC (rev 679) @@ -484,7 +484,10 @@ ID_422 4930 ID_471 4940 ID_423 4950 -ID_424 4960 +ID_424 4955 +Scribble4957 4957 +Scribble4960 4960 +Scribble4965 4965 ID_425 4970 ID_472 4980 ID_415 4990 Modified: trunk/Help/IOHelp.hsc =================================================================== --- trunk/Help/IOHelp.hsc 2006-05-27 05:35:41 UTC (rev 678) +++ trunk/Help/IOHelp.hsc 2006-05-29 00:17:20 UTC (rev 679) @@ -37,7 +37,7 @@ Next FALSE -1262 +1265 10 ID_0 InstantObjects Welcome @@ -10688,8 +10688,8 @@ FALSE -24 -{\rtf1\ansi\deff0{\fonttbl{\f0\fswiss Arial;}} +25 +{\rtf1\ansi\deff0{\fonttbl{\f0\fswiss Arial;}{\f1\fswiss\fcharset0 Arial;}} {\colortbl ;\red0\green0\blue0;} \viewkind4\uc1\pard\sb25\tx355\lang1040\b\f0\fs24 TInstantCustomExposer Properties \cf1\b0\fs16 \par \strike TInstantCustomExposer\strike0\{linkID=4790>main\}\tab\ul Legend\ulnone\{link=ID_434\}\{keepn\} @@ -10699,7 +10699,8 @@ \par \{bmct bm0.BMP\}\{bmct bm1.BMP\} \strike CurrentObject\strike0\{linkID=4920>main\} \par \{bmct bm0.BMP\}\{bmct bm4.BMP\} \strike FieldOptions\strike0\{linkID=4930>main\} \par \{bmct bm0.BMP\}\{bmct bm1.BMP\} \strike HasSubject\strike0\{linkID=4950>main\} -\par \{bmct bm0.BMP\}\{bmct bm1.BMP\} \strike IsChanged\strike0\{linkID=4960>main\} +\par \{bmct bm0.BMP\}\{bmct bm1.BMP\} \strike IsChanged\strike0\{linkID=49\lang1033\f1 55\lang1040\f0 >main\} +\par \{bmct bm0.BMP\}\{bmct bm1.BMP\} \strike Is\lang1033\f1 Subject\lang1040\f0 Changed\strike0\{linkID=49\lang1033\f1 60\lang1040\f0 >main\} \par \{bmct bm0.BMP\}\{bmct bm4.BMP\} \strike Limited\strike0\{linkID=4970>main\} \par \{bmct bm0.BMP\}\{bmct bm5.BMP\} \strike Mode\strike0\{linkID=4990>main\} \par \{bmct bm0.BMP\}\{bmct bm5.BMP\} \strike ObjectClass\strike0\{linkID=5000>main\} @@ -10858,8 +10859,8 @@ FALSE -59 -{\rtf1\ansi\deff0{\fonttbl{\f0\fswiss Arial;}} +60 +{\rtf1\ansi\deff0{\fonttbl{\f0\fswiss Arial;}{\f1\fswiss\fcharset0 Arial;}} {\colortbl ;\red0\green0\blue0;} \viewkind4\uc1\pard\sb25\tx355\lang1040\b\f0\fs24 TInstantCustomExposer Members \cf1\b0\fs16 \par \strike TInstantCustomExposer\strike0\{linkID=4790>main\}\tab\ul Legend\ulnone\{link=ID_470\}\{keepn\} @@ -10869,7 +10870,8 @@ \par \{bmct bm0.BMP\}\{bmct bm1.BMP\} \strike CurrentObject\strike0\{linkID=4920>main\} \par \{bmct bm0.BMP\}\{bmct bm4.BMP\} \strike FieldOptions\strike0\{linkID=4930>main\} \par \{bmct bm0.BMP\}\{bmct bm1.BMP\} \strike HasSubject\strike0\{linkID=4950>main\} -\par \{bmct bm0.BMP\}\{bmct bm1.BMP\} \strike IsChanged\strike0\{linkID=4960>main\} +\par \{bmct bm0.BMP\}\{bmct bm1.BMP\} \strike IsChanged\strike0\{linkID=49\lang1033\f1 55\lang1040\f0 >main\} +\par \{bmct bm0.BMP\}\{bmct bm1.BMP\} \strike Is\lang1033\f1 Subject\lang1040\f0 Changed\strike0\{linkID=49\lang1033\f1 60\lang1040\f0 >main\} \par \{bmct bm0.BMP\}\{bmct bm4.BMP\} \strike Limited\strike0\{linkID=4970>main\} \par \{bmct bm0.BMP\}\{bmct bm5.BMP\} \strike Mode\strike0\{linkID=4990>main\} \par \{bmct bm0.BMP\}\{bmct bm5.BMP\} \strike ObjectClass\strike0\{linkID=5000>main\} @@ -11074,29 +11076,92 @@ \par \pard\sb25\sa25\b0 Use HasSubject to determine if the exposer has a subject. \par \par } -4960 +4955 ID_424 TInstantCustomExposer.IsChanged IsChanged;IsChanged,TInstantCustomExposer;TInstantCustomExposer,IsChanged; -Imported -main +Modified + IsChanged;IsChanged_Property;TInstantCustomExposer_IsChanged FALSE 10 {\rtf1\ansi\ansicpg1252\deff0{\fonttbl{\f0\fswiss Arial;}{\f1\fswiss\fcharset0 Arial;}{\f2\fmodern Courier New;}} -{\colortbl ;\red0\green0\blue0;} +{\colortbl ;\red0\green0\blue0;\red0\green128\blue0;\red128\green0\blue0;} \viewkind4\uc1\pard\lang1040\b\f0\fs24 TInstantCustomExposer.IsChanged \cf1\b0\fs16 -\par \strike TInstantCustomExposer\strike0\{link\lang1033\f1 ID\lang1040\f0 =\lang1033\f1 4790\lang1040\f0 >main\}\{keepn\} -\par \pard\sb25\sa85\fs18 Specifies if changes have been made to the exposed subject. +\par \cf2\strike TInstantCustomExposer\cf3\strike0\{linkID=4790>main\}\cf1\tab\ul See Also\ulnone\{linkID=49\lang1033\f1 57\lang1040\f0\}\{keepn\} +\par \pard\sb25\sa85\fs18 Specifies if changes have been made to the expose\lang1033\f1 r's\lang1040\f0 \lang1033\f1 dataset fields or records\lang1040\f0 . \par \pard\sb25\sa25\b\f2 property\b0 IsChanged: Boolean; \par \pard\sb55\sa25\b\f0 Description -\par \pard\sb25\sa25\b0 If objects have been added or removed or any changes have been made to the subject or any object within the subject, IsChanged is True. Otherwise IsChanged is False. +\par \pard\sb25\sa25\b0 If \lang1033\f1 dataset records\lang1040\f0 have been added or removed or any changes have been made to \lang1033\f1 their fields\lang1040\f0 , IsChanged is True. Otherwise IsChanged is False. \par \par } +4957 +Scribble4957 + + + + + +Imported + + + +FALSE +7 +{\rtf1\ansi\deff0{\fonttbl{\f0\fswiss Arial;}{\f1\fswiss\fcharset0 Arial;}} +{\colortbl ;\red0\green0\blue0;} +\viewkind4\uc1\pard\sb55\sa25\lang1040\b\f0\fs24 See Also +\par \pard\li95\sb25\sa25\cf1\b0\fs18 +\par \strike TInstantCustomExposer.\lang1033\f1 IsSubjectChanged\lang1040\strike0\f0\{linkID=\lang1033\f1 496\lang1040\f0 0>main\} +\par \strike +\par } +4960 +Scribble4960 +TInstantCustomExposer.IsSubjectChanged +IsSubjectChanged;IsSubjectChanged,TInstantCustomExposer;TInstantCustomExposer,IsSubjectChanged; + + + +Added +main + +IsSubjectChanged;IsSubjectChanged_Property;TInstantCustomExposer_IsSubjectChanged +FALSE +10 +{\rtf1\ansi\ansicpg1252\deff0{\fonttbl{\f0\fswiss Arial;}{\f1\fswiss\fcharset0 Arial;}{\f2\fmodern Courier New;}} +{\colortbl ;\red0\green0\blue0;\red0\green128\blue0;\red128\green0\blue0;} +\viewkind4\uc1\pard\lang1040\b\f0\fs24 TInstantCustomExposer.IsSubjectChanged \cf1\b0\fs16 +\par \cf2\strike TInstantCustomExposer\cf3\strike0\{linkID=4790>main\}\cf1\tab\ul See Also\ulnone\{linkID=49\lang1033\f1 65\lang1040\f0\}\{keepn\} +\par \pard\sb25\sa85\fs18 Specifies if changes have been made to the exposed subject. +\par \pard\sb25\sa25\b\f2 property\b0 IsSubjectChanged: Boolean; +\par \pard\sb55\sa25\b\f0 Description +\par \pard\sb25\sa25\b0 If objects have been added or removed or any changes have been made to the subject or any object within the subject, IsSubjectChanged is True. Otherwise IsSubjectChanged is False. +\par +\par } +4965 +Scribble4965 + + + + + +Imported + + + +FALSE +7 +{\rtf1\ansi\ansicpg1252\deff0{\fonttbl{\f0\fswiss Arial;}{\f1\fswiss\fcharset0 Arial;}} +{\colortbl ;\red0\green0\blue0;} +\viewkind4\uc1\pard\sb55\sa25\lang1040\b\f0\fs24 See Also +\par \pard\li95\sb25\sa25\cf1\b0\fs18 +\par \strike TInstantCustomExposer.\lang1033\f1 IsChanged\lang1040\strike0\f0\{linkID=\lang1033\f1 4955\lang1040\f0 >main\} +\par \strike +\par } 4970 ID_425 TInstantCustomExposer.Limited Modified: trunk/Help/IOHelp.rtf =================================================================== --- trunk/Help/IOHelp.rtf 2006-05-27 05:35:41 UTC (rev 678) +++ trunk/Help/IOHelp.rtf 2006-05-29 00:17:20 UTC (rev 679) @@ -7419,6 +7419,7 @@ \par \{bmct bm0.BMP\}\{bmct bm4.BMP\} \strike FieldOptions\strike0{\v ID_422>main} \par \{bmct bm0.BMP\}\{bmct bm1.BMP\} \strike HasSubject\strike0{\v ID_423>main} \par \{bmct bm0.BMP\}\{bmct bm1.BMP\} \strike IsChanged\strike0{\v ID_424>main} +\par \{bmct bm0.BMP\}\{bmct bm1.BMP\} \strike Is\lang1033\f1 Subject\lang1040\f0 Changed\strike0{\v Scribble4960>main} \par \{bmct bm0.BMP\}\{bmct bm4.BMP\} \strike Limited\strike0{\v ID_425>main} \par \{bmct bm0.BMP\}\{bmct bm5.BMP\} \strike Mode\strike0{\v ID_415>main} \par \{bmct bm0.BMP\}\{bmct bm5.BMP\} \strike ObjectClass\strike0{\v ID_426>main} @@ -7535,6 +7536,7 @@ \par \{bmct bm0.BMP\}\{bmct bm4.BMP\} \strike FieldOptions\strike0{\v ID_422>main} \par \{bmct bm0.BMP\}\{bmct bm1.BMP\} \strike HasSubject\strike0{\v ID_423>main} \par \{bmct bm0.BMP\}\{bmct bm1.BMP\} \strike IsChanged\strike0{\v ID_424>main} +\par \{bmct bm0.BMP\}\{bmct bm1.BMP\} \strike Is\lang1033\f1 Subject\lang1040\f0 Changed\strike0{\v Scribble4960>main} \par \{bmct bm0.BMP\}\{bmct bm4.BMP\} \strike Limited\strike0{\v ID_425>main} \par \{bmct bm0.BMP\}\{bmct bm5.BMP\} \strike Mode\strike0{\v ID_415>main} \par \{bmct bm0.BMP\}\{bmct bm5.BMP\} \strike ObjectClass\strike0{\v ID_426>main} @@ -7701,23 +7703,62 @@ {\pard\plain\f0\fs20 {\up #}{\footnote {\up #} ID_424} -{\up >}{\footnote {\up >} main} {\up $}{\footnote {\up $} TInstantCustomExposer.IsChanged} {\up K}{\footnote {\up K} IsChanged;IsChanged,TInstantCustomExposer;TInstantCustomExposer,IsChanged;} {\up A}{\footnote {\up A} IsChanged;IsChanged_Property;TInstantCustomExposer_IsChanged} } \viewkind4\uc1\pard\keepn\lang1040\b\f0\fs24 TInstantCustomExposer.IsChanged \cf1\b0\fs16 -\par \strike TInstantCustomExposer\strike0\{link\lang1033\f1 ID\lang1040\f0 =\lang1033\f1 4790\lang1040\f0 >main\} -\par \pard\sb25\sa85\fs18 Specifies if changes have been made to the exposed subject. +\par \cf2\strike TInstantCustomExposer\cf3\strike0{\v ID_407>main}\cf1\tab\ul See Also\ulnone{\v Scribble4957} +\par \pard\sb25\sa85\fs18 Specifies if changes have been made to the expose\lang1033\f1 r's\lang1040\f0 \lang1033\f1 dataset fields or records\lang1040\f0 . \par \pard\sb25\sa25\b\f7 property\b0 IsChanged: Boolean; \par \pard\sb55\sa25\b\f0 Description -\par \pard\sb25\sa25\b0 If objects have been added or removed or any changes have been made to the subject or any object within the subject, IsChanged is True. Otherwise IsChanged is False. +\par \pard\sb25\sa25\b0 If \lang1033\f1 dataset records\lang1040\f0 have been added or removed or any changes have been made to \lang1033\f1 their fields\lang1040\f0 , IsChanged is True. Otherwise IsChanged is False. \par \par \pard\plain\f0 {\page} {\pard\plain\f0\fs20 +{\up #}{\footnote {\up #} Scribble4957} +} +\viewkind4\uc1\pard\sb55\sa25\lang1040\b\f0\fs24 See Also +\par \pard\li95\sb25\sa25\cf1\b0\fs18 +\par \strike TInstantCustomExposer.\lang1033\f1 IsSubjectChanged\lang1040\strike0\f0{\v Scribble4960>main} +\par \strike +\par \pard\plain\f0 + +{\page} + +{\pard\plain\f0\fs20 +{\up #}{\footnote {\up #} Scribble4960} +{\up >}{\footnote {\up >} main} +{\up $}{\footnote {\up $} TInstantCustomExposer.IsSubjectChanged} +{\up K}{\footnote {\up K} IsSubjectChanged;IsSubjectChanged,TInstantCustomExposer;TInstantCustomExposer,IsSubjectChanged;} +{\up A}{\footnote {\up A} IsSubjectChanged;IsSubjectChanged_Property;TInstantCustomExposer_IsSubjectChanged} +} +\viewkind4\uc1\pard\keepn\lang1040\b\f0\fs24 TInstantCustomExposer.IsSubjectChanged \cf1\b0\fs16 +\par \cf2\strike TInstantCustomExposer\cf3\strike0{\v ID_407>main}\cf1\tab\ul See Also\ulnone{\v Scribble4965} +\par \pard\sb25\sa85\fs18 Specifies if changes have been made to the exposed subject. +\par \pard\sb25\sa25\b\f7 property\b0 IsSubjectChanged: Boolean; +\par \pard\sb55\sa25\b\f0 Description +\par \pard\sb25\sa25\b0 If objects have been added or removed or any changes have been made to the subject or any object within the subject, IsSubjectChanged is True. Otherwise IsSubjectChanged is False. +\par +\par \pard\plain\f0 + +{\page} + +{\pard\plain\f0\fs20 +{\up #}{\footnote {\up #} Scribble4965} +} +\viewkind4\uc1\pard\sb55\sa25\lang1040\b\f0\fs24 See Also +\par \pard\li95\sb25\sa25\cf1\b0\fs18 +\par \strike TInstantCustomExposer.\lang1033\f1 IsChanged\lang1040\strike0\f0{\v ID_424>main} +\par \strike +\par \pard\plain\f0 + +{\page} + +{\pard\plain\f0\fs20 {\up #}{\footnote {\up #} ID_425} {\up >}{\footnote {\up >} main} {\up $}{\footnote {\up $} TInstantCustomExposer.Limited} @@ -10167,7 +10208,7 @@ \par \{bmct bm0.BMP\}\{bmct bm1.BMP\} \strike CurrentObject\strike0{\v ID_421>main} \par \{bmct bm0.BMP\}\{bmct bm4.BMP\} \strike FieldOptions\strike0{\v ID_422>main} \par \{bmct bm0.BMP\}\{bmct bm1.BMP\} \strike HasSubject\strike0{\v ID_423>main} -\par \{bmct bm0.BMP\}\{bmct bm1.BMP\} \strike IsChanged\strike0{\v ID_424>main} +\par \{bmct bm0.BMP\}\{bmct bm1.BMP\} \strike IsChanged\strike0{\v Scribble4960>main} \par \{bmct bm0.BMP\}\{bmct bm4.BMP\} \strike Limited\strike0{\v ID_425>main} \par \{bmct bm0.BMP\}\{bmct bm5.BMP\} \strike Mode\strike0{\v ID_415>main} \par \{bmct bm0.BMP\}\{bmct bm5.BMP\} \strike ObjectClass\strike0{\v ID_426>main} @@ -16394,7 +16435,7 @@ \par \{bmct bm0.BMP\}\{bmct bm1.BMP\} \strike CurrentObject\strike0{\v ID_421>main} \par \{bmct bm0.BMP\}\{bmct bm4.BMP\} \strike FieldOptions\strike0{\v ID_422>main} \par \{bmct bm0.BMP\}\{bmct bm1.BMP\} \strike HasSubject\strike0{\v ID_423>main} -\par \{bmct bm0.BMP\}\{bmct bm1.BMP\} \strike IsChanged\strike0{\v ID_424>main} +\par \{bmct bm0.BMP\}\{bmct bm1.BMP\} \strike IsChanged\strike0{\v Scribble4960>main} \par \{bmct bm0.BMP\}\{bmct bm4.BMP\} \strike Limited\strike0{\v ID_425>main} \par \{bmct bm0.BMP\}\{bmct bm5.BMP\} \strike Mode\strike0{\v ID_415>main} \par \{bmct bm0.BMP\}\{bmct bm5.BMP\} \strike ObjectClass\strike0{\v ID_426>main} |
From: <sr...@us...> - 2006-08-17 10:21:30
|
Revision: 704 Author: srmitch Date: 2006-08-17 03:20:58 -0700 (Thu, 17 Aug 2006) ViewCVS: http://svn.sourceforge.net/instantobjects?rev=704&view=rev Log Message: ----------- - More updates to IO Help source and binaries: 1. Few fixes to contents; 2. Added references for TInstantPersistence and TInstantStorageKind types. Modified Paths: -------------- trunk/Help/IOHelp.chm trunk/Help/IOHelp.cnt trunk/Help/IOHelp.hlp trunk/Help/IOHelp.hpj trunk/Help/IOHelp.hsc trunk/Help/IOHelp.rtf Modified: trunk/Help/IOHelp.chm =================================================================== (Binary files differ) Modified: trunk/Help/IOHelp.cnt =================================================================== --- trunk/Help/IOHelp.cnt 2006-08-13 06:28:08 UTC (rev 703) +++ trunk/Help/IOHelp.cnt 2006-08-17 10:20:58 UTC (rev 704) @@ -2,7 +2,7 @@ ;Licensed to: Steven Mitchell :BASE IOHelp.hlp -:TITLE InstantObjects Guide 2.0 +:TITLE InstantObjects Help 1 Welcome=Scribble10 1 License Agreement=327SA3X 1 License Agreement=Scribble30 @@ -10,13 +10,13 @@ 1 InstantObjects User Guide 2 User Guide for InstantObjects 2.0=Scribble50 2 Creating the Business Model -3 Creating the Business Model=327SA3P 3 Creating the Business Model=Scribble70 3 The Model Explorer=Scribble90 3 Defining Classes 4 Defining Classes=Scribble120 4 Class Editor=Scribble130 4 Attribute Editor=Scribble170 +4 External Storage of Attributes=Scribble220 3 Adding Business Rules=Scribble240 3 Building/Evolving the Business Model=Scribble270 2 Creating the User Interface @@ -27,7 +27,7 @@ 3 The Exposer=Scribble320 3 The Selector=Scribble330 2 Programming with Persistent Objects -3 Programming with Persistent Objects=327SA.T +3 Programming with Persistent Objects=Scribble340 3 Creating New Objects=Scribble340 3 Retrieving Existing Objects=Scribble380 3 Associating Objects=Scribble420 @@ -183,33 +183,35 @@ 3 TInstantNotifyEvent=Scribble12470>MAIN 3 TInstantObjectNotifyEvent=Scribble12480>MAIN 3 TInstantOperationType=Scribble12490>MAIN -3 TInstantProcessObjectEvent=Scribble12500>MAIN -3 TInstantProgressEvent=Scribble12510>MAIN -3 TInstantSchemeEvent=Scribble12520>MAIN -3 TInstantSortCompare=Scribble12530>MAIN -3 TInstantStreamFormat=Scribble12550>MAIN -3 TInstantVerificationResult=Scribble12570>MAIN +3 TInstantPersistence=Scribble12500>MAIN +3 TInstantProcessObjectEvent=Scribble12510>MAIN +3 TInstantProgressEvent=Scribble12520>MAIN +3 TInstantSchemeEvent=Scribble12530>MAIN +3 TInstantSortCompare=Scribble12540>MAIN +3 TInstantStorageKind=Scribble12560>MAIN +3 TInstantStreamFormat=Scribble12580>MAIN +3 TInstantVerificationResult=Scribble12600>MAIN 2 Constants -3 InstantAttributePrefix=Scribble12590>MAIN -3 InstantClassPrefix=Scribble12610>MAIN -3 InstantDateFormat=Scribble12620>MAIN -3 InstantDateTimeFormat=Scribble12640>MAIN -3 InstantTimeFormat=Scribble12660>MAIN +3 InstantAttributePrefix=Scribble12620>MAIN +3 InstantClassPrefix=Scribble12640>MAIN +3 InstantDateFormat=Scribble12650>MAIN +3 InstantDateTimeFormat=Scribble12670>MAIN +3 InstantTimeFormat=Scribble12690>MAIN 2 Units -3 InstantADO.pas=Scribble12680>MAIN -3 InstantADS.pas=Scribble12710>MAIN -3 InstantBDE.pas=Scribble12730>MAIN -3 InstantBrokers.pas=Scribble12760>MAIN -3 InstantClasses.pas=Scribble12790>MAIN -3 InstantConnectionManager.pas=Scribble12830>MAIN -3 InstantConsts.pas=Scribble12860>MAIN -3 InstantDBISAM.pas=Scribble12880>MAIN -3 InstantDBX.pas=Scribble12900>MAIN -3 InstantExplorer.pas=Scribble12920>MAIN -3 InstantFlashFiler.pas=Scribble12960>MAIN -3 InstantIBX.pas=Scribble12980>MAIN -3 InstantMetadata.pas=Scribble13000>MAIN -3 InstantPersistence.pas=Scribble13020>MAIN -3 InstantPresentation.pas=Scribble13070>MAIN -3 InstantTypes.pas=Scribble13110>MAIN -3 InstantUtils.pas=Scribble13130>MAIN +3 InstantADO.pas=Scribble12710>MAIN +3 InstantADS.pas=Scribble12740>MAIN +3 InstantBDE.pas=Scribble12760>MAIN +3 InstantBrokers.pas=Scribble12790>MAIN +3 InstantClasses.pas=Scribble12820>MAIN +3 InstantConnectionManager.pas=Scribble12860>MAIN +3 InstantConsts.pas=Scribble12890>MAIN +3 InstantDBISAM.pas=Scribble12910>MAIN +3 InstantDBX.pas=Scribble12930>MAIN +3 InstantExplorer.pas=Scribble12950>MAIN +3 InstantFlashFiler.pas=Scribble12990>MAIN +3 InstantIBX.pas=Scribble13010>MAIN +3 InstantMetadata.pas=Scribble13030>MAIN +3 InstantPersistence.pas=Scribble13050>MAIN +3 InstantPresentation.pas=Scribble13100>MAIN +3 InstantTypes.pas=Scribble13140>MAIN +3 InstantUtils.pas=Scribble13160>MAIN Modified: trunk/Help/IOHelp.hlp =================================================================== (Binary files differ) Modified: trunk/Help/IOHelp.hpj =================================================================== --- trunk/Help/IOHelp.hpj 2006-08-13 06:28:08 UTC (rev 703) +++ trunk/Help/IOHelp.hpj 2006-08-17 10:20:58 UTC (rev 704) @@ -1,4 +1,4 @@ -; InstantObjects Guide 2.0 +; InstantObjects Help ; ; This help file was created with HelpScribble 7.6.1 @@ -15,7 +15,7 @@ LCID=0x0409 CNT=IOHelp.cnt ROOT=D:\L\INSTAN~1\Help -TITLE=InstantObjects Guide 2.0 +TITLE=InstantObjects Help [CONFIG] BrowseButtons() @@ -1305,4 +1305,7 @@ Scribble13140 13140 Scribble13150 13150 Scribble13160 13160 +Scribble13170 13170 +Scribble13180 13180 +Scribble13190 13190 Modified: trunk/Help/IOHelp.hsc =================================================================== --- trunk/Help/IOHelp.hsc 2006-08-13 06:28:08 UTC (rev 703) +++ trunk/Help/IOHelp.hsc 2006-08-17 10:20:58 UTC (rev 704) @@ -3,7 +3,7 @@ `grira Zvgpuryy-0Q4954 0 1 -InstantObjects Guide 2.0 +InstantObjects Help @@ -37,7 +37,7 @@ Next FALSE -1276 +1279 10 Scribble10 InstantObjects Welcome @@ -658,7 +658,7 @@ \par \f2\fs10 \par \cf3\f1\fs18\{bmc AttributeEditorDefinitionExternal.gif\}\cf1 \par \f2\fs10 -\par \f1\fs18 The\lang1033\f0 \lang1040\b\f1 Storage Kind\b0\i \i0 combo-box allows to choose between \i Embedded \i0 (the classic model) and \i External \i0 (the new model). For Part attributes that (in addition to defining the target class \i stored \i0 and not \i embedded\i0 ) is enough. For Parts and References you also need \lang1033\f0 an\lang1040\f1 \b External Storage Name\lang1033\b0\f0 entry\lang1040\f1 , that is the name the \lang1033\f0 linking\lang1040\f1 table will have. \lang1033\f0 The default naming \lang1040\f1 convention\lang1033\f0 is to \lang1040\f1 use "<\lang1033\f0 class\lang1040\f1 \lang1033\f0 storage\lang1040\f1 name>_<attribute name>"\lang1033\f0 for new attributes\lang1040\f1 , but\lang1033\f0 any other suitable\lang1040\f1 naming scheme\lang1033\f0 may be used\lang1040\f1 .\lang1033\f0 If \b Auto\b0 is checked the default naming scheme will be used to update the \lang1040\b\f1 External Storage Name\lang1033\b0\f0 entry to the current values of its component names (ie \lang1040\f1 <\lang1033\f0 class\lang1040\f1 \lang1033\f0 storage\lang1040\f1 name>\lang1033\f0 and \lang1040\f1 <attribute name>\lang1033\f0 ).\lang1040\f1 +\par \f1\fs18 The\lang1033\f0 \lang1040\b\f1 Storage Kind\b0\i \i0 combo-box \lang1033\f0 allows a selection\lang1040\f1 between \i Embedded \i0 (the classic model) and \i External \i0 (the new model). For Part attributes that (in addition to defining the target class \i stored \i0 and not \i embedded\i0 ) is enough. For Parts and References you also need \lang1033\f0 an\lang1040\f1 \b External Storage Name\lang1033\b0\f0 entry\lang1040\f1 , that is the name the \lang1033\f0 linking\lang1040\f1 table will have. \lang1033\f0 The default naming \lang1040\f1 convention\lang1033\f0 is to \lang1040\f1 use "<\lang1033\f0 class\lang1040\f1 \lang1033\f0 storage\lang1040\f1 name>_<attribute name>"\lang1033\f0 for new attributes\lang1040\f1 , but\lang1033\f0 any other suitable\lang1040\f1 naming scheme\lang1033\f0 may be used\lang1040\f1 .\lang1033\f0 If \b Auto\b0 is checked the default naming scheme will be used to update the \lang1040\b\f1 External Storage Name\lang1033\b0\f0 entry to the current values of its component names (ie \lang1040\f1 <\lang1033\f0 class\lang1040\f1 \lang1033\f0 storage\lang1040\f1 name>\lang1033\f0 and \lang1040\f1 <attribute name>\lang1033\f0 ).\lang1040\f1 \par \pard\f2\fs10 \par \pard\sb25\sa25\lang1033\f0\fs18 IMPORTANT\lang1040\f1 NOTE\lang1033\f0 S: \par \pard{\pntext\f3\'B7\tab}{\*\pn\pnlvlblt\pnf3\pnindent0{\pntxtb\'B7}}\fi-200\li200\sb25\sa25\tx200\b\i External Storage and Class Persistence\b0\i0 - A cl\lang1040\f1 ass must \lang1033\f0 have its Persistence property set to\lang1040\f1 \i stored\i0 \lang1033\f0 if it is referred\lang1040\f1 \lang1033\f0 to by attributes that use\lang1040\f1 \i external \i0 storage. \lang1033\f0 A c\lang1040\f1 lass\lang1033\f0 defined with\lang1040\f1 \i embedded\i0 \lang1033\f0 Persistence may only be used by\lang1040\f1 \i embedded\i0 (the \lang1033\f0 InstantObjects \lang1040\f1 historical arrangement) part and parts attributes\lang1033\f0 ;\lang1040\f1 @@ -1852,7 +1852,7 @@ {\rtf1\ansi\deff0{\fonttbl{\f0\fswiss Arial;}{\f1\fmodern Courier New;}} {\colortbl ;\red0\green0\blue0;\red0\green128\blue0;\red128\green0\blue0;} \viewkind4\uc1\pard\lang1040\b\f0\fs24 EInstantAccessError \cf1\b0\fs16 -\par \pard\sb25\tx1435\tx2875\tx4315\cf2\ul Hierarchy\cf3\ulnone\{linkID=1030\}\cf1\tab\cf2\ul See Also\cf3\ulnone\{linkID=1010\}\cf1\tab\cf2\strike Example 1\cf3\strike0\{linkID=1020>example\}\cf1\tab\cf2\strike Unit: InstantPersistence\cf3\strike0\{linkID=13020>main\}\{keepn\}\cf1 +\par \pard\sb25\tx1435\tx2875\tx4315\cf2\ul Hierarchy\cf3\ulnone\{linkID=1030\}\cf1\tab\cf2\ul See Also\cf3\ulnone\{linkID=1010\}\cf1\tab\cf2\strike Example 1\cf3\strike0\{linkID=1020>example\}\cf1\tab\cf2\strike Unit: InstantPersistence\cf3\strike0\{linkID=13050>main\}\{keepn\}\cf1 \par \pard\sb25\sa85\tx1435\tx2875\tx4315\fs18 The exception class for access errors. \par \pard\sb25\sa25\tx1435\tx2875\tx4315\f1 EInstantAccessError = \b class\b0 (\cf2\strike EInstantError\cf3\strike0\{linkID=1350>main\}\cf1 ) \par \pard\sb55\sa25\tx1435\tx2875\tx4315\b\f0 Description @@ -2101,7 +2101,7 @@ {\rtf1\ansi\deff0{\fonttbl{\f0\fswiss Arial;}{\f1\fmodern Courier New;}} {\colortbl ;\red0\green0\blue0;\red0\green128\blue0;\red128\green0\blue0;} \viewkind4\uc1\pard\lang1040\b\f0\fs24 EInstantConflict\cf1\b0\fs16 -\par \pard\sb25\tx1440\tx2840\cf2\ul Hierarchy\cf3\ulnone\{linkID=1140\}\cf1\tab\cf2\strike Example 1\cf3\strike0\{linkID=1130>example\}\cf1\tab\cf2\strike Unit: InstantPersistence\cf3\strike0\{linkID=13020>main\}\{keepn\}\cf1 +\par \pard\sb25\tx1440\tx2840\cf2\ul Hierarchy\cf3\ulnone\{linkID=1140\}\cf1\tab\cf2\strike Example 1\cf3\strike0\{linkID=1130>example\}\cf1\tab\cf2\strike Unit: InstantPersistence\cf3\strike0\{linkID=13050>main\}\{keepn\}\cf1 \par \pard\sb25\sa85\tx1435\tx2875\fs18 The exception class for conflict errors. \par \pard\sb25\sa25\tx1435\tx2875\f1 EInstantConflict = \b class\b0 (\cf2\strike EInstantError\cf3\strike0\{linkID=1350>main\}\cf1 ) \par \pard\sb55\sa25\tx1435\tx2875\b\f0 Description @@ -2331,7 +2331,7 @@ {\rtf1\ansi\deff0{\fonttbl{\f0\fswiss Arial;}{\f1\fmodern Courier New;}} {\colortbl ;\red0\green0\blue0;\red0\green128\blue0;\red128\green0\blue0;} \viewkind4\uc1\pard\lang1040\b\f0\fs24 EInstantConversionError \cf1\b0\fs16 -\par \pard\sb25\tx1435\tx2875\tx4315\cf2\ul Hierarchy\cf3\ulnone\{linkID=1260\}\cf1\tab\cf2\ul See Also\cf3\ulnone\{linkID=1240\}\cf1\tab\cf2\strike Example 1\cf3\strike0\{linkID=1250>example\}\cf1\tab\cf2\strike Unit: InstantClasses\cf3\strike0\{linkID=12790>main\}\cf1\{keepn\} +\par \pard\sb25\tx1435\tx2875\tx4315\cf2\ul Hierarchy\cf3\ulnone\{linkID=1260\}\cf1\tab\cf2\ul See Also\cf3\ulnone\{linkID=1240\}\cf1\tab\cf2\strike Example 1\cf3\strike0\{linkID=1250>example\}\cf1\tab\cf2\strike Unit: InstantClasses\cf3\strike0\{linkID=12820>main\}\cf1\{keepn\} \par \pard\sb25\sa85\tx1435\tx2875\tx4315\fs18 The exception class for conversion errors. \par \pard\sb25\sa25\tx1435\tx2875\tx4315\f1 EInstantConversionError = \b class\b0 (\cf2\strike EInstantError\cf3\strike0\{linkID=1350>main\}\cf1 ) \par \pard\sb55\sa25\tx1435\tx2875\tx4315\b\f0 Description @@ -2582,7 +2582,7 @@ {\rtf1\ansi\deff0{\fonttbl{\f0\fswiss Arial;}{\f1\fmodern Courier New;}} {\colortbl ;\red0\green0\blue0;\red0\green128\blue0;\red128\green0\blue0;} \viewkind4\uc1\pard\lang1040\b\f0\fs24 EInstantError \cf1\b0\fs16 -\par \pard\sb25\tx1400\tx2840\tx4280\tx5700\cf2\ul Hierarchy\cf3\ulnone\{linkID=1360\}\cf1\tab\cf2\strike Members\cf3\strike0\{linkID=1430>nav\}\cf1\tab\cf2\strike Properties\cf3\strike0\{linkID=1380>nav\}\cf1\tab\cf2\strike Methods\cf3\strike0\{linkID=1410>nav\}\cf1\tab\cf2\strike Unit: InstantClasses\cf3\strike0\{linkID=12790>main\}\cf1\{keepn\} +\par \pard\sb25\tx1400\tx2840\tx4280\tx5700\cf2\ul Hierarchy\cf3\ulnone\{linkID=1360\}\cf1\tab\cf2\strike Members\cf3\strike0\{linkID=1430>nav\}\cf1\tab\cf2\strike Properties\cf3\strike0\{linkID=1380>nav\}\cf1\tab\cf2\strike Methods\cf3\strike0\{linkID=1410>nav\}\cf1\tab\cf2\strike Unit: InstantClasses\cf3\strike0\{linkID=12820>main\}\cf1\{keepn\} \par \pard\sb25\sa85\tx1435\tx2875\tx4315\fs18 The common ancestor of exception classes. \par \pard\sb25\sa25\tx1435\tx2875\tx4315\f1 EInstantError = \b class\b0 (Exception) \par \pard\sb55\sa25\tx1435\tx2875\tx4315\b\f0 Description @@ -2884,7 +2884,7 @@ {\rtf1\ansi\deff0{\fonttbl{\f0\fswiss Arial;}{\f1\fmodern Courier New;}} {\colortbl ;\red0\green0\blue0;} \viewkind4\uc1\pard\lang1040\b\f0\fs24 EInstantKeyViolation \cf1\b0\fs16 -\par \pard\sb25\tx1435\tx2875\ul Hierarchy\ulnone\{linkID=1510\}\tab\ul See Also\ulnone\{linkID=1500\}\tab\strike Unit: InstantPersistence\strike0\{linkID=13020>main\}\{keepn\} +\par \pard\sb25\tx1435\tx2875\ul Hierarchy\ulnone\{linkID=1510\}\tab\ul See Also\ulnone\{linkID=1500\}\tab\strike Unit: InstantPersistence\strike0\{linkID=13050>main\}\{keepn\} \par \pard\sb25\sa85\tx1435\tx2875\fs18 The exception class for key violations. \par \pard\sb25\sa25\tx1435\tx2875\f1 EInstantKeyViolation = \b class\b0 (\strike EInstantConflict\strike0\{linkID=1120>main\}) \par \pard\sb55\sa25\tx1435\tx2875\b\f0 Description @@ -3111,7 +3111,7 @@ {\rtf1\ansi\deff0{\fonttbl{\f0\fswiss Arial;}{\f1\fmodern Courier New;}} {\colortbl ;\red0\green0\blue0;} \viewkind4\uc1\pard\lang1040\b\f0\fs24 EInstantRangeError \cf1\b0\fs16 -\par \pard\sb25\tx1435\ul Hierarchy\ulnone\{linkID=1610\}\tab\strike Unit: InstantClasses\strike0\{linkID=12790>main\}\{keepn\} +\par \pard\sb25\tx1435\ul Hierarchy\ulnone\{linkID=1610\}\tab\strike Unit: InstantClasses\strike0\{linkID=12820>main\}\{keepn\} \par \pard\sb25\sa85\tx1435\fs18 The exception class for too large or too small integer values. \par \pard\sb25\sa25\tx1435\f1 EInstantRangeError = \b class\b0 (\strike EInstantError\strike0\{linkID=1350>main\}) \par \pard\sb55\sa25\tx1435\b\f0 Description @@ -3317,7 +3317,7 @@ {\rtf1\ansi\deff0{\fonttbl{\f0\fswiss Arial;}{\f1\fmodern Courier New;}} {\colortbl ;\red0\green0\blue0;} \viewkind4\uc1\pard\lang1040\b\f0\fs24 EInstantStreamError \cf1\b0\fs16 -\par \pard\sb25\tx1435\ul Hierarchy\ulnone\{linkID=1710\}\tab\strike Unit: InstantClasses\strike0\{linkID=12790>main\}\{keepn\} +\par \pard\sb25\tx1435\ul Hierarchy\ulnone\{linkID=1710\}\tab\strike Unit: InstantClasses\strike0\{linkID=12820>main\}\{keepn\} \par \pard\sb25\sa85\tx1435\fs18 The exception class for streaming errors. \par \pard\sb25\sa25\tx1435\f1 EInstantStreamError = \b class\b0 (\strike EInstantError\strike0\{linkID=1350>main\}) \par \pard\sb55\sa25\tx1435\b\f0 Description @@ -3523,7 +3523,7 @@ {\rtf1\ansi\deff0{\fonttbl{\f0\fswiss Arial;}{\f1\fmodern Courier New;}} {\colortbl ;\red0\green0\blue0;} \viewkind4\uc1\pard\lang1040\b\f0\fs24 EInstantValidationError \cf1\b0\fs16 -\par \pard\sb25\tx1435\tx2875\ul Hierarchy\ulnone\{linkID=1820\}\tab\ul See Also\ulnone\{linkID=1810\}\tab\strike Unit: InstantClasses\strike0\{linkID=12790>main\}\{keepn\} +\par \pard\sb25\tx1435\tx2875\ul Hierarchy\ulnone\{linkID=1820\}\tab\ul See Also\ulnone\{linkID=1810\}\tab\strike Unit: InstantClasses\strike0\{linkID=12820>main\}\{keepn\} \par \pard\sb25\sa85\tx1435\tx2875\fs18 The exception class for validation errors. \par \pard\sb25\sa25\tx1435\tx2875\f1 EInstantValidationError = \b class\b0 (\strike EInstantError\strike0\{linkID=1350>main\}) \par \pard\sb55\sa25\tx1435\tx2875\b\f0 Description @@ -3729,7 +3729,7 @@ {\rtf1\ansi\deff0{\fonttbl{\f0\fswiss Arial;}{\f1\fmodern Courier New;}} {\colortbl ;\red0\green0\blue0;} \viewkind4\uc1\pard\lang1040\b\f0\fs24 TInstantADOConnector \cf1\b0\fs16 -\par \pard\sb25\tx1400\tx2840\tx4280\tx5700\ul Hierarchy\ulnone\{linkID=1910\}\tab\strike Members\strike0\{linkID=1980>nav\}\tab\strike Properties\strike0\{linkID=1930>nav\}\tab\strike Methods\strike0\{linkID=1970>nav\}\tab\strike Unit: InstantADO\strike0\{linkID=12680>main\}\{keepn\} +\par \pard\sb25\tx1400\tx2840\tx4280\tx5700\ul Hierarchy\ulnone\{linkID=1910\}\tab\strike Members\strike0\{linkID=1980>nav\}\tab\strike Properties\strike0\{linkID=1930>nav\}\tab\strike Methods\strike0\{linkID=1970>nav\}\tab\strike Unit: InstantADO\strike0\{linkID=12710>main\}\{keepn\} \par \pard\sb25\sa85\tx1435\tx2875\tx4315\fs18 Provides access to a database. \par \pard\sb25\sa25\tx1435\tx2875\tx4315\strike\f1 TInstantConnectorClass\strike0\{linkID=12210>main\} = \b class\b0 \b of\b0 \strike TInstantConnector\strike0\{linkID=3770>main\}; \par \strike TInstantConnector\strike0\{linkID=3770>main\} = \b class\b0 (TComponent) @@ -4088,7 +4088,7 @@ {\rtf1\ansi\deff0{\fonttbl{\f0\fswiss Arial;}{\f1\fmodern Courier New;}} {\colortbl ;\red0\green0\blue0;} \viewkind4\uc1\pard\lang1040\b\f0\fs24 TInstantADSConnector \cf1\b0\fs16 -\par \pard\sb25\tx1400\tx2840\tx4280\tx5700\ul Hierarchy\ulnone\{linkID=2050\}\tab\strike Members\strike0\{linkID=2120>nav\}\tab\strike Properties\strike0\{linkID=2070>nav\}\tab\strike Methods\strike0\{linkID=2110>nav\}\tab\strike Unit: InstantADS\strike0\{linkID=12710>main\}\{keepn\} +\par \pard\sb25\tx1400\tx2840\tx4280\tx5700\ul Hierarchy\ulnone\{linkID=2050\}\tab\strike Members\strike0\{linkID=2120>nav\}\tab\strike Properties\strike0\{linkID=2070>nav\}\tab\strike Methods\strike0\{linkID=2110>nav\}\tab\strike Unit: InstantADS\strike0\{linkID=12740>main\}\{keepn\} \par \pard\sb25\sa85\tx1435\tx2875\tx4315\fs18 Provides access to a database. \par \pard\sb25\sa25\tx1435\tx2875\tx4315\strike\f1 TInstantConnectorClass\strike0\{linkID=12210>main\} = \b class\b0 \b of\b0 \strike TInstantConnector\strike0\{linkID=3770>main\}; \par \strike TInstantConnector\strike0\{linkID=3770>main\} = \b class\b0 (TComponent) @@ -4413,7 +4413,7 @@ {\rtf1\ansi\ansicpg1252\deff0{\fonttbl{\f0\fswiss Arial;}{\f1\fmodern Courier New;}{\f2\fswiss\fcharset0 Arial;}} {\colortbl ;\red0\green0\blue0;} \viewkind4\uc1\pard\lang1040\b\f0\fs24 TInstantAttribute \cf1\b0\fs16 -\par \pard\sb25\tx1400\tx2840\tx4280\tx5680\ul Hierarchy\ulnone\{linkID=2180\}\tab\strike Members\strike0\{linkID=2250>nav\}\tab\strike Properties\strike0\{linkID=2200>nav\}\tab\strike Methods\strike0\{linkID=2230>nav\}\tab\strike Unit: InstantPersistence\strike0\{linkID=13020>main\}\{keepn\} +\par \pard\sb25\tx1400\tx2840\tx4280\tx5680\ul Hierarchy\ulnone\{linkID=2180\}\tab\strike Members\strike0\{linkID=2250>nav\}\tab\strike Properties\strike0\{linkID=2200>nav\}\tab\strike Methods\strike0\{linkID=2230>nav\}\tab\strike Unit: InstantPersistence\strike0\{linkID=13050>main\}\{keepn\} \par \pard\sb25\sa85\tx1435\tx2875\tx4315\fs18 The common ancestor of all the attribute classes. \par \pard\sb25\sa25\tx1435\tx2875\tx4315\f1 TInstantAttribute = \b class\b0 (\strike TInstantStreamable\strike0\{linkID=10830>main\}) \par PInstantAttribute = ^TInstantAttribute; @@ -5342,7 +5342,7 @@ {\rtf1\ansi\ansicpg1252\deff0{\fonttbl{\f0\fswiss Arial;}{\f1\fmodern Courier New;}{\f2\fswiss\fcharset0 Arial;}} {\colortbl ;\red0\green0\blue0;} \viewkind4\uc1\pard\lang1040\b\f0\fs24 TInstantBDEConnector \cf1\b0\fs16 -\par \pard\sb25\tx1400\tx2840\tx4260\ul Hierarchy\ulnone\{linkID=2570\}\tab\strike Members\strike0\{linkID=2640>nav\}\tab\strike Properties\strike0\{linkID=2590>nav\}\tab\strike Unit: InstantBDE\strike0\{linkID=12730>main\}\{keepn\} +\par \pard\sb25\tx1400\tx2840\tx4260\ul Hierarchy\ulnone\{linkID=2570\}\tab\strike Members\strike0\{linkID=2640>nav\}\tab\strike Properties\strike0\{linkID=2590>nav\}\tab\strike Unit: InstantBDE\strike0\{linkID=12760>main\}\{keepn\} \par \pard\sb25\sa85\tx1435\tx2875\fs18 Provides access to a database. \par \pard\sb25\sa25\tx1435\tx2875\strike\f1 TInstantConnectorClass\strike0\{linkID=12210>main\} = \b class\b0 \b of\b0 \strike TInstantConnector\strike0\{linkID=3770>main\}; \par \strike TInstantConnector\strike0\{linkID=3770>main\} = \b class\b0 (TComponent) @@ -5648,7 +5648,7 @@ {\rtf1\ansi\deff0{\fonttbl{\f0\fswiss Arial;}{\f1\fmodern Courier New;}} {\colortbl ;\red0\green0\blue0;} \viewkind4\uc1\pard\lang1040\b\f0\fs24 TInstantBlob \cf1\b0\fs16 -\par \pard\sb25\tx1400\tx2840\tx4280\tx5720\tx7100\ul Hierarchy\ulnone\{linkID=2700\}\tab\strike Members\strike0\{linkID=2770>nav\}\tab\strike Properties\strike0\{linkID=2720>nav\}\tab\strike Methods\strike0\{linkID=2750>nav\}\tab\ul See Also\ulnone\{linkID=2690\}\tab\strike Unit: InstantPersistence\strike0\{linkID=13020>main\}\{keepn\} +\par \pard\sb25\tx1400\tx2840\tx4280\tx5720\tx7100\ul Hierarchy\ulnone\{linkID=2700\}\tab\strike Members\strike0\{linkID=2770>nav\}\tab\strike Properties\strike0\{linkID=2720>nav\}\tab\strike Methods\strike0\{linkID=2750>nav\}\tab\ul See Also\ulnone\{linkID=2690\}\tab\strike Unit: InstantPersistence\strike0\{linkID=13050>main\}\{keepn\} \par \pard\sb25\sa85\tx1435\tx2875\tx4315\tx5755\fs18 TInstantBlob represents a binary large object (BLOB). \par \pard\sb25\sa25\tx1435\tx2875\tx4315\tx5755\f1 TInstantBlob = \b class\b0 (\strike TInstantSimple\strike0\{linkID=10430>main\}) \par \pard\sb55\sa25\tx1435\tx2875\tx4315\tx5755\b\f0 Description @@ -6089,7 +6089,7 @@ {\rtf1\ansi\deff0{\fonttbl{\f0\fswiss Arial;}{\f1\fmodern Courier New;}} {\colortbl ;\red0\green0\blue0;} \viewkind4\uc1\pard\lang1040\b\f0\fs24 TInstantBoolean\cf1\b0\fs16 -\par \pard\sb25\tx1420\tx2840\tx4260\ul Hierarchy\ulnone\{linkID=2870\}\tab\strike Members\strike0\{linkID=2940>nav\}\tab\strike Properties\strike0\{linkID=2890>nav\}\tab\strike Unit: InstantPersistence\strike0\{linkID=13020>main\}\{keepn\} +\par \pard\sb25\tx1420\tx2840\tx4260\ul Hierarchy\ulnone\{linkID=2870\}\tab\strike Members\strike0\{linkID=2940>nav\}\tab\strike Properties\strike0\{linkID=2890>nav\}\tab\strike Unit: InstantPersistence\strike0\{linkID=13050>main\}\{keepn\} \par \pard\sb25\sa85\tx1435\tx2875\fs18 TInstantBoolean represents a Boolean value. \par \pard\sb25\sa25\tx1435\tx2875\f1 TInstantBoolean = \b class\b0 (\strike TInstantSimple\strike0\{linkID=10430>main\}) \par \pard\sb55\sa25\tx1435\tx2875\b\f0 Description @@ -6358,7 +6358,7 @@ {\rtf1\ansi\deff0{\fonttbl{\f0\fswiss Arial;}{\f1\fmodern Courier New;}} {\colortbl ;\red0\green0\blue0;} \viewkind4\uc1\pard\lang1040\b\f0\fs24 TInstantCollection \cf1\b0\fs16 -\par \pard\sb25\tx1400\tx2840\tx4260\ul Hierarchy\ulnone\{linkID=2980\}\tab\strike Members\strike0\{linkID=3030>nav\}\tab\strike Methods\strike0\{linkID=3020>nav\}\tab\strike Unit: InstantClasses\strike0\{linkID=12790>main\}\{keepn\} +\par \pard\sb25\tx1400\tx2840\tx4260\ul Hierarchy\ulnone\{linkID=2980\}\tab\strike Members\strike0\{linkID=3030>nav\}\tab\strike Methods\strike0\{linkID=3020>nav\}\tab\strike Unit: InstantClasses\strike0\{linkID=12820>main\}\{keepn\} \par \pard\sb25\sa85\tx1435\tx2875\fs18 TInstantCollection is a container for \strike TInstantCollectionItem\strike0\{linkID=3090>main\} objects. \par \pard\sb25\sa25\tx1435\tx2875\f1 TInstantCollection = \b class\b0 (TCollection) \par \pard\sb55\sa25\tx1435\tx2875\b\f0 Description @@ -6625,7 +6625,7 @@ {\rtf1\ansi\deff0{\fonttbl{\f0\fswiss Arial;}{\f1\fmodern Courier New;}} {\colortbl ;\red0\green0\blue0;} \viewkind4\uc1\pard\lang1040\b\f0\fs24 TInstantCollectionItem \cf1\b0\fs16 -\par \pard\sb25\tx1400\tx2840\tx4260\ul Hierarchy\ulnone\{linkID=3100\}\tab\strike Members\strike0\{linkID=3160>nav\}\tab\strike Properties\strike0\{linkID=3120>nav\}\tab\strike Unit: InstantClasses\strike0\{linkID=12790>main\}\{keepn\} +\par \pard\sb25\tx1400\tx2840\tx4260\ul Hierarchy\ulnone\{linkID=3100\}\tab\strike Members\strike0\{linkID=3160>nav\}\tab\strike Properties\strike0\{linkID=3120>nav\}\tab\strike Unit: InstantClasses\strike0\{linkID=12820>main\}\{keepn\} \par \pard\sb25\sa85\tx1435\tx2875\fs18 TInstantCollectionItem is the ancestor for collection item classes. \par \pard\sb25\sa25\tx1435\tx2875\f1 TInstantCollectionItem = \b class\b0 (TCollectionItem) \par \pard\sb55\sa25\tx1435\tx2875\b\f0 Description @@ -6831,7 +6831,7 @@ {\rtf1\ansi\ansicpg1252\deff0{\fonttbl{\f0\fswiss Arial;}{\f1\fmodern Courier New;}{\f2\fswiss\fcharset0 Arial;}} {\colortbl ;\red0\green0\blue0;} \viewkind4\uc1\pard\lang1040\b\f0\fs24 TInstantComplex \cf1\b0\fs16 -\par \pard\sb25\tx1400\tx2840\tx4280\tx5720\tx7080\ul Hierarchy\ulnone\{linkID=3210\}\tab\strike Members\strike0\{linkID=3280>nav\}\tab\strike Properties\strike0\{linkID=3230>nav\}\tab\strike Methods\strike0\{linkID=3260>nav\}\tab\ul See Also\ulnone\{linkID=3200\}\tab\strike Unit: InstantPersistence\strike0\{linkID=13020>main\}\{keepn\} +\par \pard\sb25\tx1400\tx2840\tx4280\tx5720\tx7080\ul Hierarchy\ulnone\{linkID=3210\}\tab\strike Members\strike0\{linkID=3280>nav\}\tab\strike Properties\strike0\{linkID=3230>nav\}\tab\strike Methods\strike0\{linkID=3260>nav\}\tab\ul See Also\ulnone\{linkID=3200\}\tab\strike Unit: InstantPersistence\strike0\{linkID=13050>main\}\{keepn\} \par \pard\sb25\sa85\tx1435\tx2875\tx4315\tx5755\fs18 The ancestor of all the attribute classes that represent objects. \par \pard\sb25\sa25\tx1435\tx2875\tx4315\tx5755\f1 TInstantComplex = \b class\b0 (\strike TInstantAttribute\strike0\{linkID=2170>main\}) \par \pard\sb55\sa25\tx1435\tx2875\tx4315\tx5755\b\f0 Description @@ -7349,7 +7349,7 @@ {\rtf1\ansi\ansicpg1252\deff0{\fonttbl{\f0\fswiss Arial;}{\f1\fmodern Courier New;}{\f2\fswiss\fcharset0 Arial;}} {\colortbl ;\red0\green0\blue0;} \viewkind4\uc1\pard\lang1040\b\f0\fs24 TInstantConnectionBasedConnector \cf1\b0\fs16 -\par \pard\sb25\tx1400\tx2840\tx4280\tx5700\ul Hierarchy\ulnone\{linkID=3410\}\tab\strike Members\strike0\{linkID=3480>nav\}\tab\strike Properties\strike0\{linkID=3430>nav\}\tab\strike Methods\strike0\{linkID=3470>nav\}\tab\strike Unit: InstantPersistence\strike0\{linkID=13020>main\}\{keepn\} +\par \pard\sb25\tx1400\tx2840\tx4280\tx5700\ul Hierarchy\ulnone\{linkID=3410\}\tab\strike Members\strike0\{linkID=3480>nav\}\tab\strike Properties\strike0\{linkID=3430>nav\}\tab\strike Methods\strike0\{linkID=3470>nav\}\tab\strike Unit: InstantPersistence\strike0\{linkID=13050>main\}\{keepn\} \par \pard\sb25\sa85\tx1435\tx2875\tx4315\fs18 Provides access to a database. \par \pard\sb25\sa25\tx1435\tx2875\tx4315\strike\f1 TInstantConnectorClass\strike0\{linkID=12210>main\} = \b class\b0 \b of\b0 \strike TInstantConnector\strike0\{linkID=3770>main\}; \par \strike TInstantConnector\strike0\{linkID=3770>main\} = \b class\b0 (TComponent) @@ -7650,7 +7650,7 @@ {\rtf1\ansi\deff0{\fonttbl{\f0\fswiss Arial;}{\f1\fmodern Courier New;}} {\colortbl ;\red0\green0\blue0;} \viewkind4\uc1\pard\lang1040\b\f0\fs24 TInstantConnectionManager \cf1\b0\fs16 -\par \pard\sb25\tx1400\tx2840\tx4260\tx5700\ul Hierarchy\ulnone\{linkID=3530\}\tab\strike Members\strike0\{linkID=3600>nav\}\tab\strike Properties\strike0\{linkID=3550>nav\}\tab\strike Methods\strike0\{linkID=3580>nav\}\tab\strike Unit: InstantConnectionManager\strike0\{linkID=12830>main\}\{keepn\} +\par \pard\sb25\tx1400\tx2840\tx4260\tx5700\ul Hierarchy\ulnone\{linkID=3530\}\tab\strike Members\strike0\{linkID=3600>nav\}\tab\strike Properties\strike0\{linkID=3550>nav\}\tab\strike Methods\strike0\{linkID=3580>nav\}\tab\strike Unit: InstantConnectionManager\strike0\{linkID=12860>main\}\{keepn\} \par \pard\sb25\sa85\tx1435\tx2875\tx4315\fs18 Allows the user to manage connections to various databases. \par \pard\sb25\sa25\tx1435\tx2875\tx4315\f1 TInstantConnectionManager = \b class\b0 (TComponent) \par \pard\sb55\sa25\tx1435\tx2875\tx4315\b\f0 Description @@ -8230,7 +8230,7 @@ {\rtf1\ansi\ansicpg1252\deff0{\fonttbl{\f0\fswiss Arial;}{\f1\fmodern Courier New;}{\f2\fswiss\fcharset0 Arial;}} {\colortbl ;\red0\green0\blue0;} \viewkind4\uc1\pard\lang1040\b\f0\fs24 TInstantConnector \cf1\b0\fs16 -\par \pard\sb25\tx1400\tx2840\tx4260\tx5700\tx7100\ul Hierarchy\ulnone\{linkID=3780\}\tab\strike Members\strike0\{linkID=3850>nav\}\tab\strike Properties\strike0\{linkID=3800>nav\}\tab\strike Methods\strike0\{linkID=3840>nav\}\tab\strike Events\strike0\{linkID=3820>nav\}\tab\strike Unit: InstantPersistence\strike0\{linkID=13020>main\}\{keepn\} +\par \pard\sb25\tx1400\tx2840\tx4260\tx5700\tx7100\ul Hierarchy\ulnone\{linkID=3780\}\tab\strike Members\strike0\{linkID=3850>nav\}\tab\strike Properties\strike0\{linkID=3800>nav\}\tab\strike Methods\strike0\{linkID=3840>nav\}\tab\strike Events\strike0\{linkID=3820>nav\}\tab\strike Unit: InstantPersistence\strike0\{linkID=13050>main\}\{keepn\} \par \pard\sb25\sa85\tx1435\tx2875\tx4315\tx5755\fs18 Provides access to a database. \par \pard\sb25\sa25\tx1435\tx2875\tx4315\tx5755\strike\f1 TInstantConnectorClass\strike0\{linkID=12210>main\} = \b class\b0 \b of\b0 TInstantConnector; \par TInstantConnector = \b class\b0 (TComponent) @@ -9413,7 +9413,7 @@ \viewkind4\uc1\pard\lang1040\b\f0\fs24 TInstantConnector.BeforeBuildDatabase \cf1\b0\fs16 \par \cf2\strike TInstantConnector\cf3\strike0\{linkID=3770>main\}\cf1\{keepn\} \par \pard\sb25\sa85\fs18 Occurs before the database is build. -\par \pard\sb25\sa25\b\f1 property\b0 BeforeBuildDatabase: \strike TInstantSchemeEvent\strike0\{linkID=12520>main\}; +\par \pard\sb25\sa25\b\f1 property\b0 BeforeBuildDatabase: \strike TInstantSchemeEvent\strike0\{linkID=12530>main\}; \par \pard\sb55\sa25\b\f0 Description \par \pard\sb25\sa25\b0 Write a BeforeBuildDatabase event handler to take specific action before a database is build. The event is particularly useful if modifications or additions should be made to the database scheme like adding indices. \par @@ -9434,7 +9434,7 @@ {\rtf1\ansi\ansicpg1252\deff0{\fonttbl{\f0\fswiss Arial;}{\f1\fmodern Courier New;}{\f2\fswiss\fcharset0 Arial;}{\f3\fnil Arial;}{\f4\fnil\fcharset2 Symbol;}} {\colortbl ;\red0\green0\blue0;} \viewkind4\uc1\pard\lang1040\b\f0\fs24 TInstantContainer \cf1\b0\fs16 -\par \pard\sb25\tx1400\tx2840\tx4260\tx5680\ul Hierarchy\ulnone\{linkID=4310\}\tab\strike Members\strike0\{linkID=4380>nav\}\tab\strike Properties\strike0\{linkID=4330>nav\}\tab\strike Methods\strike0\{linkID=4360>nav\}\tab\strike Unit: InstantPersistence\strike0\{linkID=13020>main\}\{keepn\} +\par \pard\sb25\tx1400\tx2840\tx4260\tx5680\ul Hierarchy\ulnone\{linkID=4310\}\tab\strike Members\strike0\{linkID=4380>nav\}\tab\strike Properties\strike0\{linkID=4330>nav\}\tab\strike Methods\strike0\{linkID=4360>nav\}\tab\strike Unit: InstantPersistence\strike0\{linkID=13050>main\}\{keepn\} \par \pard\sb25\sa85\tx1435\tx2875\tx4315\fs18 TInstantContainer is the ancestor of attribute classes that represent a relationship with multiple objects. \par \pard\sb25\sa25\tx1435\tx2875\tx4315\f1 TInstantContainer = \b class\b0 (\strike TInstantComplex\strike0\{linkID=3190>main\}) \par \pard\sb55\sa25\tx1435\tx2875\tx4315\b\f0 Description @@ -10304,7 +10304,7 @@ \viewkind4\uc1\pard\lang1040\b\f0\fs24 TInstantContainer.Sort \cf1\b0\fs16 \par \cf2\strike TInstantContainer\cf3\strike0\{linkID=4300>main\}\cf1\{keepn\} \par \pard\sb25\sa85\fs18 Sorts the objects in the container based on comparison function. -\par \pard\sb25\sa25\b\f1 procedure\b0 Sort(Compare: \strike TInstantSortCompare\strike0\{linkID=12530>main\}); +\par \pard\sb25\sa25\b\f1 procedure\b0 Sort(Compare: \strike TInstantSortCompare\strike0\{linkID=12540>main\}); \par \pard\sb55\sa25\b\f0 Description \par \pard\sb25\sa25\b0 Call Sort to QuickSort the objects in the container. Compare is a comparison function that indicates how the items are to be ordered. \par @@ -10325,7 +10325,7 @@ {\rtf1\ansi\ansicpg1252\deff0\deflang3081{\fonttbl{\f0\fnil\fcharset0 Arial;}{\f1\fnil Arial;}{\f2\fswiss Arial;}{\f3\fswiss\fcharset0 Arial;}{\f4\fmodern Courier New;}{\f5\fmodern\fcharset0 Courier New;}} {\colortbl ;\red0\green0\blue0;} \viewkind4\uc1\pard\lang1033\b\fs24 TInstantCurrency\cf1\lang3081\b0\f1\fs18 -\par \pard\sb25\tx1400\tx2840\tx4260\tx5680\lang1040\ul\f2\fs16 Hierarchy\ulnone\{linkID=4690\}\tab\strike Members\strike0\{linkID=4760>nav\}\tab\strike Properties\strike0\{linkID=4710>nav\}\tab\ul See Also\ulnone\{linkID=4680\}\tab\strike Unit: InstantPersistence\strike0\{linkID=13020>main\}\{keepn\} +\par \pard\sb25\tx1400\tx2840\tx4260\tx5680\lang1040\ul\f2\fs16 Hierarchy\ulnone\{linkID=4690\}\tab\strike Members\strike0\{linkID=4760>nav\}\tab\strike Properties\strike0\{linkID=4710>nav\}\tab\ul See Also\ulnone\{linkID=4680\}\tab\strike Unit: InstantPersistence\strike0\{linkID=13050>main\}\{keepn\} \par \pard\sb25\sa85\tx1435\tx2875\tx4315\fs18 TInstant\lang1033\f3 Currency \lang1040\f2 represents a \lang1033\f3 Currency \lang1040\f2 value. \par \pard\sb25\sa25\tx1435\tx2875\tx4315\f4 TInstant\lang1033\f5 Currency\lang1040\f4 = \b class\b0 (\strike TInstantNumeric\strike0\{linkID=7290>main\}) \par \pard\sb55\sa25\tx1435\tx2875\tx4315\b\f2 Description @@ -10618,7 +10618,7 @@ {\rtf1\ansi\ansicpg1252\deff0{\fonttbl{\f0\fswiss Arial;}{\f1\fmodern Courier New;}{\f2\fswiss\fcharset0 Arial;}{\f3\fnil Arial;}} {\colortbl ;\red0\green0\blue0;\red0\green128\blue0;\red128\green0\blue0;} \viewkind4\uc1\pard\lang1040\b\f0\fs24 TInstantCustomExposer \cf1\b0\fs16 -\par \pard\sb25\tx1400\tx2840\tx4280\tx5720\tx7100\cf2\ul Hierarchy\cf3\ulnone\{linkID=4800\}\cf1\tab\cf2\strike Members\cf3\strike0\{linkID=4880>nav\}\cf1\tab\cf2\strike Properties\cf3\strike0\{linkID=4820>nav\}\cf1\tab\cf2\strike Methods\cf3\strike0\{linkID=4860>nav\}\cf1\tab\cf2\strike Events\cf3\strike0\{linkID=4840>nav\}\cf1\tab\cf2\strike Unit: InstantPresentation\cf3\strike0\{linkID=13070>main\}\cf1\{keepn\} +\par \pard\sb25\tx1400\tx2840\tx4280\tx5720\tx7100\cf2\ul Hierarchy\cf3\ulnone\{linkID=4800\}\cf1\tab\cf2\strike Members\cf3\strike0\{linkID=4880>nav\}\cf1\tab\cf2\strike Properties\cf3\strike0\{linkID=4820>nav\}\cf1\tab\cf2\strike Methods\cf3\strike0\{linkID=4860>nav\}\cf1\tab\cf2\strike Events\cf3\strike0\{linkID=4840>nav\}\cf1\tab\cf2\strike Unit: InstantPresentation\cf3\strike0\{linkID=13100>main\}\cf1\{keepn\} \par \pard\sb25\sa85\tx1435\tx2875\tx4315\tx5755\fs18 The ancestor of components that make objects accessible via data-aware controls. \par \pard\sb25\sa25\tx1435\tx2875\tx4315\tx5755\f1 TInstantCustomExposer = \b class\b0 (TDataSet) \par \pard\sb55\sa25\tx1435\tx2875\tx4315\tx5755\b\f0 Description @@ -11021,7 +11021,7 @@ main FieldOptions;FieldOptions_Property;TInstantCustomExposer_FieldOptions -TRUE +FALSE 11 {\rtf1\ansi\ansicpg1252\deff0{\fonttbl{\f0\fswiss Arial;}{\f1\fmodern Courier New;}{\f2\fnil Arial;}{\f3\fswiss\fcharset0 Arial;}} {\colortbl ;\red0\green0\blue0;\red0\green128\blue0;\red128\green0\blue0;} @@ -12312,7 +12312,7 @@ main OnAddClassFieldDef;OnAddClassFieldDef_Event;TInstantCustomExposer_OnAddClassFieldDef -TRUE +FALSE 10 {\rtf1\ansi\ansicpg1252\deff0{\fonttbl{\f0\fswiss Arial;}{\f1\fswiss\fcharset0 Arial;}{\f2\fmodern Courier New;}{\f3\fmodern\fcharset0 Courier New;}{\f4\fnil\fcharset0 Arial;}} {\colortbl ;\red0\green0\blue0;\red0\green128\blue0;\red128\green0\blue0;} @@ -12680,7 +12680,7 @@ {\rtf1\ansi\deff0{\fonttbl{\f0\fswiss Arial;}{\f1\fmodern Courier New;}} {\colortbl ;\red0\green0\blue0;} \viewkind4\uc1\pard\cf1\lang1040\b\f0\fs24 TInstantDateTime \b0\fs16 -\par \pard\sb25\tx1400\tx2840\tx4260\ul Hierarchy\ulnone\{linkID=5680\}\tab\strike Members\strike0\{linkID=5750>nav\}\tab\strike Properties\strike0\{linkID=5700>nav\}\tab\strike Unit: InstantPersistence\strike0\{linkID=13020>main\}\{keepn\} +\par \pard\sb25\tx1400\tx2840\tx4260\ul Hierarchy\ulnone\{linkID=5680\}\tab\strike Members\strike0\{linkID=5750>nav\}\tab\strike Properties\strike0\{linkID=5700>nav\}\tab\strike Unit: InstantPersistence\strike0\{linkID=13050>main\}\{keepn\} \par \pard\sb25\sa85\tx1435\tx2875\fs18 TInstantDateTime represents a TDateTime value. \par \pard\sb25\sa25\tx1435\tx2875\f1 TInstantDateTime = \b class\b0 (\strike TInstantSimple\strike0\{linkID=10430>main\}) \par \pard\sb55\sa25\tx1435\tx2875\b\f0 Description @@ -12949,7 +12949,7 @@ {\rtf1\ansi\ansicpg1252\deff0{\fonttbl{\f0\fswiss Arial;}{\f1\fmodern Courier New;}{\f2\fswiss\fcharset0 Arial;}} {\colortbl ;\red0\green0\blue0;} \viewkind4\uc1\pard\lang1040\b\f0\fs24 TInstantDBISAMConnector \cf1\b0\fs16 -\par \pard\sb25\tx1400\tx2840\tx4280\tx5700\ul Hierarchy\ulnone\{linkID=5790\}\tab\strike Members\strike0\{linkID=5860>nav\}\tab\strike Properties\strike0\{linkID=5810>nav\}\tab\strike Methods\strike0\{linkID=5850>nav\}\tab\strike Unit: InstantDBISAM\strike0\{linkID=12880>main\}\{keepn\} +\par \pard\sb25\tx1400\tx2840\tx4280\tx5700\ul Hierarchy\ulnone\{linkID=5790\}\tab\strike Members\strike0\{linkID=5860>nav\}\tab\strike Properties\strike0\{linkID=5810>nav\}\tab\strike Methods\strike0\{linkID=5850>nav\}\tab\strike Unit: InstantDBISAM\strike0\{linkID=12910>main\}\{keepn\} \par \pard\sb25\sa85\tx1435\tx2875\tx4315\fs18 Provides access to a database. \par \pard\sb25\sa25\tx1435\tx2875\tx4315\strike\f1 TInstantConnectorClass\strike0\{linkID=12210>main\} = \b class\b0 \b of\b0 \strike TInstantConnector\strike0\{linkID=3770>main\}; \par \strike TInstantConnector\strike0\{linkID=3770>main\} = \b class\b0 (TComponent) @@ -13362,7 +13362,7 @@ {\rtf1\ansi\deff0{\fonttbl{\f0\fswiss Arial;}{\f1\fmodern Courier New;}} {\colortbl ;\red0\green0\blue0;} \viewkind4\uc1\pard\lang1040\b\f0\fs24 TInstantDBXConnector \cf1\b0\fs16 -\par \pard\sb25\tx1435\ul Hierarchy\ulnone\{linkID=5960\}\tab\strike Unit: InstantDBX\strike0\{linkID=12900>main\}\{keepn\} +\par \pard\sb25\tx1435\ul Hierarchy\ulnone\{linkID=5960\}\tab\strike Unit: InstantDBX\strike0\{linkID=12930>main\}\{keepn\} \par \pard\sb25\sa85\tx1435\fs18 Provides access to a database. \par \pard\sb25\sa25\tx1435\strike\f1 TInstantConnectorClass\strike0\{linkID=12210>main\} = \b class\b0 \b of\b0 \strike TInstantConnector\strike0\{linkID=3770>main\}; \par \strike TInstantConnector\strike0\{linkID=3770>main\} = \b class\b0 (TComponent) @@ -13616,7 +13616,7 @@ {\rtf1\ansi\ansicpg1252\deff0{\fonttbl{\f0\fswiss Arial;}{\f1\fmodern Courier New;}} {\colortbl ;\red0\green0\blue0;} \viewkind4\uc1\pard\lang1040\b\f0\fs24 TInstantElement \cf1\b0\fs16 -\par \pard\sb25\tx1400\tx2840\tx4280\tx5700\ul Hierarchy\ulnone\{linkID=6060\}\tab\strike Members\strike0\{linkID=6130>nav\}\tab\strike Properties\strike0\{linkID=6080>nav\}\tab\strike Methods\strike0\{linkID=6110>nav\}\tab\strike Unit: InstantPersistence\strike0\{linkID=13020>main\}\{keepn\} +\par \pard\sb25\tx1400\tx2840\tx4280\tx5700\ul Hierarchy\ulnone\{linkID=6060\}\tab\strike Members\strike0\{linkID=6130>nav\}\tab\strike Properties\strike0\{linkID=6080>nav\}\tab\strike Methods\strike0\{linkID=6110>nav\}\tab\strike Unit: InstantPersistence\strike0\{linkID=13050>main\}\{keepn\} \par \pard\sb25\sa85\tx1435\tx2875\tx4315\fs18 TInstantElement is the ancestor of attribute classes that represent a relationship with a single object. \par \pard\sb25\sa25\tx1435\tx2875\tx4315\f1 TInstantElement = \b class\b0 (\strike TInstantComplex\strike0\{linkID=3190>main\}) \par \pard\sb55\sa25\tx1435\tx2875\tx4315\b\f0 Description @@ -14077,7 +14077,7 @@ {\rtf1\ansi\deff0{\fonttbl{\f0\fswiss Arial;}{\f1\fmodern Courier New;}} {\colortbl ;\red0\green0\blue0;} \viewkind4\uc1\pard\lang1040\b\f0\fs24 TInstantExplorer \cf1\b0\fs16 -\par \pard\sb25\tx1400\tx2840\tx4280\tx5700\ul Hierarchy\ulnone\{linkID=6240\}\tab\strike Members\strike0\{linkID=6300>nav\}\tab\strike Properties\strike0\{linkID=6260>nav\}\tab\strike Methods\strike0\{linkID=6290>nav\}\tab\strike Unit: InstantExplorer\strike0\{linkID=12920>main\}\{keepn\} +\par \pard\sb25\tx1400\tx2840\tx4280\tx5700\ul Hierarchy\ulnone\{linkID=6240\}\tab\strike Members\strike0\{linkID=6300>nav\}\tab\strike Properties\strike0\{linkID=6260>nav\}\tab\strike Methods\strike0\{linkID=6290>nav\}\tab\strike Unit: InstantExplorer\strike0\{linkID=12950>main\}\{keepn\} \par \pard\sb25\sa85\tx1435\tx2875\tx4315\fs18 Allows navigation of objects within a tree. \par \pard\sb25\sa25\tx1435\tx2875\tx4315\f1 TInstantExplorer = \b class\b0 (TCustomControl) \par \pard\sb55\sa25\tx1435\tx2875\tx4315\b\f0 Description @@ -14584,7 +14584,7 @@ {\rtf1\ansi\deff0{\fonttbl{\f0\fswiss Arial;}{\f1\fmodern Courier New;}} {\colortbl ;\red0\green0\blue0;} \viewkind4\uc1\pard\lang1040\b\f0\fs24 TInstantExposer \cf1\b0\fs16 -\par \pard\sb25\tx1400\tx2840\tx4260\ul Hierarchy\ulnone\{linkID=6460\}\tab\strike Members\strike0\{linkID=6540>nav\}\tab\strike Properties\strike0\{linkID=6480>nav\}\tab\strike Unit: InstantPresentation\strike0\{linkID=13070>main\}\{keepn\} +\par \pard\sb25\tx1400\tx2840\tx4260\ul Hierarchy\ulnone\{linkID=6460\}\tab\strike Members\strike0\{linkID=6540>nav\}\tab\strike Properties\strike0\{linkID=6480>nav\}\tab\strike Unit: InstantPresentation\strike0\{linkID=13100>main\}\{keepn\} \par \pard\sb25\sa85\tx1435\tx2875\fs18 Provides dataset-based access to objects. \par \pard\sb25\sa25\tx1435\tx2875\f1 TInstantExposer = \b class\b0 (\strike TInstantCustomExposer\strike0\{linkID=4790>main\}) \par \pard\sb55\sa25\tx1435\tx2875\b\f0 Description @@ -15100,7 +15100,7 @@ {\rtf1\ansi\deff0{\fonttbl{\f0\fswiss Arial;}{\f1\fmodern Courier New;}} {\colortbl ;\red0\green0\blue0;} \viewkind4\uc1\pard\lang1040\b\f0\fs24 TInstantFileStream \cf1\b0\fs16 -\par \pard\sb25\tx1400\tx2840\tx4260\ul Hierarchy\ulnone\{linkID=6670\}\tab\strike Members\strike0\{linkID=6720>nav\}\tab\strike Methods\strike0\{linkID=6710>nav\}\tab\strike Unit: InstantClasses\strike0\{linkID=12790>main\}\{keepn\} +\par \pard\sb25\tx1400\tx2840\tx4260\ul Hierarchy\ulnone\{linkID=6670\}\tab\strike Members\strike0\{linkID=6720>nav\}\tab\strike Methods\strike0\{linkID=6710>nav\}\tab\strike Unit: InstantClasses\strike0\{linkID=12820>main\}\{keepn\} \par \pard\sb25\sa85\tx1435\tx2875\fs18 Provides stream-based access to data stored in a file. \par \pard\sb25\sa25\tx1435\tx2875\f1 TInstantFileStream = \b class\b0 (\strike TInstantStream\strike0\{linkID=10540>main\}) \par \pard\sb55\sa25\tx1435\tx2875\b\f0 Description @@ -15306,7 +15306,7 @@ {\rtf1\ansi\deff0{\fonttbl{\f0\fswiss Arial;}{\f1\fmodern Courier New;}} {\colortbl ;\red0\green0\blue0;} \viewkind4\uc1\pard\lang1040\b\f0\fs24 TInstantFlashFilerConnector \cf1\b0\fs16 -\par \pard\sb25\tx1435\ul Hierarchy\ulnone\{linkID=6750\}\tab\strike Unit: InstantFlashFiler\strike0\{linkID=12960>main\}\{keepn\} +\par \pard\sb25\tx1435\ul Hierarchy\ulnone\{linkID=6750\}\tab\strike Unit: InstantFlashFiler\strike0\{linkID=12990>main\}\{keepn\} \par \pard\sb25\sa85\tx1435\fs18 Provides access to a database. \par \pard\sb25\sa25\tx1435\strike\f1 TInstantConnectorClass\strike0\{linkID=12210>main\} = \b class\b0 \b of\b0 \strike TInstantConnector\strike0\{linkID=3770>main\}; \par \strike TInstantConnector\strike0\{linkID=3770>main\} = \b class\b0 (TComponent) @@ -15552,7 +15552,7 @@ {\rtf1\ansi\deff0{\fonttbl{\f0\fswiss Arial;}{\f1\fmodern Courier New;}} {\colortbl ;\red0\green0\blue0;} \viewkind4\uc1\pard\lang1040\b\f0\fs24 TInstantFloat \cf1\b0\fs16 -\par \pard\sb25\tx1400\tx2840\tx4280\tx5680\ul Hierarchy\ulnone\{linkID=6860\}\tab\strike Members\strike0\{linkID=6930>nav\}\tab\strike Properties\strike0\{linkID=6880>nav\}\tab\ul See Also\ulnone\{linkID=6850\}\tab\strike Unit: InstantPersistence\strike0\{linkID=13020>main\}\{keepn\} +\par \pard\sb25\tx1400\tx2840\tx4280\tx5680\ul Hierarchy\ulnone\{linkID=6860\}\tab\strike Members\strike0\{linkID=6930>nav\}\tab\strike Properties\strike0\{linkID=6880>nav\}\tab\ul See Also\ulnone\{linkID=6850\}\tab\strike Unit: InstantPersistence\strike0\{linkID=13050>main\}\{keepn\} \par \pard\sb25\sa85\tx1435\tx2875\tx4315\fs18 TInstantFloat represents a Double value. \par \pard\sb25\sa25\tx1435\tx2875\tx4315\f1 TInstantFloat = \b class\b0 (\strike TInstantNumeric\strike0\{linkID=7290>main\}) \par \pard\sb55\sa25\tx1435\tx2875\tx4315\b\f0 Description @@ -15844,7 +15844,7 @@ {\rtf1\ansi\deff0{\fonttbl{\f0\fswiss Arial;}{\f1\fmodern Courier New;}} {\colortbl ;\red0\green0\blue0;} \viewkind4\uc1\pard\lang1040\b\f0\fs24 TInstantIBXConnector \cf1\b0\fs16 -\par \pard\sb25\tx1400\tx2840\tx4260\ul Hierarchy\ulnone\{linkID=6970\}\tab\strike Members\strike0\{linkID=7040>nav\}\tab\strike Properties\strike0\{linkID=6990>nav\}\tab\strike Unit: InstantIBX\strike0\{linkID=12980>main\}\{keepn\} +\par \pard\sb25\tx1400\tx2840\tx4260\ul Hierarchy\ulnone\{linkID=6970\}\tab\strike Members\strike0\{linkID=7040>nav\}\tab\strike Properties\strike0\{linkID=6990>nav\}\tab\strike Unit: InstantIBX\strike0\{linkID=13010>main\}\{keepn\} \par \pard\sb25\sa85\tx1435\tx2875\fs18 Provides access to a database. \par \pard\sb25\sa25\tx1435\tx2875\strike\f1 TInstantConnectorClass\strike0\{linkID=12210>main\} = \b class\b0 \b of\b0 \strike TInstantConnector\strike0\{linkID=3770>main\}; \par \strike TInstantConnector\strike0\{linkID=3770>main\} = \b class\b0 (TComponent) @@ -16125,7 +16125,7 @@ {\rtf1\ansi\deff0{\fonttbl{\f0\fswiss Arial;}{\f1\fmodern Courier New;}} {\colortbl ;\red0\green0\blue0;} \viewkind4\uc1\pard\lang1040\b\f0\fs24 TInstantInteger \cf1\b0\fs16 -\par \pard\sb25\tx1400\tx2840\tx4280\tx5700\ul Hierarchy\ulnone\{linkID=7090\}\tab\strike Members\strike0\{linkID=7160>nav\}\tab\strike Properties\strike0\{linkID=7110>nav\}\tab\ul See Also\ulnone\{linkID=7080\}\tab\strike Unit: InstantPersistence\strike0\{linkID=13020>main\}\{keepn\} +\par \pard\sb25\tx1400\tx2840\tx4280\tx5700\ul Hierarchy\ulnone\{linkID=7090\}\tab\strike Members\strike0\{linkID=7160>nav\}\tab\strike Properties\strike0\{linkID=7110>nav\}\tab\ul See Also\ulnone\{linkID=7080\}\tab\strike Unit: InstantPersistence\strike0\{linkID=13050>main\}\{keepn\} \par \pard\sb25\sa85\tx1435\tx2875\tx4315\fs18 TInstantInteger represents a 32-bit Integer value. \par \pard\sb25\sa25\tx1435\tx2875\tx4315\f1 TInstantInteger = \b class\b0 (\strike TInstantNumeric\strike0\{linkID=7290>main\}) \par \pard\sb55\sa25\tx1435\tx2875\tx4315\b\f0 Description @@ -16415,7 +16415,7 @@ {\rtf1\ansi\deff0{\fonttbl{\f0\fswiss Arial;}{\f1\fmodern Courier New;}} {\colortbl ;\red0\green0\blue0;} \viewkind4\uc1\pard\lang1040\b\f0\fs24 TInstantMemo \cf1\b0\fs16 -\par \pard\sb25\tx1435\ul Hierarchy\ulnone\{linkID=7200\}\tab\strike Unit: InstantPersistence\strike0\{linkID=13020>main\}\{keepn\} +\par \pard\sb25\tx1435\ul Hierarchy\ulnone\{linkID=7200\}\tab\strike Unit: InstantPersistence\strike0\{linkID=13050>main\}\{keepn\} \par \pard\sb25\sa85\tx1435\fs18 TInstantMemo represents a memo. \par \pard\sb25\sa25\tx1435\f1 TInstantMemo = \b class\b0 (\strike TInstantBlob\strike0\{linkID=2680>main\}) \par \pard\sb55\sa25\tx1435\b\f0 Description @@ -16668,7 +16668,7 @@ {\rtf1\ansi\ansicpg1252\deff0{\fonttbl{\f0\fswiss Arial;}{\f1\fmodern Courier New;}{\f2\fswiss\fcharset0 Arial;}} {\colortbl ;\red0\green0\blue0;} \viewkind4\uc1\pard\lang1040\b\f0\fs24 TInstantNumeric \cf1\b0\fs16 -\par \pard\sb25\tx1435\ul Hierarchy\ulnone\{linkID=7300\}\tab\strike Unit: InstantPersistence\strike0\{linkID=13020>main\}\{keepn\} +\par \pard\sb25\tx1435\ul Hierarchy\ulnone\{linkID=7300\}\tab\strike Unit: InstantPersistence\strike0\{linkID=13050>main\}\{keepn\} \par \pard\sb25\sa85\tx1435\fs18 TInstantNumeric is the ancestor of attribute classes that represent a numeric value. \par \pard\sb25\sa25\tx1435\f1 TInstantNumeric = \b class\b0 (\strike TInstantSimple\strike0\{linkID=10430>main\}) \par \pard\sb55\sa25\tx1435\b\f0 Description @@ -16914,7 +16914,7 @@ {\rtf1\ansi\deff0{\fonttbl{\f0\fswiss Arial;}{\f1\fmodern Courier New;}} {\colortbl ;\red0\green0\blue0;} \viewkind4\uc1\pard\lang1040\b\f0\fs24 TInstantObject \cf1\b0\fs16 -\par \pard\sb25\tx1400\tx2840\tx4280\tx5720\tx7100\tx8520\tx9940\ul Hierarchy\ulnone\{linkID=7420\}\tab\strike Members\strike0\{linkID=7490>nav\}\tab\strike Properties\strike0\{linkID=7440>nav\}\tab\strike Methods\strike0\{linkID=7470>nav\}\tab\strike Events\strike0\{linkID=7460>nav\}\tab\ul See Also\ulnone\{linkID=7400\}\tab\strike Example 1\strike0\{linkID=7410>example\}\tab\strike Unit: InstantPersistence\strike0\{linkID=13020>main\}\{keepn\} +\par \pard\sb25\tx1400\tx2840\tx4280\tx5720\tx7100\tx8520\tx9940\ul Hierarchy\ulnone\{linkID=7420\}\tab\strike Members\strike0\{linkID=7490>nav\}\tab\strike Properties\strike0\{linkID=7440>nav\}\tab\strike Methods\strike0\{linkID=7470>nav\}\tab\strike Events\strike0\{linkID=7460>nav\}\tab\ul See Also\ulnone\{linkID=7400\}\tab\strike Example 1\strike0\{linkID=7410>example\}\tab\strike Unit: InstantPersistence\strike0\{linkID=13050>main\}\{keepn\} \par \pard\sb25\sa85\tx1435\tx2875\tx4315\tx5755\tx7195\tx8635\fs18 The ancestor for classes with persistence capabilities. \par \pard\sb25\sa25\tx1435\tx2875\tx4315\tx5755\tx7195\tx8635\f1 TInstantObject = \b class\b0 (\strike TInstantStreamable\strike0\{linkID=10830>main\}, IUnknown) \par \pard\sb55\sa25\tx1435\tx2875\tx4315\tx5755\tx7195\tx8635\b\f0 Description @@ -20414,7 +20414,7 @@ \viewkind4\uc1\pard\lang1040\b\f0\fs24 TInstantObject.RefreshAll \cf1\b0\fs16 \par \strike TInstantObject\strike0\{linkID=7390>main\}\{keepn\} \par \pard\sb25\sa85\fs18 Refreshes all instances associated with a connector object. -\par \pard\sb25\sa25\b\f1 class\b0 \b procedure\b0 RefreshAll(AConnector: \strike TInstantConnector\strike0\{linkID=3770>main\}; Progress: \strike TInstantProgressEvent\strike0\{linkID=12510>main\}); +\par \pard\sb25\sa25\b\f1 class\b0 \b procedure\b0 RefreshAll(AConnector: \strike TInstantConnector\strike0\{linkID=3770>main\}; Progress: \strike TInstantProgressEvent\strike0\{linkID=12520>main\}); \par \pard\sb55\sa25\b\f0 Description \par \pard\sb25\sa25\b0 Call RefreshAll to refresh all instances of the class associated with a connector object. The \strike Connector\strike0\{linkID=7530>main\} argument can optionally be used to specify a \strike Connector\strike0\{linkID=7530>main\} object. If the connector is not specified, RefreshAll uses the default connector. Use the progress argument to attach a progress event in order to receive progress information during the refresh process. \par @@ -20745,7 +20745,7 @@ \viewkind4\uc1\pard\lang1040\b\f0\fs24 TInstantObject.VerifyOperation \cf1\b0\fs16 \par \pard\sb25\tx1435\strike TInstantObject\strike0\{linkID=7390>main\}\tab\ul See Also\ulnone\{linkID=9070\}\{keepn\} \par \pard\sb25\sa85\tx1435\fs18 Called automatically to verify that an operation may be carried out. -\par \pard\sb25\sa25\tx1435\b\f1 function\b0 VerifyOperation(OperationType: \strike TInstantOperationType\strike0\{linkID=12490>main\}): \strike TInstantVerificationResult\strike0\{linkID=12570>main\}; \b virtual\b0 ; +\par \pard\sb25\sa25\tx1435\b\f1 function\b0 VerifyOperation(OperationType: \strike TInstantOperationType\strike0\{linkID=12490>main\}): \strike TInstantVerificationResult\strike0\{linkID=12600>main\}; \b virtual\b0 ; \par \pard\sb55\sa25\tx1435\b\f0 Description \par \pard\sb25\sa25\tx1435\b0 VerifyOperation is called automatically to verify that a specific operation may be carried out. Do not call it explicitly in your applications. The VerifyOperation implemented in \strike TInstantObject\strike0\{linkID=7390>main\} does nothing. Override this method when creating a class that needs to verify operations before they are carried out. The method returns vrOk by default. \par @@ -20977,7 +20977,7 @@ {\rtf1\ansi\deff0{\fonttbl{\f0\fswiss Arial;}{\f1\fmodern Courier New;}} {\colortbl ;\red0\green0\blue0;} \viewkind4\uc1\pard\lang1040\b\f0\fs24 TInstantOwnedCollection \cf1\b0\fs16 -\par \pard\sb25\tx1400\tx2840\tx4260\ul Hierarchy\ulnone\{linkID=9180\}\tab\strike Members\strike0\{linkID=9230>nav\}\tab\strike Methods\strike0\{linkID=9220>nav\}\tab\strike Unit: InstantClasses\strike0\{linkID=12790>main\}\{keepn\} +\par \pard\sb25\tx1400\tx2840\tx4260\ul Hierarchy\ulnone\{linkID=9180\}\tab\strike Members\strike0\{linkID=9230>nav\}\tab\strike Methods\strike0\{linkID=9220>nav\}\tab\strike Unit: InstantClasses\strike0\{linkID=12820>main\}\{keepn\} \par \pard\sb25\sa85\tx1435\tx2875\fs18 TInstantOwnedCollection is a collection that has an owner. \par \pard\sb25\sa25\tx1435\tx2875\f1 TInstantOwnedCollection = \b class\b0 (\strike TInstantCollection\strike0\{linkID=2970>main\}) \par \pard\sb55\sa25\tx1435\tx2875\b\f0 Description @@ -21152,7 +21152,7 @@ {\rtf1\ansi\deff0{\fonttbl{\f0\fswiss Arial;}{\f1\fmodern Courier New;}} {\colortbl ;\red0\green0\blue0;} \viewkind4\uc1\pard\lang1040\b\f0\fs24 TInstantPart \cf1\b0\fs16 -\par \pard\sb25\tx1400\tx2840\tx4280\tx5720\tx7100\ul Hierarchy\ulnone\{linkID=9280\}\tab\strike Members\strike0\{linkID=9350>nav\}\tab\strike Methods\strike0\{linkID=9330>nav\}\tab\ul See Also\ulnone\{linkID=9260\}\tab\strike Example 1\strike0\{linkID=9270>example\}\tab\strike Unit: InstantPersistence\strike0\{linkID=13020>main\}\{keepn\} +\par \pard\sb25\tx1400\tx2840\tx4280\tx5720\tx7100\ul Hierarchy\ulnone\{linkID=9280\}\tab\strike Members\strike0\{linkID=9350>nav\}\tab\strike Methods\strike0\{linkID=9330>nav\}\tab\ul See Also\ulnone\{linkID=9260\}\tab\strike Example 1\strike0\{linkID=9270>example\}\tab\strike Unit: InstantPersistence\strike0\{linkID=13050>main\}\{keepn\} \par \pard\sb25\sa85\tx1435\tx2875\tx4315\tx5755\fs18 TInstantPart represents a part relationship to a single object. \par \pard\sb25\sa25\tx1435\tx2875\tx4315\tx5755\f1 TInstantPart = \b class\b0 (\strike TInstantElement\strike0\{linkID=6050>main\}) \par \pard\sb55\sa25\tx1435\tx2875\tx4315\tx5755\b\f0 Description @@ -21523,7 +21523,7 @@ {\rtf1\ansi\deff0{\fonttbl{\f0\fswiss Arial;}{\f1\fmodern Courier New;}} {\colortbl ;\red0\green0\blue0;} \viewkind4\uc1\pard\lang1040\b\f0\fs24 TInstantParts \cf1\b0\fs16 -\par \pard\sb25\tx1400\tx2840\tx4280\tx5720\tx7100\ul Hierarchy\ulnone\{linkID=9420\}\tab\strike Members\strike0\{linkID=9490>nav\}\tab\strike Methods\strike0\{linkID=9470>nav\}\tab\ul See Also\ulnone\{linkID=9400\}\tab\strike Example 1\strike0\{linkID=9410>example\}\tab\strike Unit: InstantPersistence\strike0\{linkID=13020>main\}\{keepn\} +\par \pard\sb25\tx1400\tx2840\tx4280\tx5720\tx7100\ul Hierarchy\ulnone\{linkID=9420\}\tab\strike Members\strike0\{linkID=9490>nav\}\tab\strike Methods\strike0\{linkID=9470>nav\}\tab\ul See Also\ulnone\{linkID=9400\}\tab\strike Example 1\strike0\{linkID=9410>example\}\tab\strike Unit: InstantPersistence\strike0\{linkID=13050>main\}\{keepn\} \par \pard\sb25\sa85\tx1435\tx2875\tx4315\tx5755\fs18 TInstantParts represents a part relationship to multiple objects. \par \pard\sb25\sa25\tx1435\tx2875\tx4315\tx5755\f1 TInstantParts = \b class\b0 (\strike TInstantContainer\strike0\{linkID=4300>main\}) \par \pard\sb55\sa25\tx1435\tx2875\tx4315\tx5755\b\f0 Description @@ -21878,7 +21878,7 @@ {\rtf1\ansi\deff0{\fonttbl{\f0\fswiss Arial;}{\f1\fmodern Courier New;}} {\colortbl ;\red0\green0\blue0;} \viewkind4\uc1\pard\lang1040\b\f0\fs24 TInstantReference \cf1\b0\fs16 -\par \pard\sb25\tx1400\tx2840\tx4280\tx5720\tx7100\tx8520\ul Hierarchy\ulnone\{linkID=9550\}\tab\strike Members\strike0\{linkID=9620>nav\}\tab\strike Properties\strike0\{linkID=9570>nav\}\tab\strike Methods\strike0\{linkID=9600>nav\}\tab\ul See Also\ulnone\{linkID=9530\}\tab\strike Example 1\strike0\{linkID=9540>example\}\tab\strike Unit: InstantPersistence\strike0\{linkID=13020>main\}\{keepn\} +\par \pard\sb25\tx1400\tx2840\tx4280\tx5720\tx7100\tx8520\ul Hierarchy\ulnone\{linkID=9550\}\tab\strike Members\strike0\{linkID=9620>nav\}\tab\strike Properties\strike0\{linkID=9570>nav\}\tab\strike Methods\strike0\{linkID=9600>nav\}\tab\ul See Also\ulnone\{linkID=9530\}\tab\strike Example 1\strike0\{linkID=9540>example\}\tab\strike Unit: InstantPersistence\strike0\{linkID=13050>main\}\{keepn\} \par \pard\sb25\sa85\tx1435\tx2875\tx4315\tx5755\tx7195\fs18 TInstantReference represents a reference relationship to a single object. \par \pard\sb25\sa25\tx1435\tx2875\tx4315\tx5755\tx7195\f1 TInstantReference = \b class\b0 (\strike TInstantElement\strike0\{linkID=6050>main\}) \par \pard\sb55\sa25\tx1435\tx2875\tx4315\tx5755\tx7195\b\f0 Description @@ -22540,7 +22540,7 @@ {\rtf1\ansi\deff0{\fonttbl{\f0\fswiss Arial;}{\f1\fmodern Courier New;}} {\colortbl ;\red0\green0\blue0;} \viewkind4\uc1\pard\lang1040\b\f0\fs24 TInstantReferences \cf1\b0\fs16 -\par \pard\sb25\tx1400\tx2840\tx4280\tx5720\tx7100\tx8520\ul Hierarchy\ulnone\{linkID=9810\}\tab\strike Members\strike0\{linkID=9880>nav\}\tab\strike Properties\strike0\{linkID=9830>nav\}\tab\strike Methods\strike0\{linkID=9860>nav\}\tab\ul See Also\ulnone\{linkID=9790\}\tab\strike Example 1\strike0\{linkID=9800>example\}\tab\strike Unit: InstantPersistence\strike0\{linkID=13020>main\}\{keepn\} +\par \pard\sb25\tx1400\tx2840\tx4280\tx5720\tx7100\tx8520\ul Hierarchy\ulnone\{linkID=9810\}\tab\strike Members\strike0\{linkID=9880>nav\}\tab\strike Properties\strike0\{linkID=9830>nav\}\tab\strike Methods\strike0\{linkID=9860>nav\}\tab\ul See Also\ulnone\{linkID=9790\}\tab\strike Example 1\strike0\{linkID=9800>example\}\tab\strike Unit: InstantPersistence\strike0\{linkID=13050>main\}\{keepn\} \par \pard\sb25\sa85\tx1435\tx2875\tx4315\tx5755\tx7195\fs18 TInstantReferences represents a reference relationship to multiple objects. \par \pard\sb25\sa25\tx1435\tx2875\tx4315\tx5755\tx7195\f1 TInstantReferences = \b class\b0 (\strike TInstantContainer\strike0\{linkID=4300>main\}) \par \pard\sb55\sa25\tx1435\tx2875\tx4315\tx5755\tx7195\b\f0 Description @@ -23011,7 +23011,7 @@ {\rtf1\ansi\deff0{\fonttbl{\f0\fswiss Arial;}{\f1\fmodern Courier New;}} {\colortbl ;\red0\green0\blue0;} \viewkind4\uc1\pard\lang1040\b\f0\fs24 TInstantRelationalConnector \cf1\b0\fs16 -\par \pard\sb25\tx1400\tx2840\tx4280\tx5700\ul Hierarchy\ulnone\{linkID=9970\}\tab\strike Members\strike0\{linkID=10040>nav\}\tab\strike Properties\strike0\{linkID=9990>nav\}\tab\strike Events\strike0\{linkID=10010>nav\}\tab\strike Unit: InstantPersistence\strike0\{linkID=13020>main\}\{keepn\} +\par \pard\sb25\tx1400\tx2840\tx4280\tx5700\ul Hierarchy\ulnone\{linkID=9970\}\tab\strike Members\strike0\{linkID=10040>nav\}\tab\strike Properties\strike0\{linkID=9990>nav\}\tab\strike Events\strike0\{linkID=10010>nav\}\tab\strike Unit: InstantPersistence\strike0\{linkID=13050>main\}\{keepn\} \par \pard\sb25\sa85\tx1435\tx2875\tx4315\fs18 Provides access to a database. \par \pard\sb25\sa25\tx1435\tx2875\tx4315\strike\f1 TInstantConnectorClass\strike0\{linkID=12210>main\} = \b class\b0 \b of\b0 \strike TInstantConnector\strike0\{linkID=3770>main\}; \par \strike TInstantConnector\strike0\{linkID=3770>main\} = \b class\b0 (TComponent) @@ -23369,7 +23369,7 @@ {\rtf1\ansi\deff0{\fonttbl{\f0\fswiss Arial;}{\f1\fmodern Courier New;}} {\colortbl ;\red0\green0\blue0;} \viewkind4\uc1\pard\lang1040\b\f0\fs24 TInstantResourceStream \cf1\b0\fs16 -\par \pard\sb25\tx1400\tx2840\tx4260\ul Hierarchy\ulnone\{linkID=10120\}\tab\strike Members\strike0\{linkID=10170>nav\}\tab\strike Methods\strike0\{linkID=10160>nav\}\tab\strike Unit: InstantClasses\strike0\{linkID=12790>main\}\{keepn\} +\par \pard\sb25\tx1400\tx2840\tx4260\ul Hierarchy\ulnone\{linkID=10120\}\tab\strike Members\strike0\{linkID=10170>nav\}\tab\strike Methods\strike0\{linkID=10160>nav\}\tab\strike Unit: InstantClasses\strike0\{linkID=12820>main\}\{keepn\} \par \pard\sb25\sa85\tx1435\tx2875\fs18 TInstantResourceStream provides access to a compiled resource in the application. \par \pard\sb25\sa25\tx1435\tx2875\f1 TInstantResourceStream = \b class\b0 (\strike TInstantStream\strike0\{linkID=10540>main\}) \par \pard\sb55\sa25\tx1435\tx2875\b\f0 Description @@ -23579,7 +23579,7 @@ {\rtf1\ansi\deff0{\fonttbl{\f0\fswiss Arial;}{\f1\fmodern Courier New;}} {\colortbl ;\red0\green0\blue0;} \viewkind4\uc1\pard\lang1040\b\f0\fs24 TInstantSelector \cf1\b0\fs16 -\par \pard\sb25\tx1400\tx2840\tx4280\tx5700\ul... [truncated message content] |
From: <sr...@us...> - 2006-07-06 06:00:34
|
Revision: 685 Author: srmitch Date: 2006-07-05 23:00:08 -0700 (Wed, 05 Jul 2006) ViewCVS: http://svn.sourceforge.net/instantobjects?rev=685&view=rev Log Message: ----------- - Added a 'Performance Hint' note to the 'External Storage of Attributes" topic. The note relates to indices for external attribute linking tables. - Added a compressed CHM help file option. - Further clean-up of typos and spelling mistakes, etc. Modified Paths: -------------- trunk/Help/IOHelp.cnt trunk/Help/IOHelp.hlp trunk/Help/IOHelp.hsc trunk/Help/IOHelp.rtf Added Paths: ----------- trunk/Help/IOHelp.chm Added: trunk/Help/IOHelp.chm =================================================================== (Binary files differ) Property changes on: trunk/Help/IOHelp.chm ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Modified: trunk/Help/IOHelp.cnt =================================================================== --- trunk/Help/IOHelp.cnt 2006-06-07 15:39:31 UTC (rev 684) +++ trunk/Help/IOHelp.cnt 2006-07-06 06:00:08 UTC (rev 685) @@ -100,7 +100,7 @@ 2 Functions 3 InstantCharSetToStr=327SI7S>MAIN 3 InstantCheckConnection=327SI7X>MAIN -3 InstantCheckConnector=327SI7X>MAIN +3 InstantCheckConnector=327SI8Y>MAIN 3 InstantClassNameToName=327SI8R>MAIN 3 InstantCompareObjects=327SI8U>MAIN 3 InstantCompareText=327SI8X>MAIN Modified: trunk/Help/IOHelp.hlp =================================================================== (Binary files differ) Modified: trunk/Help/IOHelp.hsc =================================================================== --- trunk/Help/IOHelp.hsc 2006-06-07 15:39:31 UTC (rev 684) +++ trunk/Help/IOHelp.hsc 2006-07-06 06:00:08 UTC (rev 685) @@ -181,11 +181,11 @@ \par \pard\sb25\sa25\fs18 This user guide contains \f1 practical\f0 guidelines for building InstantObjects\lang1033\f1 \lang1040\f0 based applications. The intention is to give an overview o\f1 f\f0 the classes, components and tools that make up the InstantObjects framework. Although the guide is very detailed, it has not been the intention to cover all aspects of the framework. If more information is needed, \lang1033\f1 please\lang1040\f0 refer to the Symbol Reference. \par Th\lang1033\f1 is\lang1040\f0 guide \lang1033\f1 contains\lang1040\f0 three parts \lang1033\f1 that\lang1040\f0 constitute almost any InstantObjects based development process. \par \f2\fs10 -\par \pard{\pntext\f3\'B7\tab}{\*\pn\pnlvlblt\pnf3\pnindent0{\pntxtb\'B7}}\keep\fi-200\li295\sb25\sa25\tx280\lang1033\f1\fs18 \lang1040\strike\f0 Creating the Business Model\strike0\{linkID=70>main\} -\par \lang1033\f1{\pntext\f3\'B7\tab} \lang1040\strike\f0 Creating the User Interface\strike0\{linkID=280>main\} -\par \lang1033\f1{\pntext\f3\'B7\tab} \lang1040\strike\f0 Programming with Persistent Objects\strike0\{linkID=340>main\} +\par \pard{\pntext\f3\'B7\tab}{\*\pn\pnlvlblt\pnf3\pnindent0{\pntxtb\'B7}}\keep\fi-200\li295\sb25\sa25\tx280\lang1033\f1\fs18 \cf2\lang1040\strike\f0 Creating the Business Model\cf3\strike0\{linkID=70>main\}\cf1 +\par \lang1033\f1{\pntext\f3\'B7\tab} \cf2\lang1040\strike\f0 Creating the User Interface\cf3\strike0\{linkID=280>main\}\cf1 +\par \lang1033\f1{\pntext\f3\'B7\tab} \cf2\lang1040\strike\f0 Programming with Persistent Objects\cf3\strike0\{linkID=340>main\}\cf1 \par \pard\sb25\sa25\f2\fs10 -\par \pard\keep\li95\sb25\sa25\lang1033\f1\fs18 There is also a section on \lang1040\strike Learning the Primer Demo\cf3\strike0\{linkID=460>main\}\cf1\lang1033 .\lang1040\f0 +\par \pard\keep\li95\sb25\sa25\lang1033\f1\fs18 There is also a section on \cf2\lang1040\strike Learning the Primer Demo\cf3\strike0\{linkID=460>main\}\cf1\lang1033 .\lang1040\f0 \par \pard\sb25\sa25 \par } 60 @@ -202,13 +202,13 @@ FALSE 10 {\rtf1\ansi\ansicpg1252\deff0{\fonttbl{\f0\fswiss Arial;}{\f1\fswiss\fcharset0 Arial;}} -{\colortbl ;\red0\green0\blue0;\red128\green0\blue0;} +{\colortbl ;\red0\green0\blue0;\red0\green128\blue0;\red128\green0\blue0;} \viewkind4\uc1\pard\sb25\lang1040\b\f0\fs24 Us\lang1033\f1 er Guide\lang1040\f0 \cf1\b0\fs16 -\par \strike Using InstantObjects\strike0\fs18\{linkID=50>main\}\cf2\{keepn\}\cf1\fs16 -\par \pard\keep\li95\sb25\sa25\strike\fs18 Creating the Business Model\strike0\{linkID=70>main\} -\par \strike Creating the User Interface\strike0\{linkID=280>main\} -\par \strike Programming with Persistent Objects\strike0\{linkID=340>main\} -\par \strike\f1 Learning the Primer Demo\cf2\strike0\{linkID=460>main\}\cf1\strike\f0 +\par \cf2\strike Using InstantObjects\cf3\strike0\fs18\{linkID=50>main\}\{keepn\}\cf1\fs16 +\par \pard\keep\li95\sb25\sa25\cf2\strike\fs18 Creating the Business Model\cf3\strike0\{linkID=70>main\}\cf1 +\par \cf2\strike Creating the User Interface\cf3\strike0\{linkID=280>main\}\cf1 +\par \cf2\strike Programming with Persistent Objects\cf3\strike0\{linkID=340>main\}\cf1 +\par \cf2\strike\f1 Learning the Primer Demo\cf3\strike0\{linkID=460>main\}\cf1\strike\f0 \par \strike0 \par } 70 @@ -225,36 +225,36 @@ FALSE 33 {\rtf1\ansi\ansicpg1252\deff0{\fonttbl{\f0\fswiss Arial;}{\f1\fswiss\fcharset0 Arial;}{\f2\fnil Arial;}} -{\colortbl ;\red0\green0\blue0;\red128\green0\blue0;\red0\green128\blue0;} +{\colortbl ;\red0\green0\blue0;\red0\green128\blue0;\red128\green0\blue0;} \viewkind4\uc1\pard\lang1040\b\f0\fs24 Creating the Business Model\cf1\b0\fs16 -\par \pard\sb25\tx1435\strike Group Topics\strike0\{linkID=80>nav\}\tab\strike Using InstantObjects\strike0\{linkID=50>main\}\cf0\b\fs24 \cf1\b0\fs16\{keepn\} +\par \pard\sb25\tx1435\cf2\strike Group Topics\cf3\strike0\{linkID=80>nav\}\cf1\tab\cf2\strike Using InstantObjects\cf3\strike0\{linkID=50>main\}\{keepn\}\cf1 \par \pard\sb25\sa25\tx1435\fs18 Object Oriented applications are based on models. This section covers the definition of the InstantObjects business\lang1033\f1 \lang1040\f0 model, which is \lang1033\f1 \lang1040\f0 the initial step in the creation of an InstantObjects based application. The InstantObjects Model Explorer is the central tool in this process. \par \lang1033\f1 T\lang1040\f0 he InstantObjects business\lang1033\f1 \lang1040\f0 model\lang1033\f1 consists of a collection of user designed classes, many of which are related through inheritance or association. Most if not all of the data controlled by these classes is required to be persisted or stored in such a way that the relationships among this data are retained. In addition to the simple class attribute types, which provide persistence for the \lang1040\f0 Object Pascal equivalent simple type\lang1033\f1 s (eg string or integer)\lang1040\f0 \lang1033\f1 , the InstantObjects framework provides several class attribute types to facilitate the persistence of instances of related classes. These attribute types are known as relational or complex attributes. \par \pard\sb25\sa25\f2\fs10 -\par \cf2\fs18\{target=RelationalAttributeTypes\}\cf0\b\fs22 Re\lang1040 lational \lang1033 Attribute T\lang1040 ypes\cf1\b0\f0\fs18 +\par \cf3\fs18\{target=RelationalAttributeTypes\}\cf0\b\fs22 Re\lang1040 lational \lang1033 Attribute T\lang1040 ypes\cf1\b0\f0\fs18 \par The relational types are\lang1033\f1 :\lang1040\f0 Reference, Part, References and Parts.\lang1033\f1 It is important to understand the nature of the relationship that each of these attribute types provides so that the desired behaviour is reflected within the \lang1040\f0 business\lang1033\f1 \lang1040\f0 model\lang1033\f1 . \par \f2\fs10 \par \lang1040\b\f1\fs18 Container attributes \b0 is the collective name for the subset of relational types consisting of Parts and References type attributes.\lang1033\b \par \b0\f2\fs10 \par \lang1040\b\f0\fs18 Reference\b0 \par Reference is the simplest object relation supported by InstantObjects. A reference defines a unidirectional relation from one object to another. The object referred to lives outside the referring object and knows nothing about the relation itself. -\par See \strike TInstantReference\strike0\{linkID=9510>main\} for more information. +\par See \cf2\strike TInstantReference\cf3\strike0\{linkID=9510>main\}\cf1 for more information. \par \f2\fs10 \par \b\f0\fs18 Part\f1 \par \b0\f0 Objects in Part relations are tied together more closely. A Part relation is bi-directional, meaning the object at each end of the relation knows about the object at the other end. The object referred to in a Part relation is considered to be a part of the owning object and as such can only be reached via the owning object. In addition, an object referred to in a part relation is disposed along with its owner. -\par See \strike TInstantPart\strike0\{linkID=9240>main\} for more information. +\par See \cf2\strike TInstantPart\cf3\strike0\{linkID=9240>main\}\cf1 for more information. \par \f2\fs10 \par \b\f0\fs18 References\b0 \par Like its singular counterpart, Reference, the References relation is unidirectional. But instead of just referring to a single object, a References relation can refer to any number of objects and thereby defining a one-to-many relation to objects outside of the referring object. -\par See \strike TInstantReferences\strike0\{linkID=9770>main\} for more information. +\par See \cf2\strike TInstantReferences\cf3\strike0\{linkID=9770>main\}\cf1 for more information. \par \f2\fs10 \par \b\f0\fs18 Parts\f1 \par \b0\f0 Parts is the one-to-many counterpart of the equivalent one-to-one relation type, Part. A Parts relation can refer to any number of objects that are all considered to be part of the referring object. -\par See \strike TInstantParts\strike0\{linkID=9380>main\} for more information. +\par See \cf2\strike TInstantParts\cf3\strike0\{linkID=9380>main\}\cf1 for more information. \par Parts and References are known as container attributes. When defining an attribute of one of these types, a corresponding array property and optional methods to access the container attribute \lang1033\f1 are\lang1040\f0 added to the class. For any of the relational types, the class of the related object(s) must be specified as the Object Class of the attribute. \par \f2\fs10 \par \f1\fs18 Notes: -\par \pard\sb25\sa25\tx200 For \i "External Storage support"\i0 of the Part, Parts and References attribute, refer to \cf3\strike External Storage of Attributes\cf2\strike0\{linkID=220\}\cf1 . +\par \pard\sb25\sa25\tx200 For \i "External Storage support"\i0 of the Part, Parts and References attribute, refer to \cf2\strike External Storage of Attributes\cf3\strike0\{linkID=220\}\cf1 . \par \pard\sb25\sa25\tx1435\f0 \par } 80 @@ -273,13 +273,13 @@ {\rtf1\ansi\ansicpg1252\deff0{\fonttbl{\f0\fswiss Arial;}{\f1\fswiss\fcharset0 Arial;}} {\colortbl ;\red0\green0\blue0;\red0\green128\blue0;\red128\green0\blue0;} \viewkind4\uc1\pard\sb25\lang1040\b\f0\fs24 Creating the Business Model \cf1\b0\fs16 -\par \strike Creating the Business Model\strike0\{LinkID=70>main\}\{keepn\} -\par \pard\keep\li95\sb25\sa25\strike\fs18 The \lang1033\f1 InstantObjects \lang1040\f0 Model Explorer\strike0\{linkID=90>main\} +\par \cf2\strike Creating the Business Model\cf3\strike0\{LinkID=70>main\}\{keepn\}\cf1 +\par \pard\keep\li95\sb25\sa25\cf2\strike\fs18 The \lang1033\f1 InstantObjects \lang1040\f0 Model Explorer\cf3\strike0\{linkID=90>main\} \par \cf2\lang1033\strike\f1 Declaring Model Units\cf3\strike0\{linkID=110>main\}\cf1\lang1040\f0 -\par \strike Defining Classes\strike0\{linkID=120>main\} -\par \strike Adding Business Rules\strike0\{linkID=240>main\} -\par \strike Building/Evolving the Business Model\strike0\{linkID=270>main\} -\par +\par \cf2\strike Defining Classes\cf3\strike0\{linkID=120>main\}\cf1 +\par \cf2\strike Adding Business Rules\cf3\strike0\{linkID=240>main\} +\par \cf2\strike Building/Evolving the Business Model\cf3\strike0\{linkID=270>main\} +\par \cf1 \par } 90 327SA3S @@ -295,29 +295,29 @@ FALSE 27 {\rtf1\ansi\ansicpg1252\deff0{\fonttbl{\f0\fswiss Arial;}{\f1\fswiss\fcharset0 Arial;}{\f2\fnil Arial;}{\f3\fnil\fcharset0 Arial;}{\f4\fnil\fcharset2 Symbol;}} -{\colortbl ;\red0\green0\blue0;\red128\green0\blue0;\red0\green128\blue0;} +{\colortbl ;\red0\green0\blue0;\red0\green128\blue0;\red128\green0\blue0;} \viewkind4\uc1\pard\lang1040\b\f0\fs24 The InstantObjects Model Explorer \cf1\b0\fs16 -\par \strike Creating the Business Model\strike0\{LinkID=70>main\}\{keepn\} +\par \cf2\strike Creating the Business Model\cf3\strike0\{LinkID=70>main\}\{keepn\}\cf1 \par \pard\sb25\sa25\fs18 The first step in building an application with InstantObjects is to define the classes and relations that make up the business model. The business model\lang1033\f1 for the application\lang1040\f0 is created\lang1033\f1 and managed\lang1040\f0 in the \lang1033\f1 InstantObjects \lang1040\f0 Model Explorer, which can be opened via the View\lang1033\f1 \lang1040\f0 menu in the Delphi IDE.\lang1033\f1 T\lang1040\f0 he \lang1033\f1 InstantObjects \lang1040\f0 Model Explorer\lang1033\f1 window is non-modal and can be docked, if desired, in the Delphi IDE. This allows the \lang1040\f0 Explorer\lang1033\f1 window to remain open while working in other areas of the IDE. \par \lang1040\f2\fs10 -\par \cf0\b\fs22 Th\lang1033\f3 e \lang1040\f2 InstantObjects Model Explorer \lang1033\f3 (\lang1040\f2 with \f3 "\f2 Inheritance\f3 "\f2 view of classes\lang1033\f3 )\cf2\lang1040\b0\f0\fs18 +\par \cf0\b\fs22 Th\lang1033\f3 e \lang1040\f2 InstantObjects Model Explorer \lang1033\f3 (\lang1040\f2 with \f3 "\f2 Inheritance\f3 "\f2 view of classes\lang1033\f3 )\cf3\lang1040\b0\f0\fs18 \par \{bmc ModelExplorerInheritance.gif\} \par \cf1\f2\fs10 \par \lang1033\f1\fs18 T\lang1040\f0 he \lang1033\f1 InstantObjects \lang1040\f0 Model Explorer\lang1033\f1 window has two main areas of interest. \par \f2\fs10 \par \pard{\pntext\f4\'B7\tab}{\*\pn\pnlvlblt\pnf4\pnindent0{\pntxtb\'B7}}\fi-200\li200\sb25\sa25\tx200\f1\fs18 The toolbar that holds the action speed buttons. \f3 The speed buttons display mouse-over, pop-up hints. These speed buttons provide access to the configuration aspects for model code units, persistence broker connections and type of class view presented in the tree view pane;\cf0\lang1040\b\f2\fs22 \par \pard\sb25\sa25\cf1\b0\fs10 -\par \pard{\pntext\f4\'B7\tab}{\*\pn\pnlvlblt\pnf4\pnindent0{\pntxtb\'B7}}\fi-200\li200\sb25\sa25\tx200\lang1033\f1\fs18 The tree view pane that displays the model's classes.\cf0\b\f3\fs22 \cf1\b0\fs18 The tree view pane has a mouse right button click, \cf3\strike pop-up menu\cf2\strike0\{linkID=100>main\}\cf1 that is used to access the procedures for managing the model.\cf0\lang1040\b\f2\fs22 +\par \pard{\pntext\f4\'B7\tab}{\*\pn\pnlvlblt\pnf4\pnindent0{\pntxtb\'B7}}\fi-200\li200\sb25\sa25\tx200\lang1033\f1\fs18 The tree view pane that displays the model's classes.\cf0\b\f3\fs22 \cf1\b0\fs18 The tree view pane has a mouse right button click, \cf2\strike pop-up menu\cf3\strike0\{linkID=100>main\}\cf1 that is used to access the procedures for managing the model.\cf0\lang1040\b\f2\fs22 \par \pard\sb25\sa25\cf1\b0\fs10 \par \cf0\lang1033\b\fs22 Class Views -\par \cf1\b0\fs18 A\f3 useful feature of the \f1 InstantObjects \lang1040\f0 Model Explorer\lang1033\f1 when creating or managing the class model is the ability to toggle \f3 the tree view pane \f1 between inheritance and relational type views. This is done using the 'View [Type]' speed button on the toolbar. The button has a context sensitive glyph, \cf2\{bmc ModelExplorerViewRelationsButton.gif\} \cf0 or\cf1 \cf2\{bmc ModelExplorerViewInheritanceButton.gif\}\cf0 ,\cf1 and pop-up hint. +\par \cf1\b0\fs18 A\f3 useful feature of the \f1 InstantObjects \lang1040\f0 Model Explorer\lang1033\f1 when creating or managing the class model is the ability to toggle \f3 the tree view pane \f1 between inheritance and relational type views. This is done using the 'View [Type]' speed button on the toolbar. The button has a context sensitive glyph, \cf3\{bmc ModelExplorerViewRelationsButton.gif\} \cf0 or\cf1 \cf3\{bmc ModelExplorerViewInheritanceButton.gif\}\cf0 ,\cf1 and pop-up hint. \par \f2\fs10 \par \pard{\pntext\f4\'B7\tab}{\*\pn\pnlvlblt\pnf4\pnindent0{\pntxtb\'B7}}\fi-200\li200\sb25\sa25\tx200\f3\fs18 Inheritance View - The tree view is based on the class inheritance structure; \par \pard\sb25\sa25\f2\fs10 \par \pard{\pntext\f4\'B7\tab}{\*\pn\pnlvlblt\pnf4\pnindent0{\pntxtb\'B7}}\fi-200\li200\sb25\sa25\tx200\f3\fs18 Relations View - The tree view is based on the relationships between the classes. \par \pard\sb25\sa25\f2\fs10 \par \f1\fs18 The Relations view for the above example Inheritance view is shown below.\cf0\lang1040\b\f2\fs22 -\par The InstantObjects Model Explorer \lang1033\f3 (\lang1040\f2 with \f3 "Relations"\f2 view of classes\lang1033\f3 )\cf2\lang1040\b0\f0\fs18 +\par The InstantObjects Model Explorer \lang1033\f3 (\lang1040\f2 with \f3 "Relations"\f2 view of classes\lang1033\f3 )\cf3\lang1040\b0\f0\fs18 \par \{bmc ModelExplorerRelations.gif\}\cf1 \par \par } @@ -356,14 +356,14 @@ FALSE 11 {\rtf1\ansi\ansicpg1252\deff0\deflang3081{\fonttbl{\f0\fnil Arial;}{\f1\fswiss Arial;}{\f2\fswiss\fcharset0 Arial;}{\f3\fnil\fcharset0 Arial;}} -{\colortbl ;\red0\green0\blue0;\red128\green0\blue0;\red0\green128\blue0;} +{\colortbl ;\red0\green128\blue0;\red128\green0\blue0;\red0\green0\blue0;} \viewkind4\uc1\pard\b\f0\fs24 Declaring Model Units -\par \cf1\lang1040\b0\strike\f1\fs16 Creating the Business Model\strike0\{LinkID=70>main\}\{keepn\} +\par \cf1\lang1040\b0\strike\f1\fs16 Creating the Business Model\cf2\strike0\{LinkID=70>main\}\{keepn\}\cf3 \par \pard\sb25\sa25\lang1033\f2\fs18 It is good practice to keep an application's business classes encapsulated and separated from other classes such as the user interface classes. The convention when using InstantObjects is to create separate code units within the application's IDE project solely for the purpose of containing the \lang1040\f1 business \lang1033\f2 classes that constitute an InstantObjects model. \lang1040\f1 Th\lang1033\f2 is\lang1040\f1 model can be placed in one or more \lang1033\f2 code \lang1040\f1 units in the project. These units are referred to as model units. \par \f0\fs10 -\par \lang1033\f2\fs18 The InstantObjects Model Explorer needs to know which of the application project's units are intended to be model units. This is done using\lang1040\f1 the \cf2\{bmc ModelExplorerSelectUnitsButton.gif\}\cf1 Select Units button on the toolbar of the InstantObjects Model Explorer. \lang1033\f2 T\lang1040\f1 he Select Units button\lang1033\f2 \lang1040\f1 will open a dialog showing all the units of the current project. The left side of the dialog shows the model units and the right side shows the other units included in the project. Use the buttons between the two lists to move one or more units from one side to the other. \lang1033\f2 Select the OK or Cancel button to close the dialog and save or cancel, respectively, any changes. \lang1040\f1 When \lang1033\f2 the \lang1040\f1 model unit(s)\lang1033\f2 has been declared \lang1040\f1 the business model\lang1033\f2 can be created or maintained using the \f3 tree view pane's right button click, \cf3\strike pop-up menu\cf2\strike0\{linkID=100>main\}\cf1 \lang1040\f1 . +\par \lang1033\f2\fs18 The InstantObjects Model Explorer needs to know which of the application project's units are intended to be model units. This is done using\lang1040\f1 the \cf2\{bmc ModelExplorerSelectUnitsButton.gif\}\cf3 Select Units button on the toolbar of the InstantObjects Model Explorer. \lang1033\f2 T\lang1040\f1 he Select Units button\lang1033\f2 \lang1040\f1 will open a dialog showing all the units of the current project. The left side of the dialog shows the model units and the right side shows the other units included in the project. Use the buttons between the two lists to move one or more units from one side to the other. \lang1033\f2 Select the OK or Cancel button to close the dialog and save or cancel, respectively, any changes. \lang1040\f1 When \lang1033\f2 the \lang1040\f1 model unit(s)\lang1033\f2 has been declared \lang1040\f1 the business model\lang1033\f2 can be created or maintained using the \f3 tree view pane's right button click, \cf1\strike pop-up menu\cf2\strike0\{linkID=100>main\}\cf3 \lang1040\f1 . \par \f0\fs10 -\par \cf2\f1\fs18\{bmc ModelUnitSelector.gif\}\cf1 +\par \cf2\f1\fs18\{bmc ModelUnitSelector.gif\}\cf3 \par \pard\lang3081\f0 \par } 120 @@ -382,7 +382,7 @@ {\rtf1\ansi\ansicpg1252\deff0{\fonttbl{\f0\fswiss Arial;}{\f1\fswiss\fcharset0 Arial;}{\f2\fnil Arial;}{\f3\fnil\fcharset2 Symbol;}} {\colortbl ;\red0\green0\blue0;\red0\green128\blue0;\red128\green0\blue0;} \viewkind4\uc1\pard\lang1040\b\f0\fs24 Defining Classes \cf1\b0\fs16 -\par \strike Creating the Business Model\strike0\{LinkID=70>main\}\{keepn\} +\par \cf2\strike Creating the Business Model\cf3\strike0\{LinkID=70>main\}\{keepn\}\cf1 \par \pard\sb25\sa25\fs18 Classes can be added\lang1033\f1 , deleted\lang1040\f0 and edited\lang1033\f1 as follows (note that keyboard short cuts are also available): \par \lang1040\f0\fs10 \par \pard{\pntext\f3\'B7\tab}{\*\pn\pnlvlblt\pnf3\pnindent0{\pntxtb\'B7}}\fi-200\li200\sb25\sa25\tx200\fs18 Add a new class to the model by right-clicking in the empty area of the \lang1033\f1 tree view pane in InstantObjects \lang1040\f0 Model Explorer\lang1033\f1 . This will launch the \cf2\strike pop-up menu\cf3\strike0\{linkID=100>main\}\cf1\lang1040\f0 . Select New Class from the menu\lang1033\f1 to\lang1040\f0 bring up the Class Editor with an empty class definition\lang1033\f1 ;\lang1040\f0 @@ -439,7 +439,7 @@ \par \cf2\f2\fs18\{bmc ClassEditor\lang1033\f3 Class\lang1040\f2 .gif\} \par \cf1\f1\fs10 \par \lang1033\f3\fs18 The \b class name \b0 can be any valid Object Pascal class identifier.\lang1040\f2 -\par The default \b base class \b0 of any business class is \strike TInstantObject\strike0\{linkID=7380>main\}, the class from which persistence capabilities are inherited. When classes are present in your model, you can choose any of these as the immediate base class instead. +\par The default \b base class \b0 of any business class is \cf3\strike TInstantObject\cf2\strike0\{linkID=7380>main\}\cf1 , the class from which persistence capabilities are inherited. When classes are present in your model, you can choose any of these as the immediate base class instead. \par The \lang1033\f3 model \lang1040\b\f2 unit \b0 in which \lang1033\f3 a\lang1040\f2 new class \lang1033\f3 will\lang1040\f2 be placed can be selected from the list of available model units.\lang1033\f3 This entry is read only when editing an existing class.\lang1040\f2 \par The class\lang1033\f3 \b persistence\lang1040\f2 \b0 can be defined as either \lang1033\i\f3 stored\lang1040\f2 \i0 or \i embedded\i0 . Instances of \lang1033\i\f3 stored\lang1040\f2 \i0 classes can be \lang1033\f3 independently \lang1040\f2 stored in and retrieved from \lang1033\f3 the database\lang1040\f2 . \lang1033\f3 An i\lang1040\f2 nstance of \lang1033\f3 an \lang1040\i\f2 embedded \i0 class can exist in the database only as \lang1033\f3 an attribute\lang1040\f2 of \lang1033\f3 its owner, which is \lang1040\f2 another \i embedded \i0 or \lang1033\i\f3 stored\lang1040\f2 \lang1033\i0\f3 class instance. In practice this means that the attribute values of an \lang1040\i\f2 embedded \i0 class \lang1033\f3 are stored in the database in a BLOB type field.\lang1040\f2 \lang1033\f3 Therefore, i\lang1040\f2 f you want instances of a class to be \lang1033\f3 independently \lang1040\f2 retrievable or available by query, define the class\lang1033\f3 persistence as\lang1040\f2 \lang1033\i\f3 stored\lang1040\i0\f2 . \par \f3 S\i tored \i0 persistence is also required for those classes used by Reference attributes or other \cf3\strike attributes with \i external \i0 storage\cf2\strike0\{linkID=220>main\}\cf1 . A class, used only for objects that are owned by other objects, should be defined with \i embedded \i0 persistence if the owning objects use \i embedded \i0 storage for the attribute. If, however, the owning objects use \i external \i0 storage kind for the attribute, define the owned class with \i stored \i0 persistence.\f2 @@ -513,7 +513,7 @@ {\rtf1\ansi\ansicpg1252\deff0{\fonttbl{\f0\fswiss Arial;}{\f1\fswiss\fcharset0 Arial;}{\f2\fnil\fcharset0 Arial;}{\f3\fnil Arial;}{\f4\fnil\fcharset2 Symbol;}} {\colortbl ;\red0\green0\blue0;\red0\green128\blue0;\red128\green0\blue0;} \viewkind4\uc1\pard\lang1040\b\f0\fs24 Attribute Editor \cf1\b0\fs16 -\par \strike Creating the Business Model\strike0\{LinkID=70>main\}\tab\lang1033\f1\tab\lang1040\ul\f0 See Also\ulnone\{linkID=180\}\{keepn\} +\par \cf2\strike Creating the Business Model\cf3\strike0\{LinkID=70>main\}\cf1\tab\lang1033\f1\tab\cf2\lang1040\ul\f0 See Also\cf3\ulnone\{linkID=180\}\{keepn\}\cf1 \par \lang1033\f2\fs18 The Attribute Editor is used to manage an attribute's properties. It contains the tabbed pages as follows: \par \f3\fs10 \par \pard{\pntext\f4\'B7\tab}{\*\pn\pnlvlblt\pnf4\pnindent0{\pntxtb\'B7}}\fi-200\li200\tx200\cf2\strike\f2\fs18 Definition Page\cf3\strike0\{linkID=190>main\}\cf1 - This is where the attribute's properties are defined;\lang3081\f3 @@ -537,10 +537,10 @@ FALSE 7 {\rtf1\ansi\ansicpg1252\deff0\deflang3081{\fonttbl{\f0\fswiss Arial;}{\f1\fnil Arial;}} -{\colortbl ;\red0\green0\blue0;} +{\colortbl ;\red0\green0\blue0;\red0\green128\blue0;\red128\green0\blue0;} \viewkind4\uc1\pard\sb55\sa25\lang1040\b\f0\fs24 See Also \par \pard\sb25\sa25\cf1\b0\f1\fs10 -\par \pard\li60\sb25\sa25\strike\fs18 External Storage of Attributes\strike0\{linkID=220>main\} +\par \pard\li60\sb25\sa25\cf2\strike\fs18 External Storage of Attributes\cf3\strike0\{linkID=220>main\}\cf1 \par \pard\lang3081 \par } 190 @@ -633,11 +633,11 @@ FALSE -32 +33 {\rtf1\ansi\ansicpg1252\deff0\deflang1040{\fonttbl{\f0\fswiss\fcharset0 Arial;}{\f1\fswiss Arial;}{\f2\fnil Arial;}{\f3\fnil\fcharset2 Symbol;}} {\colortbl ;\red0\green0\blue0;\red0\green128\blue0;\red128\green0\blue0;} \viewkind4\uc1\pard\b\f0\fs24 External Storage of Attributes\cf1\b0\f1\fs16 -\par \pard\sb25\sa25\cf2\lang1033\strike\f0 Example\cf3\strike0\{linkID=230>example\}\cf1\tab\tab\lang1040\strike\f1 Creating the Business Model\strike0\{LinkID=70>main\}\{keepn\} \f0\fs18 +\par \pard\sb25\sa25\cf2\lang1033\strike\f0 Example\cf3\strike0\{linkID=230>example\}\cf1\tab\tab\cf2\lang1040\strike\f1 Creating the Business Model\cf3\strike0\{LinkID=70>main\}\{keepn\} \cf1\f0\fs18 \par \lang1033 The E\lang1040\f1 xternal \lang1033\f0 S\lang1040\f1 torage\lang1033\f0 option\lang1040\f1 \lang1033\f0 for \cf2\strike relational attributes\cf3\strike0\{linkTarget=RelationalAttributeTypes>main\}\cf1\lang1040\f1 \lang1033\f0 was introduced to resolve several shortcomings and issues in earlier versions of InstantObjects. These include the following: \par \f2\fs10 \par \pard{\pntext\f3\'B7\tab}{\*\pn\pnlvlblt\pnf3\pnindent0{\pntxtb\'B7}}\fi-200\li200\sb25\sa25\tx200\f0\fs18 the \lang1040\f1 inability to fully query the database from a SQL-enabled (non-IO) interface; @@ -663,6 +663,7 @@ \par \pard\sb25\sa25\lang1033\f0\fs18 IMPORTANT\lang1040\f1 NOTE\lang1033\f0 S: \par \pard{\pntext\f3\'B7\tab}{\*\pn\pnlvlblt\pnf3\pnindent0{\pntxtb\'B7}}\fi-200\li200\sb25\sa25\tx200\b\i External Storage and Class Persistence\b0\i0 - A cl\lang1040\f1 ass must \lang1033\f0 have its Persistence property set to\lang1040\f1 \i stored\i0 \lang1033\f0 if it is referred\lang1040\f1 \lang1033\f0 to by attributes that use\lang1040\f1 \i external \i0 storage. \lang1033\f0 A c\lang1040\f1 lass\lang1033\f0 defined with\lang1040\f1 \i embedded\i0 \lang1033\f0 Persistence may only be used by\lang1040\f1 \i embedded\i0 (the \lang1033\f0 InstantObjects \lang1040\f1 historical arrangement) part and parts attributes\lang1033\f0 ;\lang1040\f1 \par \cf3\lang1033\i\f0{\pntext\f3\'B7\tab}\{target=ExternalStorageandPersistenceBrokers\}\cf1\b External Storage and Persistence Brokers\b0\i0 - Currently (V2), the InstantObjects library requires the use of persistence brokers derived from TInstantSQLBroker to support \i external \i0 storage of attributes\lang1040\f1 .\lang1033\f0 Brokers that are derived from TInstantNavigationalBroker, including the BDE and some ADO brokers, DO NOT SUPPORT \i external \i0 storage of attributes and MUST NOT BE USED if the class model makes use of this feature.\lang1040\f1 +\par \lang1033\b\i\f0{\pntext\f3\'B7\tab}Performance Hint\b0\i0 - Currently (V2.0), the InstantObjects (IO) library does not create parent class indices for the linking tables in the database. A significant improvement in performance, therefore, can often be achieved by manually adding these indices (fields 'ParentClass' and 'ParentId', non-unique) to the linking tables for your external \cf2\strike container attributes\cf3\strike0\{linkTarget=RelationalAttributeTypes>main\}\cf1 . Remember that these manually added indices will be removed by each IO database build and probably after an evolve, so they will need to monitored and re-added as necessary. The need to add these indices manually will be eliminated after the introduction of Referential Integrity (RI) options to IO. This is expected to happen in the near future and will enhance both the integrity of data in and performance of the database for brokers that can implement RI. \lang1040\f1 \par \pard\sb25\sa25\f2\fs10 \par \pard\cf0\fs20 \par } @@ -715,10 +716,10 @@ FALSE 7 {\rtf1\ansi\ansicpg1252\deff0{\fonttbl{\f0\fswiss Arial;}{\f1\fswiss\fcharset0 Arial;}} -{\colortbl ;\red0\green0\blue0;} +{\colortbl ;\red0\green0\blue0;\red0\green128\blue0;\red128\green0\blue0;} \viewkind4\uc1\pard\lang1040\b\f0\fs24 Adding Business Rules \cf1\b0\fs16 -\par \strike Example 1\strike0\{linkID=250>example\}\tab\strike Example 2\strike0\{linkID=260>example\}\f1\tab\strike\f0 Creating the Business Model\strike0\{LinkID=70>main\}\{keepn\} -\par \pard\sb25\sa25\fs18 Validation rules and other business related behavior is added to your business classes by adding the required code plus additional methods and properties to the class. Validation rules and side effects of changing the value of an attribute are often added to the setter method of the corresponding property. Complete validation of business objects before they are stored to the database can be added by overriding the BeforeStore method of the class. New objects can be initialized by overriding the Initialize method. For a complete list of the virtual methods of \strike TInstantObject\strike0\{linkID=7380>main\}, please refer to the InstantObjects Reference Guide. +\par \cf2\strike Example 1\cf3\strike0\{linkID=250>example\}\cf1\tab\cf2\strike Example 2\cf3\strike0\{linkID=260>example\}\cf1\f1\tab\cf2\strike\f0 Creating the Business Model\cf3\strike0\{LinkID=70>main\}\{keepn\}\cf1 +\par \pard\sb25\sa25\fs18 Validation rules and other business related behavior is added to your business classes by adding the required code plus additional methods and properties to the class. Validation rules and side effects of changing the value of an attribute are often added to the setter method of the corresponding property. Complete validation of business objects before they are stored to the database can be added by overriding the BeforeStore method of the class. New objects can be initialized by overriding the Initialize method. For a complete list of the virtual methods of \cf2\strike TInstantObject\cf3\strike0\{linkID=7380>main\}\cf1 , please refer to the InstantObjects Reference Guide. \par \par } 250 @@ -735,9 +736,9 @@ FALSE 33 {\rtf1\ansi\ansicpg1252\deff0\deflang1040{\fonttbl{\f0\fnil Arial;}{\f1\fswiss\fcharset0 Arial;}{\f2\fswiss Arial;}{\f3\fnil\fcharset0 Arial;}{\f4\fnil\fcharset0 Courier New;}} -{\colortbl ;\red0\green0\blue0;\red0\green128\blue0;\red128\green0\blue0;} -\viewkind4\uc1\pard\b\f0\fs26 Example 1\b0\fs20 -\par \cf1\strike\f1\fs16 Adding Business Rules\strike0\f2\{LinkID=240>main\}\{keepn\} \cf0\f0\fs20 +{\colortbl ;\red0\green128\blue0;\red128\green0\blue0;\red0\green0\blue0;} +\viewkind4\uc1\pard\b\f0\fs24 Example 1\b0\fs20 +\par \cf1\strike\f1\fs16 Adding Business Rules\cf2\strike0\f2\{LinkID=240>main\}\{keepn\}\cf3 \cf0\f0\fs20 \par \f3 In InstantObjects you usually apply single-attribute business rules in the attribute's property setter method: \par \par \b\f4 procedure\b0 TAddress.SetPostalCode(\b const \b0 Value: \b string\b0 ); @@ -753,7 +754,7 @@ \par GetDefaultCityByPostalCode(Value); \par \b end\b0 ; \par \f0 -\par \f3 If you need to apply business rules that involve more than one attribute, instead, you often use the BeforeStore virtual method(see \cf2\strike Example 2\cf3\strike0\{linkID=260\}\cf0 ). +\par \f3 If you need to apply business rules that involve more than one attribute, instead, you often use the BeforeStore virtual method(see \cf1\strike Example 2\cf2\strike0\{linkID=260\}\cf0 ). \par \par When you code side effects, be aware that the property setters might be called more often than expected, for example when reading an object from an XML file or when you use the data-aware presentation layer. Here is an example: \par @@ -764,7 +765,7 @@ \par MaxShipDate := 0; \par \b end\b0 ; \par \f3 -\par The intent of this code is to reset MaxShipDate whenever MinShipDate changes, so that a user, in a hypothetical data-entry scenario, will have to re-enter a value for MaxShipDate. But things might not work always as expected. For example, SetMinShipDate might be called after SetMaxShipDate when streaming in an object from a XML file. The lesson here is: use the property setters and the BeforeStore method only to appy real business rules (like "MaxShipDate must be equal to or greater than MinShipDate"), and code data-entry rules (like "whenever a value for MinShipDate is entered, MaxShipDate should be reset") at the data-entry level (that is, not in the model classes). +\par The intent of this code is to reset MaxShipDate whenever MinShipDate changes, so that a user, in a hypothetical data-entry scenario, will have to re-enter a value for MaxShipDate. But things might not work always as expected. For example, SetMinShipDate might be called after SetMaxShipDate when streaming in an object from a XML file. The lesson here is: use the property setters and the BeforeStore method only to apply real business rules (like "MaxShipDate must be equal to or greater than MinShipDate"), and code data-entry rules (like "whenever a value for MinShipDate is entered, MaxShipDate should be reset") at the data-entry level (that is, not in the model classes). \par \par } 260 @@ -781,9 +782,9 @@ FALSE 30 {\rtf1\ansi\ansicpg1252\deff0\deflang1040{\fonttbl{\f0\fnil Arial;}{\f1\fswiss\fcharset0 Arial;}{\f2\fswiss Arial;}{\f3\fnil\fcharset0 Arial;}{\f4\fnil\fcharset0 Courier New;}} -{\colortbl ;\red0\green0\blue0;} -\viewkind4\uc1\pard\b\f0\fs26 Example 2\b0\fs20 -\par \cf1\strike\f1\fs16 Adding Business Rules\strike0\f2\{LinkID=240>main\}\{keepn\} +{\colortbl ;\red0\green128\blue0;\red128\green0\blue0;\red0\green0\blue0;} +\viewkind4\uc1\pard\b\f0\fs24 Example 2\b0\fs20 +\par \cf1\strike\f1\fs16 Adding Business Rules\cf2\strike0\f2\{LinkID=240>main\}\{keepn\}\cf3 \par \cf0\f3\fs20 Business rules that involve more than one attribute are usually applied in BeforeStore, which gets called whenever the Store method is called to write an object (back) to the storage. Example: \par \par \b\f4 procedure \b0 TShipment.BeforeStore; @@ -826,10 +827,10 @@ {\rtf1\ansi\ansicpg1252\deff0{\fonttbl{\f0\fswiss Arial;}{\f1\fswiss\fcharset0 Arial;}{\f2\fnil Arial;}{\f3\fnil\fcharset0 Arial;}} {\colortbl ;\red0\green0\blue0;\red0\green128\blue0;\red128\green0\blue0;} \viewkind4\uc1\pard\cf1\lang1040\b\f0\fs24 Building/Evolving the Business Model \b0\fs16 -\par \cf2\strike Creating the Business Model\cf3\strike0\{linkID=70>main\}\cf1\{keepn\} +\par \cf2\strike Creating the Business Model\cf3\strike0\{linkID=70>main\}\{keepn\}\cf1 \par \pard\sb25\sa25\fs18 The final step in the modeling phase is to make the model physical in terms of storage for the objects. The required tables and indices have to be created from the business model. InstantObjects allows \lang1033\f1 the\lang1040\f0 use\lang1033\f1 of\lang1040\f0 various types of databases as storage for \lang1033\f1 the business class \lang1040\f0 objects\lang1033\f1 by\lang1040 using different brokers. \par \f2\fs10 -\par \f0\fs18 The Connection Manager \lang1033\f1 manages the\lang1040\f0 \f1 definition, \f0 creat\lang1033\f1 ion\lang1040\f0 \f1 and evolution of \lang1033 the\lang1040\f0 database. \lang1033\f1 It\lang1040\f0 \lang1033\f1 can be launched using the \cf3\{bmc ModelExplorerBuildDatabaseButton.gif\}\cf1 Build Database speed button\lang1040\f0 on the toolbar of the\lang1033\f1 \cf2\strike InstantObjects\lang1040\f0 Model Explorer\cf3\strike0\{linkID=90>main\}\f1 +\par \f0\fs18 The Connection Manager \lang1033\f1 manages the\lang1040\f0 \f1 definition, \f0 creat\lang1033\f1 ion\lang1040\f0 \f1 and evolution of \lang1033 the\lang1040\f0 database. \lang1033\f1 It\lang1040\f0 \lang1033\f1 can be launched using the \cf3\{bmc ModelExplorerBuildDatabaseButton.gif\} \cf1 Build Database speed button\lang1040\f0 on the toolbar of the\lang1033\f1 \cf2\strike InstantObjects\lang1040\f0 Model Explorer\cf3\strike0\{linkID=90>main\}\f1 \par \cf1\f2\fs10 \par \cf3\f1\fs18\{bmc ConnectionManager.gif\} \par \cf1\f2\fs10 @@ -868,9 +869,9 @@ FALSE 7 {\rtf1\ansi\deff0{\fonttbl{\f0\fswiss Arial;}} -{\colortbl ;\red0\green0\blue0;} +{\colortbl ;\red0\green0\blue0;\red0\green128\blue0;\red128\green0\blue0;} \viewkind4\uc1\pard\lang1040\b\f0\fs24 Creating the User Interface\cf1\b0\fs16 -\par \pard\sb25\tx1435\strike Group Topics\strike0\{linkID=290>nav\}\tab\strike Using InstantObjects\strike0\{linkID=50>main\}\cf0\b\fs24 \cf1\b0\fs16\{keepn\} +\par \pard\sb25\tx1435\cf2\strike Group Topics\cf3\strike0\{linkID=290>nav\}\cf1\tab\cf2\strike Using InstantObjects\cf3\strike0\{linkID=50>main\}\{keepn\}\cf1 \par \pard\sb25\sa25\tx1435\fs18 The next phase in the development process is to create a user interface through which the business objects may interact with the user. This section explains the components that are involved in the creation of the user interface. \par \par } @@ -887,14 +888,14 @@ FALSE 11 -{\rtf1\ansi\ansicpg1252\deff0{\fonttbl{\f0\fswiss Arial;}{\f1\fswiss\fcharset0 Arial;}} -{\colortbl ;\red0\green0\blue0;} +{\rtf1\ansi\ansicpg1252\deff0{\fonttbl{\f0\fswiss Arial;}{\f1\fswiss\fcharset0 Arial;}{\f2\fnil\fcharset0 Arial;}} +{\colortbl ;\red0\green0\blue0;\red0\green128\blue0;\red128\green0\blue0;} \viewkind4\uc1\pard\sb25\lang1040\b\f0\fs24 Creating the User Interface \cf1\b0\fs16 -\par \strike Creating the User Interface\strike0\{link\lang1033\f1 ID\lang1040\f0 =\lang1033\f1 280\lang1040\f0 >main\}\{keepn\} -\par \pard\keep\li95\sb25\sa25\strike\fs18 Persistence by RAD\strike0\{linkID=300>main\} -\par \strike The Connector\strike0\{linkID=310>main\} -\par \strike The Exposer\strike0\{linkID=320>main\} -\par \strike The Selector\strike0\{linkID=330>main\} +\par \cf2\strike Creating the User Interface\cf3\strike0\{link\lang1033\f1 ID\lang1040\f0 =\lang1033\f1 280\lang1040\f0 >main\}\{keepn\}\cf1 +\par \pard\keep\li95\sb25\sa25\cf2\strike\fs18 Persistence by RAD\cf3\strike0\{linkID=300>main\}\cf1 +\par \cf2\strike The Connector\cf3\strike0\{linkID=\f2 310\f0 >main\}\cf1 +\par \cf2\strike The Exposer\cf3\strike0\{linkID=\f2 320\f0 >main\}\cf1 +\par \cf2\strike The Selector\cf3\strike0\{linkID=330>main\}\cf1 \par \par \par } @@ -914,7 +915,7 @@ {\rtf1\ansi\ansicpg1252\deff0{\fonttbl{\f0\fswiss Arial;}{\f1\fswiss\fcharset0 Arial;}} {\colortbl ;\red0\green0\blue0;\red0\green128\blue0;\red128\green0\blue0;} \viewkind4\uc1\pard\lang1040\b\f0\fs24 Persistence by RAD \cf1\b0\fs16 -\par \cf2\strike Creating the User Interface\cf3\strike0\{linkID=280>main\}\cf1\{keepn\} +\par \cf2\strike Creating the User Interface\cf3\strike0\{linkID=280>main\}\{keepn\}\cf1 \par \pard\sb25\sa25\fs18 When InstantObjects has been installed in your Delphi environment, a set of components is available on the InstantObjects tab of the Delphi component palette. \par \cf3\{bmc InstantObjectsPalette.gif\}\cf1 \par Applications can be built with InstantObjects using the same RAD approach used when building traditional database applications in Delphi. InstantObjects allows you to use standard VCL data-aware controls with your persistent business objects. The InstantObjects components are used to connect to the database and to make business objects available in the user interface of the application\f1 .\f0 @@ -936,13 +937,13 @@ {\rtf1\ansi\ansicpg1252\deff0{\fonttbl{\f0\fswiss Arial;}{\f1\fswiss\fcharset0 Arial;}{\f2\fnil Arial;}} {\colortbl ;\red0\green0\blue0;\red0\green128\blue0;\red128\green0\blue0;} \viewkind4\uc1\pard\lang1040\b\f0\fs24 The Connector \cf1\b0\fs16 -\par \cf2\strike Creating the User Interface\cf3\strike0\{linkID=280>main\}\cf1\{keepn\} +\par \cf2\strike Creating the User Interface\cf3\strike0\{linkID=280>main\}\{keepn\}\cf1 \par \pard\sb25\sa25\fs18 In order for your application to use the database \lang1033\f1 for\lang1040\f0 object storage, you must use a connector component. The connector acts as a gateway between your application and the database\f1 (by means of an internal component called the broker) and \f0 manag\lang1033\f1 es\lang1040\f0 all the objects that are stored to and retrieved from the database. A connector component for each type of data access layer that \lang1033\f1 has been installed from\lang1040\f0 InstantObjects is available on the component palette. A connector is attached to a database by assigning a connection component to its Connection \f1 (or equivalent) \f0 property. Each connector component supports its own connection type\f1 . For example:\f0 \par \f2\fs10 \par \pard\sb25\sa25\tx1980\tx4800\b\f0\fs18 Access type\tab Connector type\tab\f1 Type of \f0 Connection\b0 -\par ADO\tab\cf2\strike TInstantADOConnector\cf1\strike0\{linkID=1900>main\}\tab TADOConnection -\par BDE\tab\cf2\strike TInstantBDEConnector\cf1\strike0\{linkID=2560>main\}\tab TDatabase -\par IBX\tab\cf2\strike TInstantIBXConnector\cf1\strike0\{linkID=6950>main\}\tab TIBDatabase +\par ADO\tab\cf2\strike TInstantADOConnector\cf3\strike0\{linkID=1900>main\}\cf1\tab TADOConnection +\par BDE\tab\cf2\strike TInstantBDEConnector\cf3\strike0\{linkID=2560>main\}\cf1\tab TDatabase +\par IBX\tab\cf2\strike TInstantIBXConnector\cf3\strike0\{linkID=6950>main\}\cf1\tab TIBDatabase \par \f1 D\f0 BX\tab\cf0 TInstant\f1 D\f0 BXConnector\cf1\tab TSQLConnection \par \f1 XML\tab\cf0\f0 TInstantX\f1 ML\f0 Connector\cf1\tab TXMLFilesAccessor \par \pard\f2\fs10 @@ -969,14 +970,14 @@ {\rtf1\ansi\ansicpg1252\deff0{\fonttbl{\f0\fswiss Arial;}{\f1\fswiss\fcharset0 Arial;}} {\colortbl ;\red0\green0\blue0;\red0\green128\blue0;\red128\green0\blue0;} \viewkind4\uc1\pard\cf1\lang1040\b\f0\fs24 The Exposer \b0\fs16 -\par \cf2\strike Creating the User Interface\cf3\strike0\{linkID=280>main\}\cf1\{keepn\} -\par \pard\sb25\sa25\strike\fs18 TInstantExposer\strike0\{linkID=6440>main\} is a dataset component that maps objects to the user interface of your application. +\par \cf2\strike Creating the User Interface\cf3\strike0\{linkID=280>main\}\{keepn\}\cf1 +\par \pard\sb25\sa25\cf2\strike\fs18 TInstantExposer\cf3\strike0\{linkID=6440>main\}\cf1 is a dataset component that maps objects to the user interface of your application. \par Attributes defined in the business model are accessed through properties. Properties that are published can be accessed by data-aware controls via this component. In addition, the content of container attributes can be accessed too. The exposer component maps the published properties of objects to fields in a dataset. The objects being exposed are represented as rows in the dataset. -\par To expose an object, it must be assigned to the \strike Subject\strike0\{linkID=5150>main\} property of a \strike TInstantExposer\strike0\{linkID=6440>main\}. To expose multiple objects contained within another object, assign the main object to the Subject property and enter content mode by changing the \strike Mode\strike0\{linkID=5020>main\} property from amObject to amContent. If the exposed class has no default container, specify the desired container in the property \strike ContainerName\strike0\{linkID=6550>main\}. Specify the class of the exposed\lang1033\f1 , contained\lang1040\f0 object(s) in the property \strike ObjectClassName\strike0\{linkID=6620>main\}. -\par By default, an exposer will make all simple properties of each exposed object as well as any related object available through fields in the dataset. Every field will have a \f1 F\f0 ield\f1 N\f0 ame matching the property it represents. For related objects, the fieldname will be the complete path to the property using regular dot notation. The property \strike FieldOptions\strike0\{linkID=4930>main\} and the event \strike OnIncludeField\strike0\{linkID=5560>main\} allow you to limit or extend the number fields to include. +\par To expose an object, it must be assigned to the \cf2\strike Subject\cf3\strike0\{linkID=5150>main\}\cf1 property of a \cf2\strike TInstantExposer\cf3\strike0\{linkID=6440>main\}\cf1 . To expose multiple objects contained within another object, assign the main object to the Subject property and enter content mode by changing the \cf2\strike Mode\cf3\strike0\{linkID=5020>main\}\cf1 property from amObject to amContent. If the exposed class has no default container, specify the desired container in the property \cf2\strike ContainerName\cf3\strike0\{linkID=6550>main\}\cf1 . Specify the class of the exposed\lang1033\f1 , contained\lang1040\f0 object(s) in the property \cf2\strike ObjectClassName\cf3\strike0\{linkID=6620>main\}\cf1 . +\par By default, an exposer will make all simple properties of each exposed object as well as any related object available through fields in the dataset. Every field will have a \f1 F\f0 ield\f1 N\f0 ame matching the property it represents. For related objects, the fieldname will be the complete path to the property using regular dot notation. The property \cf2\strike FieldOptions\cf3\strike0\{linkID=4930>main\}\cf1 and the event \cf2\strike OnIncludeField\cf3\strike0\{linkID=5560>main\}\cf1 allow you to limit or extend the number fields to include. \par Container attributes of exposed objects are automatically recognized by the exposer and \lang1033\f1 are \lang1040\f0 represented as nested datasets within the exposer. -\par Exposers can be linked together in master/detail relation\f1 ships\f0 . To link one exposer to another, assign the master exposer to the DataSet property of a TDataSource and assign the TDataSource to the \strike MasterSource\strike0\{linkID=6570>main\} property of the detail exposer. The Subject of the detail exposer will be set to the current object of the master exposer\lang1033\f1 and updated\lang1040\f0 whenever this changes. If you want the detail exposer to expose an object that is related to the current object of the master exposer instead, simply specify the desired property path in \strike MasterProperty\strike0\{linkID=6560>main\}. -\par \strike TInstantExposer\strike0\{linkID=6440>main\} is not limited to exposing \strike TInstantObject\strike0\{linkID=7380>main\} descendants. Any object with published propertied can be exposed. The content of standard VCL containers like TList, TObjectList and TCollection can be exposed in content mode. +\par Exposers can be linked together in master/detail relation\f1 ships\f0 . To link one exposer to another, assign the master exposer to the DataSet property of a TDataSource and assign the TDataSource to the \cf2\strike MasterSource\cf3\strike0\{linkID=6570>main\}\cf1 property of the detail exposer. The Subject of the detail exposer will be set to the current object of the master exposer\lang1033\f1 and updated\lang1040\f0 whenever this changes. If you want the detail exposer to expose an object that is related to the current object of the master exposer instead, simply specify the desired property path in \cf2\strike MasterProperty\cf3\strike0\{linkID=6560>main\}\cf1 . +\par \cf2\strike TInstantExposer\cf3\strike0\{linkID=6440>main\}\cf1 is not limited to exposing \cf2\strike TInstantObject\cf3\strike0\{linkID=7380>main\}\cf1 descendants. Any object with published propertied can be exposed. The content of standard VCL containers like TList, TObjectList and TCollection can be exposed in content mode. \par \par } 330 @@ -995,8 +996,8 @@ {\rtf1\ansi\ansicpg1252\deff0{\fonttbl{\f0\fswiss Arial;}{\f1\fswiss\fcharset0 Arial;}{\f2\fmodern Courier New;}} {\colortbl ;\red0\green0\blue0;\red0\green128\blue0;\red128\green0\blue0;} \viewkind4\uc1\pard\lang1040\b\f0\fs24 The Selector \cf1\b0\fs16 -\par \cf2\strike Creating the User Interface\cf3\strike0\{linkID=280>main\}\cf1\{keepn\} -\par \pard\sb25\sa25\fs18 The \strike TInstantSelector\strike0\{linkID=10190>main\} is a dataset component \lang1033\f1 that \lang1040\f0 allows you to select objects from the database and optionally expose them in the user interface. +\par \cf2\strike Creating the User Interface\cf3\strike0\{linkID=280>main\}\{keepn\}\cf1 +\par \pard\sb25\sa25\fs18 The \cf2\strike TInstantSelector\cf3\strike0\{linkID=10190>main\}\cf1 is a dataset component \lang1033\f1 that \lang1040\f0 allows you to select objects from the database and optionally expose them in the user interface. \par To select objects from the database, a command must be specified \lang1033\f1 in\lang1040\f0 the Command property. The syntax of this command\f1 (called an IQL command, from Instant Query Language) \f0 is somewhat similar to an SQL SELECT-statement\f1 , \f0 but instead of tables and columns, you specify classes and attributes: \par \pard\keep\f2 \par SELECT [DISTINCT] *|<Attribute> @@ -1046,10 +1047,10 @@ FALSE 7 {\rtf1\ansi\ansicpg1252\deff0{\fonttbl{\f0\fswiss Arial;}{\f1\fswiss\fcharset0 Arial;}} -{\colortbl ;\red0\green0\blue0;} +{\colortbl ;\red0\green0\blue0;\red0\green128\blue0;\red128\green0\blue0;} \viewkind4\uc1\pard\lang1040\b\f0\fs24 Programming with Persistent Objects\cf1\b0\fs16 -\par \pard\sb25\tx1435\strike Group Topics\strike0\{linkID=350>nav\}\tab\strike Using InstantObjects\strike0\{linkID=50>main\}\f1 \cf0\b\f0\fs24 \cf1\b0\fs16\{keepn\} -\par \pard\sb25\sa25\tx1435\fs18 The driving force in InstantObjects based applications \lang1033\f1 is\lang1040\f0 the persistent classes \lang1033\f1 that\lang1040\f0 contain the business logic. These business classes all descend from the fundamental \strike TInstantObject\strike0\{linkID=7380>main\} class. This section covers aspects of working directly with the business classes of \lang1033\f1 an\lang1040\f0 application. +\par \pard\sb25\tx1435\cf2\strike Group Topics\cf3\strike0\{linkID=350>nav\}\cf1\tab\cf2\strike Using InstantObjects\cf3\strike0\{linkID=50>main\}\{keepn\}\cf1 +\par \pard\sb25\sa25\tx1435\fs18 The driving force in InstantObjects based applications \lang1033\f1 is\lang1040\f0 the persistent classes \lang1033\f1 that\lang1040\f0 contain the business logic. These business classes all descend from the fundamental \cf2\strike TInstantObject\cf3\strike0\{linkID=7380>main\}\cf1 class. This section covers aspects of working directly with the business classes of \lang1033\f1 an\lang1040\f0 application. \par \par } 350 @@ -1068,11 +1069,11 @@ {\rtf1\ansi\ansicpg1252\deff0{\fonttbl{\f0\fswiss Arial;}{\f1\fswiss\fcharset0 Arial;}} {\colortbl ;\red0\green0\blue0;\red0\green128\blue0;\red128\green0\blue0;} \viewkind4\uc1\pard\sb25\lang1040\b\f0\fs24 Programming with Persistent Objects \cf1\b0\fs16 -\par \cf2\strike Programming with Persistent Objects\cf3\strike0\{linkID=340>main\}\cf1\{keepn\} -\par \pard\keep\li95\sb25\sa25\strike\fs18 Creating New Objects\strike0\{linkID=360>main\} -\par \strike Retrieving Existing Objects\strike0\{linkID=380>main\} -\par \strike Associating Objects\strike0\{linkID=420>main\} -\par \strike\f1 Using t\f0 he \f1 InstantQuery\strike0\f0\{linkID=440>main\} +\par \cf2\strike Programming with Persistent Objects\cf3\strike0\{linkID=340>main\}\{keepn\}\cf1 +\par \pard\keep\li95\sb25\sa25\cf2\strike\fs18 Creating New Objects\cf3\strike0\{linkID=360>main\}\cf1 +\par \cf2\strike Retrieving Existing Objects\cf3\strike0\{linkID=380>main\}\cf1 +\par \cf2\strike Associating Objects\cf3\strike0\{linkID=420>main\}\cf1 +\par \cf2\strike\f1 Using t\f0 he \f1 InstantQuery\cf3\strike0\f0\{linkID=440>main\}\cf1 \par \par } 360 @@ -1089,9 +1090,9 @@ FALSE 10 {\rtf1\ansi\ansicpg1252\deff0{\fonttbl{\f0\fswiss Arial;}{\f1\fswiss\fcharset0 Arial;}} -{\colortbl ;\red0\green0\blue0;} +{\colortbl ;\red0\green0\blue0;\red0\green128\blue0;\red128\green0\blue0;} \viewkind4\uc1\pard\cf1\lang1040\b\f0\fs24 Creating New Objects\b0\fs16 -\par \pard\sb25\tx1435\strike Example 1\strike0\{linkID=370>example\}\tab\strike Programming with Persistent Objects\strike0\{linkID=340>main\}\{keepn\} +\par \pard\sb25\tx1435\cf2\strike Example 1\cf3\strike0\{linkID=370>example\}\cf1\tab\cf2\strike Programming with Persistent Objects\cf3\strike0\{linkID=340>main\}\{keepn\}\cf1 \par \pard\sb25\sa25\tx1435\fs18 Business objects are created just like any other object. The Create constructor of the class creates a new instance of the class. \par The constructor can be called with an optional Connector parameter. This connector specifies the database in which to make the object persistent. If no connector is specified, the default connector will be used. \par To make an object persistent, call its Store method. Only instances of classes declared \lang1033\f1 with\lang1040\f0 \lang1033\f1 a \lang1040\f0 persisten\lang1033\f1 ce property of \i stored\lang1040\f0 \i0 in the business model can be \lang1033\f1 S\lang1040\f0 tored. @@ -1114,7 +1115,7 @@ {\rtf1\ansi\ansicpg1252\deff0{\fonttbl{\f0\fswiss Arial;}{\f1\fmodern Courier New;}} {\colortbl ;\red0\green0\blue0;\red0\green128\blue0;\red128\green0\blue0;} \viewkind4\uc1\pard\lang1040\b\f0\fs24 Example 1 \cf1\b0\fs16 -\par \cf2\strike Creating New Objects\cf3\strike0\{linkID=360>main\}\cf1\{keepn\} +\par \cf2\strike Creating New Objects\cf3\strike0\{linkID=360>main\}\{keepn\}\cf1 \par \pard\keep\f1\fs18 \par \b var\b0 \par Person: TPerson @@ -1144,13 +1145,13 @@ FALSE 10 {\rtf1\ansi\ansicpg1252\deff0{\fonttbl{\f0\fswiss Arial;}{\f1\fswiss\fcharset0 Arial;}{\f2\fnil Arial;}{\f3\fnil\fcharset2 Symbol;}} -{\colortbl ;\red0\green0\blue0;} +{\colortbl ;\red0\green0\blue0;\red0\green128\blue0;\red128\green0\blue0;} \viewkind4\uc1\pard\lang1040\b\f0\fs24 Retrieving Existing Objects\cf1\b0\fs16 -\par \pard\sb25\tx1435\tx2875\strike Example 1\strike0\{linkID=390>example\}\tab\strike Example 2\strike0\{linkID=400>example\}\tab\strike Example \lang1033\f1 3\lang1040\strike0\f0\{linkID=410>example\}\lang1033\f1\tab\tab\lang1040\strike\f0 Programming with Persistent Objects\strike0\{linkID=340>main\}\{keepn\} +\par \pard\sb25\tx1435\tx2875\cf2\strike Example 1\cf3\strike0\{linkID=390>example\}\cf1\tab\cf2\strike Example 2\cf3\strike0\{linkID=400>example\}\cf1\tab\cf2\strike Example \lang1033\f1 3\cf3\lang1040\strike0\f0\{linkID=410>example\}\cf1\lang1033\f1\tab\tab\cf2\lang1040\strike\f0 Programming with Persistent Objects\cf3\strike0\{linkID=340>main\}\{keepn\}\cf1 \par \pard\sb25\sa25\tx1435\tx2875\fs18 Objects that have been stored to the database can be retrieved into memory \lang1033\f1 by using any of the following techniques: -\par \pard{\pntext\f3\'B7\tab}{\*\pn\pnlvlblt\pnf3\pnindent0{\pntxtb\'B7}}\fi-200\li200\sb25\sa25\tx200\tx2875 If the Id of the object is known \lang1040\f0 the Retrieve constructor\lang1033\f1 can be used\lang1040\f0 . An optional connector through which the object shall be retrieved can be specified. If no connector is specified, the default connector is used. If the object already exists in memory, the existing object is returned. If the object is not found, the constructor returns nil.\lang1033\f1 See \strike example 1\lang1040\strike0\f0\fs16\{linkID=390>example\}\lang1033\f1\fs18 .\lang1040\f0 +\par \pard{\pntext\f3\'B7\tab}{\*\pn\pnlvlblt\pnf3\pnindent0{\pntxtb\'B7}}\fi-200\li200\sb25\sa25\tx200\tx2875 If the Id of the object is known \lang1040\f0 the Retrieve constructor\lang1033\f1 can be used\lang1040\f0 . An optional connector through which the object shall be retrieved can be specified. If no connector is specified, the default connector is used. If the object already exists in memory, the existing object is returned. If the object is not found, the constructor returns nil.\lang1033\f1 See \cf2\strike example 1\cf3\lang1040\strike0\f0\fs16\{linkID=390>example\}\cf1\lang1033\f1\fs18 .\lang1040\f0 \par \pard\sb25\sa25\f2\fs10 -\par \pard{\pntext\f3\'B7\tab}{\*\pn\pnlvlblt\pnf3\pnindent0{\pntxtb\'B7}}\fi-200\li200\sb25\sa25\tx200\tx2875\f0\fs18 If the Id of the object is not known or multiple objects meeting a certain criteria \lang1033\f1 need to\lang1040\f0 be retrieved, a \lang1033\strike\f1 S\lang1040\f0 elector\strike0\fs16\{linkID=330>main\}\fs18 \lang1033\f1 or an \lang1040\strike InstantQuery\strike0\f0\fs16\{linkID=440>main\}\lang1033\f1 \lang1040\f0\fs18 can be used\lang1033\f1 . See \strike example 2\lang1040\strike0\f0\fs16\{linkID=400>example\}\lang1033\f1\fs18 and \strike example 3\lang1040\strike0\f0\fs16\{linkID=410>example\}\lang1033\f1\fs18 .\lang1040\f0 +\par \pard{\pntext\f3\'B7\tab}{\*\pn\pnlvlblt\pnf3\pnindent0{\pntxtb\'B7}}\fi-200\li200\sb25\sa25\tx200\tx2875\f0\fs18 If the Id of the object is not known or multiple objects meeting a certain criteria \lang1033\f1 need to\lang1040\f0 be retrieved, a \cf2\lang1033\strike\f1 S\lang1040\f0 elector\cf3\strike0\fs16\{linkID=330>main\}\cf1\fs18 \lang1033\f1 or an \cf2\lang1040\strike InstantQuery\cf3\strike0\f0\fs16\{linkID=440>main\}\cf1\lang1033\f1 \lang1040\f0\fs18 can be used\lang1033\f1 . See \cf2\strike example 2\cf3\lang1040\strike0\f0\fs16\{linkID=400>example\}\cf1\lang1033\f1\fs18 and \cf2\strike example 3\cf3\lang1040\strike0\f0\fs16\{linkID=410>example\}\cf1\lang1033\f1\fs18 .\lang1040\f0 \par \pard\sb25\sa25\tx200\tx2875\f2\fs10 \par } 390 @@ -1169,7 +1170,7 @@ {\rtf1\ansi\ansicpg1252\deff0{\fonttbl{\f0\fswiss Arial;}{\f1\fmodern Courier New;}} {\colortbl ;\red0\green0\blue0;\red0\green128\blue0;\red128\green0\blue0;} \viewkind4\uc1\pard\lang1040\b\f0\fs24 Example 1 \cf1\b0\fs16 -\par \cf2\strike Retrieving Existing Objects\cf3\strike0\{linkID=380>main\}\cf1\{keepn\} +\par \cf2\strike Retrieving Existing Objects\cf3\strike0\{linkID=380>main\}\{keepn\}\cf1 \par \pard\keep\f1\fs18 \par \b var\b0 \par Person: TPerson; @@ -1199,7 +1200,7 @@ {\rtf1\ansi\ansicpg1252\deff0{\fonttbl{\f0\fswiss Arial;}{\f1\fmodern Courier New;}} {\colortbl ;\red0\green0\blue0;\red0\green128\blue0;\red128\green0\blue0;} \viewkind4\uc1\pard\lang1040\b\f0\fs24 Example 2 \cf1\b0\fs16 -\par \cf2\strike Retrieving Existing Objects\cf3\strike0\{linkID=380>main\}\cf1\{keepn\} +\par \cf2\strike Retrieving Existing Objects\cf3\strike0\{linkID=380>main\}\{keepn\}\cf1 \par \pard\keep\f1\fs18 \par \b var\b0 \par I: Integer; @@ -1238,7 +1239,7 @@ {\rtf1\ansi\ansicpg1252\deff0\deflang3081{\fonttbl{\f0\fswiss Arial;}{\f1\fswiss\fcharset0 Arial;}{\f2\fmodern Courier New;}{\f3\fnil\fcharset0 Courier New;}{\f4\fmodern\fcharset0 Courier New;}{\f5\fnil Arial;}} {\colortbl ;\red0\green0\blue0;\red0\green128\blue0;\red128\green0\blue0;} \viewkind4\uc1\pard\lang1040\b\f0\fs24 Example \lang1033\f1 3\lang1040\f0 \cf1\b0\fs16 -\par \cf2\strike Retrieving Existing Objects\cf3\strike0\{linkID=380>main\}\cf1\{keepn\} +\par \cf2\strike Retrieving Existing Objects\cf3\strike0\{linkID=380>main\}\{keepn\}\cf1 \par \pard\keep\f2\fs18 \par \b var\b0 \par I: Integer; @@ -1274,9 +1275,9 @@ FALSE 9 {\rtf1\ansi\ansicpg1252\deff0{\fonttbl{\f0\fswiss Arial;}} -{\colortbl ;\red0\green0\blue0;} +{\colortbl ;\red0\green0\blue0;\red0\green128\blue0;\red128\green0\blue0;} \viewkind4\uc1\pard\lang1040\b\f0\fs24 Associating Obj... [truncated message content] |
From: <sr...@us...> - 2006-08-19 04:34:33
|
Revision: 706 Author: srmitch Date: 2006-08-18 21:34:04 -0700 (Fri, 18 Aug 2006) ViewCVS: http://svn.sourceforge.net/instantobjects?rev=706&view=rev Log Message: ----------- - More updates to IO Help source and binaries: 1. Some fixes to contents; 2. Added more info to eoSyncEdit option in TInstantExposerOptions type; 3. Added a note about BeforeStore for embedded objects in 'Adding Business Rules'. Modified Paths: -------------- trunk/Help/IOHelp.chm trunk/Help/IOHelp.cnt trunk/Help/IOHelp.hlp trunk/Help/IOHelp.hsc trunk/Help/IOHelp.rtf Modified: trunk/Help/IOHelp.chm =================================================================== (Binary files differ) Modified: trunk/Help/IOHelp.cnt =================================================================== --- trunk/Help/IOHelp.cnt 2006-08-18 06:20:38 UTC (rev 705) +++ trunk/Help/IOHelp.cnt 2006-08-19 04:34:04 UTC (rev 706) @@ -4,7 +4,6 @@ :BASE IOHelp.hlp :TITLE InstantObjects Help 1 Welcome=Scribble10 -1 License Agreement=327SA3X 1 License Agreement=Scribble30 1 Installing InstantObjects=Scribble40 1 InstantObjects User Guide @@ -24,11 +23,10 @@ 3 Persistence by RAD=Scribble300 3 The Connector=Scribble310 3 The Exposer=Scribble320 -3 The Exposer=Scribble320 3 The Selector=Scribble330 2 Programming with Persistent Objects 3 Programming with Persistent Objects=Scribble340 -3 Creating New Objects=Scribble340 +3 Creating New Objects=Scribble360 3 Retrieving Existing Objects=Scribble380 3 Associating Objects=Scribble420 3 Using an InstantQuery=Scribble440 Modified: trunk/Help/IOHelp.hlp =================================================================== (Binary files differ) Modified: trunk/Help/IOHelp.hsc =================================================================== --- trunk/Help/IOHelp.hsc 2006-08-18 06:20:38 UTC (rev 705) +++ trunk/Help/IOHelp.hsc 2006-08-19 04:34:04 UTC (rev 706) @@ -713,13 +713,14 @@ FALSE -7 -{\rtf1\ansi\ansicpg1252\deff0{\fonttbl{\f0\fswiss Arial;}{\f1\fswiss\fcharset0 Arial;}} +8 +{\rtf1\ansi\ansicpg1252\deff0{\fonttbl{\f0\fswiss Arial;}{\f1\fswiss\fcharset0 Arial;}{\f2\fnil\fcharset0 Arial;}} {\colortbl ;\red0\green0\blue0;\red0\green128\blue0;\red128\green0\blue0;} \viewkind4\uc1\pard\lang1040\b\f0\fs24 Adding Business Rules \cf1\b0\fs16 \par \cf2\strike Example 1\cf3\strike0\{linkID=250>example\}\cf1\tab\cf2\strike Example 2\cf3\strike0\{linkID=260>example\}\cf1\f1\tab\cf2\strike\f0 Creating the Business Model\cf3\strike0\{LinkID=70>main\}\{keepn\}\cf1 \par \pard\sb25\sa25\fs18 Validation rules and other business related behavior is added to your business classes by adding the required code plus additional methods and properties to the class. Validation rules and side effects of changing the value of an attribute are often added to the setter method of the corresponding property. Complete validation of business objects before they are stored to the database can be added by overriding the BeforeStore method of the class. New objects can be initialized by overriding the Initialize method. For a complete list of the virtual methods of \cf2\strike TInstantObject\cf3\strike0\{linkID=7390>main\}\cf1 , please refer to the InstantObjects Reference Guide. \par +\par \pard\cf0\lang3081\f2 Note: BeforeStore is currently NOT called for \i embedded\i0 objects. Validation of \i embedded \i0 objects, however, can be done by using its owner's BeforeStore event.\cf1\lang1040 \par } 250 Scribble250 @@ -28541,9 +28542,9 @@ FALSE -18 -{\rtf1\ansi\ansicpg1252\deff0{\fonttbl{\f0\fswiss Arial;}{\f1\fmodern Courier New;}{\f2\fnil Arial;}{\f3\fswiss\fcharset0 Arial;}} -{\colortbl ;\red0\green128\blue0;\red128\green0\blue0;} +20 +{\rtf1\ansi\ansicpg1252\deff0{\fonttbl{\f0\fswiss Arial;}{\f1\fmodern Courier New;}{\f2\fnil Arial;}{\f3\fswiss\fcharset0 Arial;}{\f4\fnil\fcharset0 Arial;}} +{\colortbl ;\red0\green128\blue0;\red128\green0\blue0;\red0\green0\blue0;} \viewkind4\uc1\pard\lang3081\b\f0\fs24 TInstantExposerOptions\b0\fs16 \par \pard\sb25\tx1435\cf1\ul See Also\cf2\ulnone\{linkID=12350\}\tab\cf1\strike Unit: InstantPresentation\cf2\strike0\{linkID=13100>main\}\{keepn\}\cf0 \par \pard\sb25\sa85\tx1435\fs18 Specifies options for an exposer. @@ -28556,9 +28557,11 @@ \par eoAutoApply\tab Changes \f0 made to the exposer's \cf1\strike Subject\cf2\strike0\{linkID=5150>main\}\cf0 or objects contained in the \cf1\strike Subject\cf2\strike0\{linkID=5150>main\}\cf0 should be applied automatically. For \cf1\strike TInstantObject\cf2\strike0\{linkID=7390>main\}\cf0 descendants this means that the persistent storage is updated for each changed object. Deleted objects will be disposed from the persistent storage and new objects will be added. \par eoAutoRemember\tab Automatically applies \cf1\strike Remember\cf2\strike0\{linkID=5430>main\}\cf0 and \cf1\strike Revert\cf2\strike0\{linkID=5480>main\}\cf0 functionality to the \f3 exposer's \cf1\strike\f0 Subject\cf2\strike0\{linkID=5150>main\}\cf0 . \par eoNotDisposeReferences\tab Do not \cf1\strike Dispose\cf2\strike0\{linkID=8570>main\}\cf0 referenced objects of References attributes when deleting the \cf1\strike CurrentObject\cf2\strike0\{linkID=4920>main\}\cf0 of the exposer. This option is only effective when the exposer is in amContent \cf1\strike Mode\cf2\strike0\{linkID=5020>main\}\cf0 and its \cf1\strike Subject\cf2\strike0\{linkID=5150>main\}\cf0 is a References attribute. -\par eoDeferInsert\tab Insertion of the object in the of the container of the Subject is deferred. It specifies that objects that are appended or inserted are not applied to the container of the \cf1\strike Subject\cf2\strike0\{linkID=5150>main\}\cf0 until a row is posted. This option is only effective when the exposer is in amContent \cf1\strike\f3 Mode\cf2\strike0\f0\{linkID=5020>main\}\cf0 . -\par eoSyncEdit\tab Allows a buffer update if the exposer's \cf1\strike Subject\cf2\strike0\{linkID=5150>main\}\cf0 is changed or refreshed and the exposer is in Edit mode.\f2 -\par \f0 +\par eoDeferInsert\tab\lang1033\f3 Addition or i\lang3081\f0 nsertion of object\lang1033\f3 s\lang3081\f0 in\lang1033\f3 to\lang3081\f0 \lang1033\f3 a\lang3081\f0 container of the Subject is deferred. It specifies that objects that are appended or inserted are not applied to the container of the \cf1\strike Subject\cf2\strike0\{linkID=5150>main\}\cf0 until a row is posted. This option is only effective when the exposer is in amContent \cf1\strike\f3 Mode\cf2\strike0\f0\{linkID=5020>main\}\cf0 . +\par \pard\fi-2440\li2440\tx2440\cf3\f2 eoSyncEdit\lang1033\tab\lang3081 Allows a buffer update if the exposer's \cf1\strike Subject\cf2\strike0\{linkID=5150>main\}\cf3 is changed or refreshed and the exposer is in Edit mode.\lang1033 \f4 This option is useful \lang3081\f2 when a\lang1033\f4 \lang3081\f2 single \lang1033\f4 o\lang3081\f2 bject is simultaneously connected to multiple exposers\lang1033\f4 \cf0\lang3081 to ensure that all of the exposers maintain a consistent view of the shared object\cf3\f2 .\lang1033\f4 \cf0\lang3081 If eoSyncEdit is not enabled (the default) in this scenario, the exposers can easily get out of sync causing undesirable behaviour.\f0 +\par \pard\fi-2440\li2440\sb25\sa25\tx2440 +\par \tab\f2 +\par \pard\f4 . \par } 12350 Scribble12350 @@ -30701,9 +30704,8 @@ nav="InstantObjects Guide",(200,410,220,503),0,(255,255,255),(255,255,255),0 0 0 -212 +210 1 Welcome=Scribble10 -1 License Agreement=327SA3X 1 License Agreement=Scribble30 1 Installing InstantObjects=Scribble40 1 InstantObjects User Guide @@ -30723,11 +30725,10 @@ 3 Persistence by RAD=Scribble300 3 The Connector=Scribble310 3 The Exposer=Scribble320 -3 The Exposer=Scribble320 3 The Selector=Scribble330 2 Programming with Persistent Objects 3 Programming with Persistent Objects=Scribble340 -3 Creating New Objects=Scribble340 +3 Creating New Objects=Scribble360 3 Retrieving Existing Objects=Scribble380 3 Associating Objects=Scribble420 3 Using an InstantQuery=Scribble440 Modified: trunk/Help/IOHelp.rtf =================================================================== --- trunk/Help/IOHelp.rtf 2006-08-18 06:20:38 UTC (rev 705) +++ trunk/Help/IOHelp.rtf 2006-08-19 04:34:04 UTC (rev 706) @@ -532,6 +532,7 @@ \par \cf2\strike Example 1\cf3\strike0{\v Scribble250>example}\cf1\tab\cf2\strike Example 2\cf3\strike0{\v Scribble260>example}\cf1\f1\tab\cf2\strike\f0 Creating the Business Model\cf3\strike0{\v Scribble70>main}\cf1 \par \pard\sb25\sa25\fs18 Validation rules and other business related behavior is added to your business classes by adding the required code plus additional methods and properties to the class. Validation rules and side effects of changing the value of an attribute are often added to the setter method of the corresponding property. Complete validation of business objects before they are stored to the database can be added by overriding the BeforeStore method of the class. New objects can be initialized by overriding the Initialize method. For a complete list of the virtual methods of \cf2\strike TInstantObject\cf3\strike0{\v Scribble7390>main}\cf1 , please refer to the InstantObjects Reference Guide. \par +\par \pard\cf0\lang3081\f5 Note: BeforeStore is currently NOT called for \i embedded\i0 objects. Validation of \i embedded \i0 objects, however, can be done by using its owner's BeforeStore event.\cf1\lang1040 \par \pard\plain\f2 {\page} @@ -19926,9 +19927,11 @@ \par eoAutoApply\tab Changes \f0 made to the exposer's \cf2\strike Subject\cf3\strike0{\v Scribble5150>main}\cf0 or objects contained in the \cf2\strike Subject\cf3\strike0{\v Scribble5150>main}\cf0 should be applied automatically. For \cf2\strike TInstantObject\cf3\strike0{\v Scribble7390>main}\cf0 descendants this means that the persistent storage is updated for each changed object. Deleted objects will be disposed from the persistent storage and new objects will be added. \par eoAutoRemember\tab Automatically applies \cf2\strike Remember\cf3\strike0{\v Scribble5430>main}\cf0 and \cf2\strike Revert\cf3\strike0{\v Scribble5480>main}\cf0 functionality to the \f1 exposer's \cf2\strike\f0 Subject\cf3\strike0{\v Scribble5150>main}\cf0 . \par eoNotDisposeReferences\tab Do not \cf2\strike Dispose\cf3\strike0{\v Scribble8570>main}\cf0 referenced objects of References attributes when deleting the \cf2\strike CurrentObject\cf3\strike0{\v Scribble4920>main}\cf0 of the exposer. This option is only effective when the exposer is in amContent \cf2\strike Mode\cf3\strike0{\v Scribble5020>main}\cf0 and its \cf2\strike Subject\cf3\strike0{\v Scribble5150>main}\cf0 is a References attribute. -\par eoDeferInsert\tab Insertion of the object in the of the container of the Subject is deferred. It specifies that objects that are appended or inserted are not applied to the container of the \cf2\strike Subject\cf3\strike0{\v Scribble5150>main}\cf0 until a row is posted. This option is only effective when the exposer is in amContent \cf2\strike\f1 Mode\cf3\strike0\f0{\v Scribble5020>main}\cf0 . -\par eoSyncEdit\tab Allows a buffer update if the exposer's \cf2\strike Subject\cf3\strike0{\v Scribble5150>main}\cf0 is changed or refreshed and the exposer is in Edit mode.\f2 -\par \f0 +\par eoDeferInsert\tab\lang1033\f1 Addition or i\lang3081\f0 nsertion of object\lang1033\f1 s\lang3081\f0 in\lang1033\f1 to\lang3081\f0 \lang1033\f1 a\lang3081\f0 container of the Subject is deferred. It specifies that objects that are appended or inserted are not applied to the container of the \cf2\strike Subject\cf3\strike0{\v Scribble5150>main}\cf0 until a row is posted. This option is only effective when the exposer is in amContent \cf2\strike\f1 Mode\cf3\strike0\f0{\v Scribble5020>main}\cf0 . +\par \pard\fi-2440\li2440\tx2440\cf1\f2 eoSyncEdit\lang1033\tab\lang3081 Allows a buffer update if the exposer's \cf2\strike Subject\cf3\strike0{\v Scribble5150>main}\cf1 is changed or refreshed and the exposer is in Edit mode.\lang1033 \f5 This option is useful \lang3081\f2 when a\lang1033\f5 \lang3081\f2 single \lang1033\f5 o\lang3081\f2 bject is simultaneously connected to multiple exposers\lang1033\f5 \cf0\lang3081 to ensure that all of the exposers maintain a consistent view of the shared object\cf1\f2 .\lang1033\f5 \cf0\lang3081 If eoSyncEdit is not enabled (the default) in this scenario, the exposers can easily get out of sync causing undesirable behaviour.\f0 +\par \pard\fi-2440\li2440\sb25\sa25\tx2440 +\par \tab\f2 +\par \pard\f5 . \par \pard\plain\f0 {\page} |
From: <sr...@us...> - 2007-01-20 07:37:45
|
Revision: 754 http://svn.sourceforge.net/instantobjects/revision/?rev=754&view=rev Author: srmitch Date: 2007-01-19 23:37:39 -0800 (Fri, 19 Jan 2007) Log Message: ----------- - Updated Help file topics 'Associating Objects' and 'InstantObject.AddRef'. Modified Paths: -------------- trunk/Help/IOHelp.chm trunk/Help/IOHelp.cnt trunk/Help/IOHelp.hlp trunk/Help/IOHelp.hpj trunk/Help/IOHelp.hsc trunk/Help/IOHelp.rtf Modified: trunk/Help/IOHelp.chm =================================================================== (Binary files differ) Modified: trunk/Help/IOHelp.cnt =================================================================== --- trunk/Help/IOHelp.cnt 2007-01-17 07:59:37 UTC (rev 753) +++ trunk/Help/IOHelp.cnt 2007-01-20 07:37:39 UTC (rev 754) @@ -1,4 +1,4 @@ -;This help file was created with HelpScribble 7.6.1 +;This help file was created with HelpScribble 7.7.0 ;Licensed to: Steven Mitchell :BASE IOHelp.hlp Modified: trunk/Help/IOHelp.hlp =================================================================== (Binary files differ) Modified: trunk/Help/IOHelp.hpj =================================================================== --- trunk/Help/IOHelp.hpj 2007-01-17 07:59:37 UTC (rev 753) +++ trunk/Help/IOHelp.hpj 2007-01-20 07:37:39 UTC (rev 754) @@ -1,20 +1,20 @@ ; InstantObjects Help ; -; This help file was created with HelpScribble 7.6.1 +; This help file was created with HelpScribble 7.7.0 ; Licensed to: Steven Mitchell -; HelpScribble is copyright (c) 1996-2005 Jan Goyvaerts +; HelpScribble is copyright (c) 1996-2007 Jan Goyvaerts ; Visit http://www.helpscribble.com/ for more information [OPTIONS] REPORT=YES -BMROOT=D:\L\INSTAN~1\Help\,D:\L\INSTAN~1\Help +BMROOT=D:\L\IN121C~1\Help,D:\L\IN121C~1\Help COMPRESS=True LCID=0x0409 CNT=IOHelp.cnt -ROOT=D:\L\INSTAN~1\Help +ROOT=D:\L\IN121C~1\Help TITLE=InstantObjects Help [CONFIG] @@ -26,7 +26,7 @@ nav="InstantObjects Guide",(200,410,220,503),0,(255,255,255),(255,255,255),0 [FILES] -D:\L\INSTAN~1\Help\IOHelp.rtf +D:\L\IN121C~1\Help\IOHelp.rtf [MAP] Scribble10 10 Modified: trunk/Help/IOHelp.hsc =================================================================== --- trunk/Help/IOHelp.hsc 2007-01-17 07:59:37 UTC (rev 753) +++ trunk/Help/IOHelp.hsc 2007-01-20 07:37:39 UTC (rev 754) @@ -1273,15 +1273,19 @@ FALSE -9 -{\rtf1\ansi\ansicpg1252\deff0{\fonttbl{\f0\fswiss Arial;}} +13 +{\rtf1\ansi\ansicpg1252\deff0{\fonttbl{\f0\fswiss Arial;}{\f1\fswiss\fcharset0 Arial;}{\f2\fnil\fcharset2 Symbol;}} {\colortbl ;\red0\green0\blue0;\red0\green128\blue0;\red128\green0\blue0;} \viewkind4\uc1\pard\lang1040\b\f0\fs24 Associating Objects\cf1\b0\fs16 \par \pard\sb25\tx1435\cf2\strike Example 1\cf3\strike0\{linkID=430>example\}\cf1\tab\cf2\strike Programming with Persistent Objects\cf3\strike0\{linkID=340>main\}\{keepn\}\cf1 -\par \pard\sb25\sa25\tx1435\fs18 Persistent object relations defined by relational attributes in the business model can be accessed just as easy as any other attribute. +\par \pard\sb25\sa25\tx1435\fs18 Persistent object relations \lang1033\f1 are \lang1040\f0 defined by relational attributes in the business model \lang1033\f1 and \lang1040\f0 can be accessed just as easy as any other attribute. \par Single object relations defined by Part and Reference attributes are accessed through the corresponding object property of the class. \par Multiple object references defined by Parts and References attributes are accessed through the corresponding array property and the container methods defined for the attribute. \par +\par \lang1033\b\f1 Assignment to \lang1040\f0 relational attributes +\par \lang1033\b0\f1 (A close study of the code in \cf2\strike Example 1\cf3\strike0\{linkID=430>example\}\cf1 will help to clarify the points below.)\lang1040\f0 +\par \pard{\pntext\f2\'B7\tab}{\*\pn\pnlvlblt\pnf2\pnindent0{\pntxtb\'B7}}\fi-200\li200\sb25\sa25\tx200\lang1033\f1 O\lang1040\f0 bjects created \lang1033\f1 and\lang1040\f0 then assigned to \i part/parts attributes\i0 \lang1033\f1 SHOULD \lang1040\f0 NOT be freed after assignment. These attributes expect \lang1033\f1 the \lang1040\f0 transfer to them \lang1033\f1 of\lang1040\f0 ownership of the objects that they are assigned.\lang1033\f1 \lang1040\f0 The reference count\lang1033\f1 s\lang1040\f0 of these objects do not change during assignment.\lang1033\f1 \lang1040\f0 This means that\lang1033\f1 ,\lang1040\f0 when an object\lang1033\f1 is\lang1040\f0 create\lang1033\f1 d\lang1040\f0 and assign\lang1033\f1 ed\lang1040\f0 to a part/parts\lang1033\f1 \lang1040\f0 attribute\lang1033\f1 ,\lang1040\f0 the object that \lang1033\f1 was\lang1040\f0 created must \lang1033\f1 NOT be\lang1040\f0 free\lang1033\f1 d\lang1040\f0 unless an exception is raised during the\lang1033\f1 a\lang1040\f0 ssignment.\lang1033\f1 \lang1040\f0 +\par \lang1033\f1{\pntext\f2\'B7\tab}O\lang1040\f0 bjects created \lang1033\f1 and\lang1040\f0 then assigned to \i reference/references\lang1033\f1 \lang1040\f0 attributes\i0 DO need to be freed after assignment. These\lang1033\f1 \lang1040\f0 attributes DO NOT expect \lang1033\f1 the\lang1040\f0 transfer \lang1033\f1 of\lang1040\f0 ownership to them of the\lang1033\f1 \lang1040\f0 objects that they are assigned. The reference count of each of these\lang1033\f1 \lang1040\f0 objects is incremented during assignment. This means that\lang1033\f1 ,\lang1040\f0 when an object \lang1033\f1 is \lang1040\f0 create\lang1033\f1 d\lang1040\f0 and assign\lang1033\f1 ed\lang1040\f0 to a reference/references attribute\lang1033\f1 ,\lang1040\f0 the object that \lang1033\f1 was\lang1040\f0 created must \lang1033\f1 be \lang1040\f0 free\lang1033\f1 d\lang1040\f0 at some point after the\lang1033\f1 \lang1040\f0 assignment\lang1033\f1 to avoid a possible memory leak\lang1040\f0 . \par } 430 Scribble430 @@ -1295,7 +1299,7 @@ FALSE -123 +142 {\rtf1\ansi\ansicpg1252\deff0{\fonttbl{\f0\fswiss Arial;}{\f1\fmodern Courier New;}{\f2\fswiss\fcharset0 Arial;}{\f3\fnil Arial;}{\f4\fmodern\fcharset0 Courier New;}} {\colortbl ;\red0\green0\blue0;\red0\green128\blue0;\red128\green0\blue0;} \viewkind4\uc1\pard\lang1040\b\f0\fs24 Example 1 \cf1\b0\fs16 @@ -1355,16 +1359,35 @@ \par Result.Address.Street := 'Summer Street 1'; \par Result.Company := Company; \par -\par \{\- Add phones \} +\par \{\f4\- Add phones \} \par Phone := TPhone.Create; -\par Phone.Name := 'Home'; -\par Phone.Number := '12345678'; -\par Result.AddPhone(Phone); +\par try +\par Phone.Name := 'Home'; +\par Phone.Number := '12345678'; +\par Result.AddPhone(Phone); +\par except +\par Phone.Free; +\par raise; +\par end; \par Phone := TPhone.Create; -\par Phone.Name := 'Office'; -\par Phone.Number := '32187654'; -\par Result.AddPhone(Phone); -\par +\par try +\par Phone.Name := 'Office'; +\par Phone.Number := '32187654'; +\par Result.AddPhone(Phone); +\par except +\par Phone.Free; +\par raise; +\par end; +\par \f1 +\par \f4 \f1\{\- Add \lang1033\f4 new Person as a Friend\lang1040\f1 \}\f4 +\par Person := TPerson.Create; +\par try +\par Person.Name := 'Fred Bloggs'; +\par Result.\f1 AddFriend\f4 (Person); +\par finally +\par Person.Free; +\par end; +\par \f1 \par \{\- Add colleagues\lang1033\f4 as Friends\lang1040\f1 \} \par \b with \b0 TInstantSelector.Create(nil) \b do\b0 \par \b try\b0 @@ -1425,7 +1448,7 @@ Using an InstantQuery;InstantQuery,Using; - +programming:000050 Done @@ -18223,17 +18246,20 @@ main AddRef;AddRef_Method;TInstantObject_AddRef -FALSE -10 -{\rtf1\ansi\deff0{\fonttbl{\f0\fswiss Arial;}{\f1\fmodern Courier New;}} +TRUE +13 +{\rtf1\ansi\ansicpg1252\deff0{\fonttbl{\f0\fswiss Arial;}{\f1\fmodern Courier New;}{\f2\fswiss\fcharset0 Arial;}} {\colortbl ;\red0\green0\blue0;} \viewkind4\uc1\pard\lang1040\b\f0\fs24 TInstantObject.AddRef \cf1\b0\fs16 \par \pard\sb25\tx1435\strike TInstantObject\strike0\{linkID=7390>main\}\tab\ul See Also\ulnone\{linkID=7910\}\{keepn\} \par \pard\sb25\sa85\tx1435\fs18 Increments the reference count for the number of references dependent on the instance. \par \pard\sb25\sa25\tx1435\b\f1 function\b0 AddRef: Integer; \par \pard\sb55\sa25\tx1435\b\f0 Description -\par \pard\sb25\sa25\tx1435\b0 AddRef increments the reference count for the instance and returns the resulting value of the reference count. Although it should not normally be necessary to call AddRef directly, it can be called to safeguard an object before calling a method that could result in a premature destruction of the object, and after the method returns, call the \strike Release\strike0\{linkID=8920>main\} method to decrement the count. -\par +\par \pard\sb25\sa25\tx1435\b0 AddRef increments the reference count for the instance and returns the resulting value of the reference count. +\par \fs10 +\par \fs18 Although it should not normally be necessary to call AddRef directly, it can be called\lang1033\f2 \lang1040\f0 to ensure the lifetime of an\lang1033\f2 \lang1040\f0 object\lang1033\f2 \lang1040\f0 before calling a method that could result in \lang1033\f2 the\lang1040\f0 premature destruction of the object, and after the method returns, call the \lang1033\f2 Free \lang1040\f0 method to decrement the \lang1033\f2 object's reference \lang1040\f0 count.\lang1033\f2 Note: It is generally not advisable to use the Release method in application development as this might result in memory leaks.\lang1040\f0 +\par \fs10 +\par \lang1033\f2\fs18 For practical examples of when to use the AddRef method study the PrimerCross demo application. One example is the TMainForm.CreateRandomContacts method in Main.pas. In that method a local Companies list is created. When an instance of TCompany is created its AddRef is called and it is added to the Companies list. However during the processing, instances of TCompany can be deleted from the list. As the list is a TObjectList, free will be called on its contained objects when items in the list are deleted or the list is destroyed. Calling AddRef when adding objects to the list ensures that the objects exist until they are deleted from the list or the list is destroyed thereby avoiding the possibility of an AV occurring.\lang1040\f0 \par } 7910 Scribble7910 @@ -20431,7 +20457,7 @@ main Release;Release_Method;TInstantObject_Release -FALSE +TRUE 10 {\rtf1\ansi\deff0{\fonttbl{\f0\fswiss Arial;}{\f1\fmodern Courier New;}} {\colortbl ;\red0\green0\blue0;} Modified: trunk/Help/IOHelp.rtf =================================================================== --- trunk/Help/IOHelp.rtf 2007-01-17 07:59:37 UTC (rev 753) +++ trunk/Help/IOHelp.rtf 2007-01-20 07:37:39 UTC (rev 754) @@ -970,10 +970,14 @@ } \viewkind4\uc1\pard\keepn\lang1040\b\f0\fs24 Associating Objects\cf1\b0\fs16 \par \pard\keepn\sb25\tx1435\cf2\strike Example 1\cf3\strike0{\v Scribble430>example}\cf1\tab\cf2\strike Programming with Persistent Objects\cf3\strike0{\v Scribble340>main}\cf1 -\par \pard\sb25\sa25\tx1435\fs18 Persistent object relations defined by relational attributes in the business model can be accessed just as easy as any other attribute. +\par \pard\sb25\sa25\tx1435\fs18 Persistent object relations \lang1033\f1 are \lang1040\f0 defined by relational attributes in the business model \lang1033\f1 and \lang1040\f0 can be accessed just as easy as any other attribute. \par Single object relations defined by Part and Reference attributes are accessed through the corresponding object property of the class. \par Multiple object references defined by Parts and References attributes are accessed through the corresponding array property and the container methods defined for the attribute. \par +\par \lang1033\b\f1 Assignment to \lang1040\f0 relational attributes +\par \lang1033\b0\f1 (A close study of the code in \cf2\strike Example 1\cf3\strike0{\v Scribble430>example}\cf1 will help to clarify the points below.)\lang1040\f0 +\par \pard{\pntext\f6\'B7\tab}{\*\pn\pnlvlblt\pnf6\pnindent0{\pntxtb\'B7}}\fi-200\li200\sb25\sa25\tx200\lang1033\f1 O\lang1040\f0 bjects created \lang1033\f1 and\lang1040\f0 then assigned to \i part/parts attributes\i0 \lang1033\f1 SHOULD \lang1040\f0 NOT be freed after assignment. These attributes expect \lang1033\f1 the \lang1040\f0 transfer to them \lang1033\f1 of\lang1040\f0 ownership of the objects that they are assigned.\lang1033\f1 \lang1040\f0 The reference count\lang1033\f1 s\lang1040\f0 of these objects do not change during assignment.\lang1033\f1 \lang1040\f0 This means that\lang1033\f1 ,\lang1040\f0 when an object\lang1033\f1 is\lang1040\f0 create\lang1033\f1 d\lang1040\f0 and assign\lang1033\f1 ed\lang1040\f0 to a part/parts\lang1033\f1 \lang1040\f0 attribute\lang1033\f1 ,\lang1040\f0 the object that \lang1033\f1 was\lang1040\f0 created must \lang1033\f1 NOT be\lang1040\f0 free\lang1033\f1 d\lang1040\f0 unless an exception is raised during the\lang1033\f1 a\lang1040\f0 ssignment.\lang1033\f1 \lang1040\f0 +\par \lang1033\f1{\pntext\f6\'B7\tab}O\lang1040\f0 bjects created \lang1033\f1 and\lang1040\f0 then assigned to \i reference/references\lang1033\f1 \lang1040\f0 attributes\i0 DO need to be freed after assignment. These\lang1033\f1 \lang1040\f0 attributes DO NOT expect \lang1033\f1 the\lang1040\f0 transfer \lang1033\f1 of\lang1040\f0 ownership to them of the\lang1033\f1 \lang1040\f0 objects that they are assigned. The reference count of each of these\lang1033\f1 \lang1040\f0 objects is incremented during assignment. This means that\lang1033\f1 ,\lang1040\f0 when an object \lang1033\f1 is \lang1040\f0 create\lang1033\f1 d\lang1040\f0 and assign\lang1033\f1 ed\lang1040\f0 to a reference/references attribute\lang1033\f1 ,\lang1040\f0 the object that \lang1033\f1 was\lang1040\f0 created must \lang1033\f1 be \lang1040\f0 free\lang1033\f1 d\lang1040\f0 at some point after the\lang1033\f1 \lang1040\f0 assignment\lang1033\f1 to avoid a possible memory leak\lang1040\f0 . \par \pard\plain\f0 {\page} @@ -1040,16 +1044,35 @@ \par Result.Address.Street := 'Summer Street 1'; \par Result.Company := Company; \par -\par \{\- Add phones \} +\par \{\f8\- Add phones \} \par Phone := TPhone.Create; -\par Phone.Name := 'Home'; -\par Phone.Number := '12345678'; -\par Result.AddPhone(Phone); +\par try +\par Phone.Name := 'Home'; +\par Phone.Number := '12345678'; +\par Result.AddPhone(Phone); +\par except +\par Phone.Free; +\par raise; +\par end; \par Phone := TPhone.Create; -\par Phone.Name := 'Office'; -\par Phone.Number := '32187654'; -\par Result.AddPhone(Phone); -\par +\par try +\par Phone.Name := 'Office'; +\par Phone.Number := '32187654'; +\par Result.AddPhone(Phone); +\par except +\par Phone.Free; +\par raise; +\par end; +\par \f7 +\par \f8 \f7\{\- Add \lang1033\f8 new Person as a Friend\lang1040\f7 \}\f8 +\par Person := TPerson.Create; +\par try +\par Person.Name := 'Fred Bloggs'; +\par Result.\f7 AddFriend\f8 (Person); +\par finally +\par Person.Free; +\par end; +\par \f7 \par \{\- Add colleagues\lang1033\f8 as Friends\lang1040\f7 \} \par \b with \b0 TInstantSelector.Create(nil) \b do\b0 \par \b try\b0 @@ -1110,6 +1133,7 @@ {\pard\plain\f0\fs20 {\up #}{\footnote {\up #} Scribble440} {\up $}{\footnote {\up $} Using an InstantQuery} +{\up +}{\footnote {\up +} programming:000050} {\up K}{\footnote {\up K} Using an InstantQuery;InstantQuery,Using;} } \viewkind4\uc1\pard\keepn\cf1\b\f0\fs24 Using an InstantQuery\b0\fs16 @@ -12729,8 +12753,11 @@ \par \pard\sb25\sa85\tx1435\fs18 Increments the reference count for the number of references dependent on the instance. \par \pard\sb25\sa25\tx1435\b\f7 function\b0 AddRef: Integer; \par \pard\sb55\sa25\tx1435\b\f0 Description -\par \pard\sb25\sa25\tx1435\b0 AddRef increments the reference count for the instance and returns the resulting value of the reference count. Although it should not normally be necessary to call AddRef directly, it can be called to safeguard an object before calling a method that could result in a premature destruction of the object, and after the method returns, call the \strike Release\strike0{\v Scribble8920>main} method to decrement the count. -\par +\par \pard\sb25\sa25\tx1435\b0 AddRef increments the reference count for the instance and returns the resulting value of the reference count. +\par \fs10 +\par \fs18 Although it should not normally be necessary to call AddRef directly, it can be called\lang1033\f1 \lang1040\f0 to ensure the lifetime of an\lang1033\f1 \lang1040\f0 object\lang1033\f1 \lang1040\f0 before calling a method that could result in \lang1033\f1 the\lang1040\f0 premature destruction of the object, and after the method returns, call the \lang1033\f1 Free \lang1040\f0 method to decrement the \lang1033\f1 object's reference \lang1040\f0 count.\lang1033\f1 Note: It is generally not advisable to use the Release method in application development as this might result in memory leaks.\lang1040\f0 +\par \fs10 +\par \lang1033\f1\fs18 For practical examples of when to use the AddRef method study the PrimerCross demo application. One example is the TMainForm.CreateRandomContacts method in Main.pas. In that method a local Companies list is created. When an instance of TCompany is created its AddRef is called and it is added to the Companies list. However during the processing, instances of TCompany can be deleted from the list. As the list is a TObjectList, free will be called on its contained objects when items in the list are deleted or the list is destroyed. Calling AddRef when adding objects to the list ensures that the objects exist until they are deleted from the list or the list is destroyed thereby avoiding the possibility of an AV occurring.\lang1040\f0 \par \pard\plain\f0 {\page} |