<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://vistapedia.com/index.php?action=history&amp;feed=atom&amp;title=OO_Support_Library</id>
	<title>OO Support Library - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://vistapedia.com/index.php?action=history&amp;feed=atom&amp;title=OO_Support_Library"/>
	<link rel="alternate" type="text/html" href="https://vistapedia.com/index.php?title=OO_Support_Library&amp;action=history"/>
	<updated>2026-05-09T14:47:43Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.0</generator>
	<entry>
		<id>https://vistapedia.com/index.php?title=OO_Support_Library&amp;diff=9870&amp;oldid=prev</id>
		<title>24.75.227.14 at 05:45, 1 December 2005</title>
		<link rel="alternate" type="text/html" href="https://vistapedia.com/index.php?title=OO_Support_Library&amp;diff=9870&amp;oldid=prev"/>
		<updated>2005-12-01T05:45:10Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 05:45, 1 December 2005&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot;&gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&#039;&#039;&#039;TMGOOL.m&#039;&#039;&#039;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;pre&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;pre&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;;&amp;quot;------------------------------------------&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;;&amp;quot;------------------------------------------&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>24.75.227.14</name></author>
	</entry>
	<entry>
		<id>https://vistapedia.com/index.php?title=OO_Support_Library&amp;diff=1814&amp;oldid=prev</id>
		<title>24.75.227.14 at 05:37, 1 December 2005</title>
		<link rel="alternate" type="text/html" href="https://vistapedia.com/index.php?title=OO_Support_Library&amp;diff=1814&amp;oldid=prev"/>
		<updated>2005-12-01T05:37:25Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
;&amp;quot;------------------------------------------&lt;br /&gt;
;&amp;quot; new and delete functions below&lt;br /&gt;
;&amp;quot;------------------------------------------&lt;br /&gt;
&lt;br /&gt;
new(objectType,Constructor)                &lt;br /&gt;
        ;&amp;quot;Purpose -- A constructor for object Widget&lt;br /&gt;
        ;&amp;quot;Input: objectType -- the NAME of the type of the object to be defined.&lt;br /&gt;
        ;&amp;quot;              This should be a variable (global or otherwise) that will hold the&lt;br /&gt;
        ;&amp;quot;              defined objects.  All the instances of a object of a particular type&lt;br /&gt;
        ;&amp;quot;              will be held in this one variable.  If this variable already holds&lt;br /&gt;
        ;&amp;quot;              other instances of the object, it will be added in.&lt;br /&gt;
        ;&amp;quot;        Constructor -- the name of an entry point to call for constructing the instance of the object.&lt;br /&gt;
        ;&amp;quot;Result: returns the name of the particular instance --which is really @objectType@(ID)  &lt;br /&gt;
        &lt;br /&gt;
        ;&amp;quot;Notes: thoughts for enhancements.  I could specify a parent object type and establish&lt;br /&gt;
        ;&amp;quot;          method overridding etc.&lt;br /&gt;
        ;&amp;quot;         Currently this setup below doesn&amp;#039;t allow for inheritance of parent variables.&lt;br /&gt;
&lt;br /&gt;
        new ID,constFn,objectName&lt;br /&gt;
        set @objectType@(&amp;quot;LAST ID&amp;quot;)=$get(@objectType@(&amp;quot;LAST ID&amp;quot;))+1&lt;br /&gt;
        set ID=@objectType@(&amp;quot;LAST ID&amp;quot;)&lt;br /&gt;
        set @objectType@(&amp;quot;INSTANCES&amp;quot;,ID)=&amp;quot;&amp;quot;&lt;br /&gt;
        set @objectType@(&amp;quot;DESTRUCTOR&amp;quot;)=&amp;quot;destWidget^TMGOOWG&amp;quot;&lt;br /&gt;
        set @objectType@(ID,&amp;quot;TYPE&amp;quot;)=&amp;quot;WIDGET&amp;quot;&lt;br /&gt;
        set @objectType@(ID,&amp;quot;ID&amp;quot;)=ID&lt;br /&gt;
        set @objectType@(ID,&amp;quot;TYPEDEF&amp;quot;)=objectType&lt;br /&gt;
        set objectName=$name(@objectType@(ID))&lt;br /&gt;
        &lt;br /&gt;
        set constFn=&amp;quot;do &amp;quot;_Constructor_&amp;quot;(&amp;quot;&amp;quot;&amp;quot;_objectName_&amp;quot;&amp;quot;&amp;quot;)&amp;quot;&lt;br /&gt;
        xecute constFn&lt;br /&gt;
        &lt;br /&gt;
        quit objectName&lt;br /&gt;
        &lt;br /&gt;
delete(objectName)        &lt;br /&gt;
        ;&amp;quot;Purpose:  A destructor for object Widget&lt;br /&gt;
        ;&amp;quot;              any needed clean up code would go here first.&lt;br /&gt;
        ;&amp;quot;Input: objectName -- the name of the object instance to be deleted.&lt;br /&gt;
        ;&amp;quot;              This should be the value returned from defWidget&lt;br /&gt;
        &lt;br /&gt;
        new destr,ID,typeDef&lt;br /&gt;
        &lt;br /&gt;
        set destr=$get(@objectName@(&amp;quot;DESTRUCTOR&amp;quot;))&lt;br /&gt;
        if destr&amp;#039;=&amp;quot;&amp;quot; do&lt;br /&gt;
        . set destr=&amp;quot;do &amp;quot;_destr&lt;br /&gt;
        . xecute destr&lt;br /&gt;
        &lt;br /&gt;
        set ID=$get(@objectName@(&amp;quot;ID&amp;quot;))&lt;br /&gt;
        set typeDef=$get(@objectName@(&amp;quot;TYPEDEF&amp;quot;))&lt;br /&gt;
        kill @typeDef@(&amp;quot;INSTANCES&amp;quot;,ID)&lt;br /&gt;
        kill @typeDef@(ID)&lt;br /&gt;
        quit&lt;br /&gt;
        &lt;br /&gt;
&lt;br /&gt;
fn(objectName,objectFn,v1,v2,v3,v4,v5,v6,v7,v8,v9,v10,v11,v12,v13,v14,v15,v16)&lt;br /&gt;
        ;&amp;quot;Purpose: to execute a function stored in a object&lt;br /&gt;
        ;&amp;quot;Input: ObjectName -- the name of the object containing the member function&lt;br /&gt;
        ;&amp;quot;         objectFn -- the name of the function to be executed in the member function&lt;br /&gt;
        ;&amp;quot;         v1...v16 -- OPTIONAL input variables.  Only the number of variables called for by&lt;br /&gt;
        ;&amp;quot;              the specified function will be used.  &lt;br /&gt;
        ;&amp;quot;Result -- returns the output value of the specified function, or &amp;quot;&amp;quot; if there is not output.&lt;br /&gt;
        &lt;br /&gt;
        new outVar set outVar=&amp;quot;&amp;quot;&lt;br /&gt;
        new TMGthis set TMGthis=objectName  ;&amp;quot;setup global-scope &amp;#039;this&amp;#039; var pointer for member function to use (if wanted)&lt;br /&gt;
        new typeDef set typeDef=$get(@objectName@(&amp;quot;TYPEDEF&amp;quot;)) if typeDef=&amp;quot;&amp;quot; goto fnDone&lt;br /&gt;
&lt;br /&gt;
        ;&amp;quot;example of fn: wgtMultiply^TMGOOWG(x,y)&lt;br /&gt;
        new fn set fn=$get(@typeDef@(objectFn)) if fn=&amp;quot;&amp;quot; goto fnDone&lt;br /&gt;
        &lt;br /&gt;
        new Params set Params=$piece($piece(fn,&amp;quot;(&amp;quot;,2),&amp;quot;)&amp;quot;,1)&lt;br /&gt;
        new TMGOOI set TMGOOI=1&lt;br /&gt;
        new TMGParam&lt;br /&gt;
loop1        &lt;br /&gt;
        set TMGParam=$piece(Params,&amp;quot;,&amp;quot;,TMGOOI)&lt;br /&gt;
        if $extract(TMGParam,1)=&amp;quot;.&amp;quot; set TMGParam=$extract(TMGParam,2,999)&lt;br /&gt;
        if TMGParam=&amp;quot;&amp;quot; goto PastLoop&lt;br /&gt;
        new @TMGParam merge @TMGParam=@(&amp;quot;v&amp;quot;_TMGOOI) ;&amp;quot;NEW parameters for fn to be called, and stuff with v1...v16&lt;br /&gt;
        set TMGOOI=TMGOOI+1&lt;br /&gt;
        if TMGOOI&amp;#039;&amp;gt;16 goto loop1&lt;br /&gt;
        &lt;br /&gt;
PastLoop        &lt;br /&gt;
        set fn=&amp;quot;set outVar=$$&amp;quot;_fn     ;&amp;quot;e.g. &amp;#039;set outVar=$$wgtMultiply^TMGOOWG(x,y)&amp;#039;&lt;br /&gt;
        xecute fn  ;&amp;quot;&amp;lt;--- call actual function.  PERHAPS LET OBJECTS DEFINE CUSTOM ERROR TRAP FUNCTIONS??&lt;br /&gt;
        &lt;br /&gt;
fnDone&lt;br /&gt;
        quit outVar       &lt;br /&gt;
       &lt;br /&gt;
        &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>24.75.227.14</name></author>
	</entry>
</feed>