<div>Many thanks Kyley,</div>
<div> </div>
<div>I think I have a good overview of it all now, thanks also to your and Carl's dialogue!</div>
<div> </div>
<div>Paul<br><br> </div>
<div><span class="gmail_quote">On 23/05/06, <b class="gmail_sendername">Kyley Harris</b> <<a href="mailto:kyley@harrissoftware.com">kyley@harrissoftware.com</a>> wrote:</span>
<blockquote class="gmail_quote" style="PADDING-LEFT: 1ex; MARGIN: 0px 0px 0px 0.8ex; BORDER-LEFT: #ccc 1px solid">
<div>
<div lang="EN-US" vlink="blue" link="blue">
<div>
<p><font face="Arial" color="navy" size="2"><span style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial">Yes. The application object does exist, so in my last post I definitely typo'd saying it does not exist. Sorry.</span>
</font></p>
<p><font face="Arial" color="navy" size="2"><span style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial"> </span></font></p>
<p><font face="Arial" color="navy" size="2"><span style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial">In a normal application the Application Var is created in Controls.pas initialization. </span></font></p>
<p><font face="Arial" color="navy" size="2"><span style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial"> </span></font></p>
<p><font face="Arial" color="navy" size="2"><span style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial">But be aware that your entire application is generally executing from the Application.Run context, so anything outside of this may not behave as you expect such as receiving windows events and such. Not that I've tested that because I wouldn't use finalization or initialization for anything other than basic things
</span></font></p>
<p><font face="Arial" color="navy" size="2"><span style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial"> </span></font></p>
<p><font face="Arial" color="navy" size="2"><span style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial"> </span></font></p>
<p><font face="Arial" color="navy" size="2"><span style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial"> </span></font></p>
<div>
<div style="TEXT-ALIGN: center" align="center"><font face="Times New Roman" size="3"><span style="FONT-SIZE: 12pt">
<hr align="center" width="100%" size="2">
</span></font></div>
<p><b><font face="Tahoma" size="2"><span style="FONT-WEIGHT: bold; FONT-SIZE: 10pt; FONT-FAMILY: Tahoma">From:</span></font></b><font face="Tahoma" size="2"><span style="FONT-SIZE: 10pt; FONT-FAMILY: Tahoma"> <a onclick="return top.js.OpenExtLink(window,event,this)" href="mailto:delphi-bounces@ns3.123.co.nz" target="_blank">
delphi-bounces@ns3.123.co.nz</a> [mailto:<a onclick="return top.js.OpenExtLink(window,event,this)" href="mailto:delphi-bounces@ns3.123.co.nz" target="_blank">delphi-bounces@ns3.123.co.nz</a>] <b><span style="FONT-WEIGHT: bold">
On Behalf Of </span></b>Paul A Norman<br><b><span style="FONT-WEIGHT: bold">Sent:</span></b> Tuesday, 23 May 2006 5:41 p.m.<br><b><span style="FONT-WEIGHT: bold">To:</span></b> <a onclick="return top.js.OpenExtLink(window,event,this)" href="mailto:karlreynolds@xtra.co.nz" target="_blank">
karlreynolds@xtra.co.nz</a>; NZ Borland Developers Group - Delphi List<br><b><span style="FONT-WEIGHT: bold">Subject:</span></b> Re: [DUG] Usage - initialization and finalization</span></font></p></div></div>
<div><span class="e" id="q_10b5fd9d2aeb8e1f_1">
<p><font face="Times New Roman" size="3"><span style="FONT-SIZE: 12pt"> </span></font></p>
<div>
<p><font face="Times New Roman" size="3"><span style="FONT-SIZE: 12pt">P.S. the Application object is used whcih some one earler suggested was not possible.</span></font></p></div>
<div>
<p><font face="Times New Roman" size="3"><span style="FONT-SIZE: 12pt"> </span></font></p></div>
<div>
<p><font face="Times New Roman" size="3"><span style="FONT-SIZE: 12pt">The application does work!<br><br> </span></font></p></div>
<div>
<p><span><font face="Times New Roman" size="3"><span style="FONT-SIZE: 12pt">On 23/05/06, <b><span style="FONT-WEIGHT: bold">Paul A Norman</span></b> <<a onclick="return top.js.OpenExtLink(window,event,this)" href="mailto:paul.a.norman@gmail.com" target="_blank">
paul.a.norman@gmail.com</a>> wrote:</span></font></span> </p>
<div>
<div>
<p><font face="Times New Roman" size="3"><span style="FONT-SIZE: 12pt">Just back in the basics where I am for a moment,</span></font></p></div>
<div>
<p><font face="Times New Roman" size="3"><span style="FONT-SIZE: 12pt"> </span></font></p></div>
<div>
<p><font face="Times New Roman" size="3"><span style="FONT-SIZE: 12pt">This is some code I found following a link that Stefan suggested in another thread today. </span></font></p></div>
<div>
<p><font face="Times New Roman" size="3"><span style="FONT-SIZE: 12pt">What is the benefit of doing it all in <strong><b><font face="Times New Roman">initialization</font></b></strong> and <strong><b><font face="Times New Roman">
finalization</font></b></strong> if it were contained in a form unit (which it was not incidentily)? </span></font></p></div>
<div>
<p><font face="Times New Roman" size="3"><span style="FONT-SIZE: 12pt"> </span></font></p></div>
<div>
<p><font face="Times New Roman" size="3"><span style="FONT-SIZE: 12pt">initialization<br> begin<br> TComObjectFactory.Create(ComServer, TOurNSHandler, Class_OurNSHandler,<br> 'OurNSHandler', 'OurNSHandler', ciMultiInstance, tmApartment);
</span></font></p></div>
<div>
<p><font face="Times New Roman" size="3"><span style="FONT-SIZE: 12pt"> Table := TTable.Create(nil);<br> table.DatabaseName := ExtractFilePath(Application.ExeName);<br> table.TableName := DatabaseFile;<br> table.active
:= true;<br> end;</span></font></p>
<p><font face="Times New Roman" size="3"><span style="FONT-SIZE: 12pt">finalization<br> table.free;</span></font></p>
<p><font face="Times New Roman" size="3"><span style="FONT-SIZE: 12pt"><br><br> </span></font></p></div>
<div><span>
<p><span><font face="Times New Roman" size="3"><span style="FONT-SIZE: 12pt">On 23/05/06, <b><span style="FONT-WEIGHT: bold">Karl @ Work</span></b> <<a onclick="return top.js.OpenExtLink(window,event,this)" href="mailto:karlreynolds@xtra.co.nz" target="_blank">
karlreynolds@xtra.co.nz </a>> wrote:</span></font></span><span> </span></p></span></div>
<div><span>
<p><span><font face="Times New Roman" size="3"><span style="FONT-SIZE: 12pt">> I'm curious as to why each of your consuming units needs to keep a</span></font></span><br><span>> reference to the singleton? </span><br>
<span>></span><br><span>> IMHO, surely the whole point about a singleton is that you don't keep </span><br><span>> references per se to it.</span><br><span>></span><br><span>> When you need to access the singleton, you should just call your
</span><br><span>> Singleton function declared in your MySingletonUnit unit? </span><br><span>></span><br><span>> Surely that would result in a whole lot less reference counting, and </span><br><span>> worrying about who's holding on to it and when they drop their
</span><br><span>> references, etc.</span><br><br><span>I would prefer not to keep references to the singleton in the consuming </span><br><span>units, it's just that I haven't found another way to ensure that it will
</span><br><span>free itself both (a) after everything else has finished using it and (b)</span><br><span>before the program finishes. The problem is that the singleton can't be </span><br><span>cleaned up in the finalization of its own unit because there are still
</span><br><span>references to it which are accessed after that.</span><br><br><span>Cheers,</span><br><span>Carl</span><br><br><br></p></span></div>
<div>
<p style="MARGIN-BOTTOM: 12pt"><span><font face="Times New Roman" size="3"><span style="FONT-SIZE: 12pt">_______________________________________________</span></font></span><br><span>Delphi</span><span> mailing list </span>
<br><span><a onclick="return top.js.OpenExtLink(window,event,this)" href="mailto:Delphi@ns3.123.co.nz" target="_blank">Delphi@ns3.123.co.nz </a></span><br><span><a onclick="return top.js.OpenExtLink(window,event,this)" href="http://ns3.123.co.nz/mailman/listinfo/delphi" target="_blank">
http://ns3.123.co.nz/mailman/listinfo/delphi</a></span><br><br></p></div>
<p><font face="Times New Roman" size="3"><span style="FONT-SIZE: 12pt"><br> </span></font></p></div></div>
<p><font face="Times New Roman" size="3"><span style="FONT-SIZE: 12pt"> </span></font></p></span></div>
<div></div></div></div><br>_______________________________________________<br>Delphi mailing list<br><a onclick="return top.js.OpenExtLink(window,event,this)" href="mailto:Delphi@ns3.123.co.nz">Delphi@ns3.123.co.nz</a><br>
<a onclick="return top.js.OpenExtLink(window,event,this)" href="http://ns3.123.co.nz/mailman/listinfo/delphi" target="_blank">http://ns3.123.co.nz/mailman/listinfo/delphi</a><br><br><br></blockquote></div><br>