<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40"><head><meta http-equiv=Content-Type content="text/html; charset=utf-8"><meta name=Generator content="Microsoft Word 12 (filtered medium)"><!--[if !mso]><style>v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style><![endif]--><style><!--
/* Font Definitions */
@font-face
        {font-family:Wingdings;
        panose-1:5 0 0 0 0 0 0 0 0 0;}
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Tahoma;
        panose-1:2 11 6 4 3 5 4 4 2 4;}
@font-face
        {font-family:Consolas;
        panose-1:2 11 6 9 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman","serif";
        color:black;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
p
        {mso-style-priority:99;
        mso-margin-top-alt:auto;
        margin-right:0cm;
        mso-margin-bottom-alt:auto;
        margin-left:0cm;
        font-size:12.0pt;
        font-family:"Times New Roman","serif";
        color:black;}
pre
        {mso-style-priority:99;
        mso-style-link:"HTML Preformatted Char";
        margin:0cm;
        margin-bottom:.0001pt;
        font-size:10.0pt;
        font-family:"Courier New";
        color:black;}
tt
        {mso-style-priority:99;
        font-family:"Courier New";}
span.HTMLPreformattedChar
        {mso-style-name:"HTML Preformatted Char";
        mso-style-priority:99;
        mso-style-link:"HTML Preformatted";
        font-family:Consolas;
        color:black;}
p.avgcert, li.avgcert, div.avgcert
        {mso-style-name:avgcert;
        mso-style-priority:99;
        mso-margin-top-alt:auto;
        margin-right:0cm;
        mso-margin-bottom-alt:auto;
        margin-left:0cm;
        font-size:12.0pt;
        font-family:"Times New Roman","serif";
        color:black;}
span.EmailStyle22
        {mso-style-type:personal;
        font-family:"Calibri","sans-serif";
        color:#1F497D;}
span.EmailStyle23
        {mso-style-type:personal;
        font-family:"Calibri","sans-serif";
        color:#1F497D;}
span.EmailStyle24
        {mso-style-type:personal;
        font-family:"Calibri","sans-serif";
        color:#1F497D;}
span.EmailStyle25
        {mso-style-type:personal-reply;
        font-family:"Calibri","sans-serif";
        color:#1F497D;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;}
@page WordSection1
        {size:612.0pt 792.0pt;
        margin:72.0pt 72.0pt 72.0pt 72.0pt;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]--></head><body bgcolor=white lang=EN-NZ link=blue vlink=purple><div class=WordSection1><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>It doesn’t take “with” to break the Delphi refactorings.  Perfectly ordinary, healthy, unexceptional, uncomplex code can do that !!  I find the refactorings to be next to useless as a result – when they work at all they simply cannot be relied on to have worked <i>completely correctly.</i></span><o:p></o:p></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'><o:p>&nbsp;</o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>The one thing “with” <u>does</u> do is “break” the debugger, but even that isn’t accurate.  It is more accurate to say that “with” <b><i><u>reveals</u></i></b> a bug in the debugger (scope resolution that does not match that applied by the compiler) that should be fixed.<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'><o:p>&nbsp;</o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>There are very, very, VERY (one more time: <b><i>VERY</i></b>) few occasions when <b>with</b> should be used, but one that I see no problem with [sic] is:<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'><o:p>&nbsp;</o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>  with SomeComboBox do<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>     ItemIndex := Items.IndexOf( someStringValue );<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'><o:p>&nbsp;</o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'><o:p>&nbsp;</o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>(or at least I do when working with combobox/list classes that don’t provide a more convenient way of selecting an item by value, rather than index)<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'><o:p>&nbsp;</o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:Wingdings;color:#1F497D'>J</span><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'><o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'><o:p>&nbsp;</o:p></span></p><div><div style='border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0cm 0cm 0cm'><p class=MsoNormal><b><span lang=EN-US style='font-size:10.0pt;font-family:"Tahoma","sans-serif";color:windowtext'>From:</span></b><span lang=EN-US style='font-size:10.0pt;font-family:"Tahoma","sans-serif";color:windowtext'> delphi-bounces@delphi.org.nz [mailto:delphi-bounces@delphi.org.nz] <b>On Behalf Of </b>Alister Christie<br><b>Sent:</b> Friday, 21 January 2011 16:11<br><b>To:</b> NZ Borland Developers Group - Delphi List<br><b>Subject:</b> Re: [DUG] Variables stored<o:p></o:p></span></p></div></div><p class=MsoNormal><o:p>&nbsp;</o:p></p><p class=MsoNormal>With is pretty dangerous because of scoping issues - and it breaks all the refactorings.&nbsp; I'd like to see a &quot;with f : MyDataModule.MyDataSet do&quot; or similar construct.&nbsp; I believe there is something like this in Prism.<br><br><br><br><o:p></o:p></p><pre>Alister Christie<o:p></o:p></pre><pre>Computers for People<o:p></o:p></pre><pre>Ph: 04 471 1849 Fax: 04 471 1266<o:p></o:p></pre><pre><a href="http://www.salespartner.co.nz">http://www.salespartner.co.nz</a><o:p></o:p></pre><pre>PO Box 13085<o:p></o:p></pre><pre>Johnsonville<o:p></o:p></pre><pre>Wellington <o:p></o:p></pre><p class=MsoNormal><br>On 21/01/2011 3:32 p.m., Ross Levis wrote: <o:p></o:p></p><p class=MsoNormal><span style='font-family:"Calibri","sans-serif"'>Yes.&nbsp; But I have done things like this.</span><o:p></o:p></p><p class=MsoNormal><span style='font-family:"Calibri","sans-serif"'>&nbsp;</span><o:p></o:p></p><p class=MsoNormal><span style='font-family:"Calibri","sans-serif"'>procedure DoSomething;</span><o:p></o:p></p><p class=MsoNormal><span style='font-family:"Calibri","sans-serif"'>begin</span><o:p></o:p></p><p class=MsoNormal><span style='font-family:"Calibri","sans-serif"'>&nbsp; with MainForm do</span><o:p></o:p></p><p class=MsoNormal><span style='font-family:"Calibri","sans-serif"'>&nbsp; begin</span><o:p></o:p></p><p class=MsoNormal><span style='font-family:"Calibri","sans-serif"'>&nbsp;&nbsp;&nbsp; …</span><o:p></o:p></p><p class=MsoNormal><span style='font-family:"Calibri","sans-serif"'>&nbsp; end;</span><o:p></o:p></p><p class=MsoNormal><span style='font-family:"Calibri","sans-serif"'>end;</span><o:p></o:p></p><p class=MsoNormal><span style='font-family:"Calibri","sans-serif"'>&nbsp;</span><o:p></o:p></p><p class=MsoNormal><span style='font-family:"Calibri","sans-serif"'>Definitely lazy.</span><o:p></o:p></p><p class=MsoNormal><span style='font-family:"Calibri","sans-serif"'>&nbsp;</span><o:p></o:p></p><div><div style='border:none;border-top:solid windowtext 1.0pt;padding:3.0pt 0cm 0cm 0cm;border-color:-moz-use-text-color -moz-use-text-color'><p class=MsoNormal><b><span lang=EN-US style='font-size:10.0pt;font-family:"Tahoma","sans-serif";color:windowtext'>From:</span></b><span lang=EN-US style='font-size:10.0pt;font-family:"Tahoma","sans-serif";color:windowtext'> <a href="mailto:delphi-bounces@delphi.org.nz">delphi-bounces@delphi.org.nz</a> [<a href="mailto:delphi-bounces@delphi.org.nz">mailto:delphi-bounces@delphi.org.nz</a>] <b>On Behalf Of </b>John Bird<br><b>Sent:</b> Friday, 21 January 2011 3:17 PM<br><b>To:</b> NZ Borland Developers Group - Delphi List<br><b>Subject:</b> Re: [DUG] Variables stored</span><o:p></o:p></p></div></div><p class=MsoNormal>&nbsp;<o:p></o:p></p><div><div><div><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Arial","sans-serif"'>Lazy? or simpler and convenient?</span><o:p></o:p></p></div><div><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Arial","sans-serif"'>&nbsp;</span><o:p></o:p></p></div><div><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Arial","sans-serif"'>plain functions that might be useful anywhere in any program are best done like this I would think.&nbsp;&nbsp; Examples are in Delphi units afterall, eg StrUtils</span><o:p></o:p></p></div><div><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Arial","sans-serif"'>&nbsp;</span><o:p></o:p></p></div><div><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Arial","sans-serif"'>John</span><o:p></o:p></p></div><div><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Arial","sans-serif"'>&nbsp;</span><o:p></o:p></p></div><div><p class=MsoNormal><span style='font-family:"Calibri","sans-serif";color:#1F497D'>I use some global variables.&nbsp; I also have what I assume are other bad habits like creating plain functions or procedures instead of declaring them inside the form class.&nbsp; Just lazy.</span><o:p></o:p></p><p class=MsoNormal>&nbsp;<o:p></o:p></p><p class=MsoNormal><span style='font-family:"Calibri","sans-serif";color:#1F497D'>Ross.</span><o:p></o:p></p><p class=MsoNormal>&nbsp;<o:p></o:p></p><div><div style='border:none;border-top:solid windowtext 1.0pt;padding:3.0pt 0cm 0cm 0cm;border-color:-moz-use-text-color&#13;&#10;                  -moz-use-text-color'><p class=MsoNormal><b><span lang=EN-US style='font-size:10.0pt;font-family:"Tahoma","sans-serif";color:windowtext'>From:</span></b><span lang=EN-US style='font-size:10.0pt;font-family:"Tahoma","sans-serif";color:windowtext'> <a href="mailto:delphi-bounces@delphi.org.nz">delphi-bounces@delphi.org.nz</a> [<a href="mailto:delphi-bounces@delphi.org.nz">mailto:delphi-bounces@delphi.org.nz</a>] <b>On Behalf Of </b>Jolyon Smith<br><b>Sent:</b> Friday, 21 January 2011 9:44 AM<br><b>To:</b> 'NZ Borland Developers Group - Delphi List'<br><b>Subject:</b> Re: [DUG] Variables stored</span><o:p></o:p></p></div></div><p class=MsoNormal>&nbsp;<o:p></o:p></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>Assignable typed constants are pointless.</span><o:p></o:p></p><p class=MsoNormal>&nbsp;<o:p></o:p></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>If you are going to declare a constant and then use a compiler switch to make it behave like a variable, then be honest and just use a variable!!</span><o:p></o:p></p><p class=MsoNormal>&nbsp;<o:p></o:p></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>Typed constants cannot even be used where “normal” constants can be:</span><o:p></o:p></p><p class=MsoNormal>&nbsp;<o:p></o:p></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>&nbsp;&nbsp;&nbsp; const</span><o:p></o:p></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ONE: Integer = 1;</span><o:p></o:p></p><p class=MsoNormal>&nbsp;<o:p></o:p></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>&nbsp;&nbsp; procedure Foo(aIndex: Integer = ONE);&nbsp;&nbsp; // ERROR: Constant expression expected</span><o:p></o:p></p><p class=MsoNormal>&nbsp;<o:p></o:p></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>or:</span><o:p></o:p></p><p class=MsoNormal>&nbsp;<o:p></o:p></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>&nbsp; case iValue of</span><o:p></o:p></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>&nbsp;&nbsp;&nbsp; ONE: ;&nbsp; // ERROR: Constant expression expected</span><o:p></o:p></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>&nbsp; end;</span><o:p></o:p></p><p class=MsoNormal>&nbsp;<o:p></o:p></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>Remove the type declaration from the ONE const, and both compile just fine (note that this is independent of the Assigned Typed Constants compiler setting).</span><o:p></o:p></p><p class=MsoNormal>&nbsp;<o:p></o:p></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>A typed constant is to all intents and purposes a variable, and might as well be declared as such (note that you can initialise a unit variable as part of it’s declaration):</span><o:p></o:p></p><p class=MsoNormal>&nbsp;<o:p></o:p></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>&nbsp; var</span><o:p></o:p></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>&nbsp;&nbsp;&nbsp; ONE: Integer = 1;</span><o:p></o:p></p><p class=MsoNormal>&nbsp;<o:p></o:p></p><p class=MsoNormal>&nbsp;<o:p></o:p></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>One final comment – Delphi really has no concept of a “global” variable.&nbsp; The highest visibility is “unit variable”.&nbsp; You still have to explicitly “use” a unit to bring it into scope, and if two units declare variables of the same name normal scoping rules apply but you can explicitly qualify a reference using the unit name if you need to override the default scope.</span><o:p></o:p></p><p class=MsoNormal>&nbsp;<o:p></o:p></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>Most of the time global/unit variable is close enough that the distinction doesn’t matter, but when it comes to dogma the old rules that “global variables are the spawn of Satan himself” needs to be tempered in Delphi with the fact that they are a bit better “behaved” than the sort of global variable that those ritualistic rules were originally devised for.</span><o:p></o:p></p><p class=MsoNormal>&nbsp;<o:p></o:p></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>However, it is still true that the occasions when a unit variable is called for are relatively few, but they should not be simply outlawed for being something they are not.</span><o:p></o:p></p><p class=MsoNormal>&nbsp;<o:p></o:p></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:Wingdings;color:#1F497D'>J</span><o:p></o:p></p><p class=MsoNormal>&nbsp;<o:p></o:p></p><p class=MsoNormal>&nbsp;<o:p></o:p></p><p class=MsoNormal>&nbsp;<o:p></o:p></p><div><div style='border:none;border-top:solid windowtext 1.0pt;padding:3.0pt 0cm 0cm 0cm;border-color:-moz-use-text-color&#13;&#10;                  -moz-use-text-color'><p class=MsoNormal><b><span lang=EN-US style='font-size:10.0pt;font-family:"Tahoma","sans-serif";color:windowtext'>From:</span></b><span lang=EN-US style='font-size:10.0pt;font-family:"Tahoma","sans-serif";color:windowtext'> <a href="mailto:delphi-bounces@delphi.org.nz">delphi-bounces@delphi.org.nz</a> [<a href="mailto:delphi-bounces@delphi.org.nz">mailto:delphi-bounces@delphi.org.nz</a>] <b>On Behalf Of </b>Robert martin<br><b>Sent:</b> Friday, 21 January 2011 09:18<br><b>To:</b> NZ Borland Developers Group - Delphi List<br><b>Subject:</b> Re: [DUG] Variables stored</span><o:p></o:p></p></div></div><p class=MsoNormal>&nbsp;<o:p></o:p></p><p class=MsoNormal>Hi John<br><br>While all you suggest may be true (I don't know about the compiler setting stuff) I would strongly recommend anybody starting out with programming / delphi avoids using global variables.&nbsp; Its a nasty habit to get into :)&nbsp; <br><br>Also the compiler setting you talk about sounds dangerous as someone who didn't know about it could become highly confused looking at the code or trying to compile it on a fresh install of Delphi !<br><br>Also note I changed the typo spelling of the subject because it was annoying me :)<br><br>Cheers<br>Rob<br><br>On 21/01/2011 9:04 a.m., John Bird wrote: <o:p></o:p></p><div><div><div><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Arial","sans-serif"'>There is another way as well, you can declare simple global variables – depending where you declare it determines it’s scope - how visible it it is.</span><o:p></o:p></p></div><div><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Arial","sans-serif"'>&nbsp;</span><o:p></o:p></p></div><div><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Arial","sans-serif"'>In this example string2 can be seen by any unit that uses this one, just as Form11 (the particular instance of TForm11, and is also a global variable) is visible.</span><o:p></o:p></p></div><div><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Arial","sans-serif"'>&nbsp;</span><o:p></o:p></p></div><div><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Arial","sans-serif"'>String3 can be seen by all procedures in this unit, but not by anywhere else.&nbsp;&nbsp;&nbsp; If you have lots of simple variables to store and they don’t need to be inherited etc this is the simplest way to do it.</span><o:p></o:p></p></div><div><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Arial","sans-serif"'>&nbsp;</span><o:p></o:p></p></div><div><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Arial","sans-serif"'>You can take this further:</span><o:p></o:p></p></div><div><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Arial","sans-serif"'>If I have lots of constants to declare, or variables to store I create a unit which is code only (no classes) eg called storeunit and declare all the constants and variables I want there, any form or unit that wants access to all these variables just has to add storeunit to its uses clause.&nbsp;&nbsp; This centralises all such declarations in one place away from a form and is very tidy.&nbsp;&nbsp; I will often put simple global functions and procedures in here too, as they also become globally available, eg various standard ways for formatting dates and strings.&nbsp;&nbsp; Also this unit can be uses in different projects as well.&nbsp;&nbsp; For this just go to File/New/Unit&nbsp;&nbsp; and the IDE gives you a new blank unit already to add stuff to – a simpler unit with no form or class stuff.</span><o:p></o:p></p></div><div><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Arial","sans-serif"'>&nbsp;</span><o:p></o:p></p></div><div><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Arial","sans-serif"'>Here string4 string5 integer1 integer2 integer3 can all be seen from anywhere that uses Storeunit</span><o:p></o:p></p></div><div><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Arial","sans-serif"'>&nbsp;</span><o:p></o:p></p></div><div><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Arial","sans-serif"'>It depends on whether you like using global variables or not.&nbsp;&nbsp; Also its a good idea to use a clear naming convention for such variables.</span><o:p></o:p></p></div><div><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Arial","sans-serif"'>&nbsp;</span><o:p></o:p></p></div><div><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Arial","sans-serif"'>There are other tricks you can do too -&nbsp; you can alter compiler settings to allow assignable constants for a procedure, then any values assigned here will be preserved between calls to the procedure.&nbsp;&nbsp; But that seems to be confusing to me, as it really becomes a variable and not a constant.&nbsp;&nbsp; I saw that used in and example where the program wanted a counter of the number of times the procedure was called, and the counter constant in the procedure was assigned a new value each time the procedure was called, its quite a tidy way to do that sort of thing.&nbsp; In this case the scope (visibility) of the variable is totally limited to the one procedure.</span><o:p></o:p></p></div><div><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Arial","sans-serif"'>&nbsp;</span><o:p></o:p></p></div><div><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Arial","sans-serif"'>&nbsp;</span><o:p></o:p></p></div><div><p class=MsoNormal><tt><span style='font-size:10.0pt'>type</span></tt><span style='font-family:"Courier New"'><br></span><tt><span style='font-size:10.0pt'>&nbsp; TForm11 = class(TForm)</span></tt><span style='font-family:"Courier New"'><br></span><tt><span style='font-size:10.0pt'>&nbsp;&nbsp;&nbsp; Button1: TButton;</span></tt><span style='font-family:"Courier New"'><br></span><tt><span style='font-size:10.0pt'>&nbsp;&nbsp;&nbsp; procedure Button1Click(Sender: TObject);</span></tt><span style='font-family:"Courier New"'><br></span><tt><span style='font-size:10.0pt'>&nbsp; private</span></tt><span style='font-family:"Courier New"'><br></span><tt><span style='font-size:10.0pt'>&nbsp;&nbsp;&nbsp; { Private declarations }</span></tt><span style='font-family:"Courier New"'><br></span><tt><span style='font-size:10.0pt'>&nbsp; public</span></tt><span style='font-family:"Courier New"'><br></span><tt><span style='font-size:10.0pt'>&nbsp;&nbsp;&nbsp; { Public declarations }</span></tt><span style='font-family:"Courier New"'><br></span><tt><span style='font-size:10.0pt'>&nbsp;&nbsp;&nbsp; MyString : string;</span></tt><span style='font-family:"Courier New"'><br></span><tt><span style='font-size:10.0pt'>&nbsp; end;</span></tt><span style='font-family:"Courier New"'><br><br></span><tt><span style='font-size:10.0pt'>var</span></tt><span style='font-family:"Courier New"'><br></span><tt><span style='font-size:10.0pt'>&nbsp; Form11: TForm11;</span></tt><o:p></o:p></p></div><div><p class=MsoNormal><tt><span style='font-size:10.0pt'>&nbsp; string2: string;</span></tt><span style='font-family:"Courier New"'><br><br></span><tt><span style='font-size:10.0pt'>implementation</span></tt><o:p></o:p></p></div><div><p class=MsoNormal><tt><span style='font-size:10.0pt'>uses storeunit;</span></tt><o:p></o:p></p></div><div><p class=MsoNormal><span style='font-family:"Courier New"'><br></span><tt><span style='font-size:10.0pt'>{$R *.dfm}</span></tt><o:p></o:p></p></div><div><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Arial","sans-serif"'>&nbsp;</span><o:p></o:p></p></div><div><p class=MsoNormal><tt><span style='font-size:10.0pt'>var</span></tt><o:p></o:p></p></div><div><p class=MsoNormal><tt><span style='font-size:10.0pt'>string3: string;</span></tt><o:p></o:p></p></div><div><p class=MsoNormal><span style='font-family:"Courier New"'><br><br></span><tt><span style='font-size:10.0pt'>procedure TForm11.Button1Click(Sender: TObject);</span></tt><span style='font-family:"Courier New"'><br></span><tt><span style='font-size:10.0pt'>begin</span></tt><span style='font-family:"Courier New"'><br></span><tt><span style='font-size:10.0pt'>&nbsp; MyString := 'Hello, world!';</span></tt><o:p></o:p></p></div><div><p class=MsoNormal><tt><span style='font-size:10.0pt'>&nbsp; string2:=’Hello world2’;</span></tt><o:p></o:p></p></div><div><p class=MsoNormal style='margin-bottom:12.0pt'><tt><span style='font-size:10.0pt'>&nbsp; string5:=’Hello world5’;</span></tt><span style='font-family:"Courier New"'><br></span><tt><span style='font-size:10.0pt'>end;</span></tt><o:p></o:p></p></div><div><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Arial","sans-serif"'>&nbsp;</span><o:p></o:p></p></div><div><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New"'>unit Storeunit;</span><o:p></o:p></p></div><div><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Arial","sans-serif"'>&nbsp;</span><o:p></o:p></p></div><div><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New"'>interface</span><o:p></o:p></p></div><div><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Arial","sans-serif"'>&nbsp;</span><o:p></o:p></p></div><div><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New"'>var</span><o:p></o:p></p></div><div><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New"'>string4:string;</span><o:p></o:p></p></div><div><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New"'>string5:string;</span><o:p></o:p></p></div><div><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New"'>integer1:integer;</span><o:p></o:p></p></div><div><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New"'>integer2:integer;</span><o:p></o:p></p></div><div><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New"'>integer3:integer;</span><o:p></o:p></p></div><div><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Arial","sans-serif"'>&nbsp;</span><o:p></o:p></p></div><div><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New"'>implementation</span><o:p></o:p></p></div><div><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Arial","sans-serif"'>&nbsp;</span><o:p></o:p></p></div><div><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New"'>end.</span><o:p></o:p></p></div><div><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Arial","sans-serif"'>&nbsp;</span><o:p></o:p></p></div><div><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Arial","sans-serif"'>John</span><o:p></o:p></p></div><div><div><div><div><p class=MsoNormal><b><span style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'>From:</span></b><span style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'> <a href="mailto:marshland@marshland.co.nz" title="marshland@marshland.co.nz">Marshland Engineering</a> </span><o:p></o:p></p></div><div><p class=MsoNormal><b><span style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'>Sent:</span></b><span style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'> Thursday, January 20, 2011 3:45 PM</span><o:p></o:p></p></div><div><p class=MsoNormal><b><span style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'>To:</span></b><span style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'> <a href="mailto:delphi@delphi.org.nz" title="delphi@delphi.org.nz">delphi@delphi.org.nz</a> </span><o:p></o:p></p></div><div><p class=MsoNormal><b><span style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'>Subject:</span></b><span style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'> [DUG] Variabels stored</span><o:p></o:p></p></div></div></div><div><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Arial","sans-serif"'>&nbsp;</span><o:p></o:p></p></div></div><div><div><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Arial","sans-serif"'>Is there a way to store variables so I can use them from one procedure to another?&nbsp; </span><o:p></o:p></p></div><div><p class=MsoNormal><span style='font-family:"Calibri","sans-serif"'>&nbsp;</span><o:p></o:p></p></div><div><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Arial","sans-serif"'>I have been currently storing them in hidden edit.text boxes on the form but there must be a better way. </span><o:p></o:p></p></div><div><p class=MsoNormal><span style='font-family:"Calibri","sans-serif"'>&nbsp;</span><o:p></o:p></p></div><div><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Arial","sans-serif"'>Cheers Wallace</span><o:p></o:p></p></div><div class=MsoNormal align=center style='text-align:center'><span style='font-family:"Calibri","sans-serif"'><hr size=2 width="100%" align=center></span></div><p class=MsoNormal><span style='font-family:"Calibri","sans-serif"'>_______________________________________________<br>NZ Borland Developers Group - Delphi mailing list<br>Post: <a href="mailto:delphi@delphi.org.nz">delphi@delphi.org.nz</a><br>Admin: <a href="http://delphi.org.nz/mailman/listinfo/delphi">http://delphi.org.nz/mailman/listinfo/delphi</a><br>Unsubscribe: send an email to <a href="mailto:delphi-request@delphi.org.nz">delphi-request@delphi.org.nz</a> with Subject: unsubscribe</span><o:p></o:p></p></div></div></div><pre>&nbsp;<o:p></o:p></pre><pre>&nbsp;<o:p></o:p></pre><pre>_______________________________________________<o:p></o:p></pre><pre>NZ Borland Developers Group - Delphi mailing list<o:p></o:p></pre><pre>Post: <a href="mailto:delphi@delphi.org.nz">delphi@delphi.org.nz</a><o:p></o:p></pre><pre>Admin: <a href="http://delphi.org.nz/mailman/listinfo/delphi">http://delphi.org.nz/mailman/listinfo/delphi</a><o:p></o:p></pre><pre>Unsubscribe: send an email to <a href="mailto:delphi-request@delphi.org.nz">delphi-request@delphi.org.nz</a> with Subject: unsubscribe<o:p></o:p></pre><p class=MsoNormal style='margin-bottom:12.0pt'>&nbsp;<o:p></o:p></p><p class=avgcert>No virus found in this message.<br>Checked by AVG - <a href="http://www.avg.com">www.avg.com</a><br>Version: 10.0.1191 / Virus Database: 1435/3392 - Release Date: 01/20/11<o:p></o:p></p><div class=MsoNormal align=center style='text-align:center'><span style='font-family:"Calibri","sans-serif"'><hr size=3 width="100%" align=center></span></div><p class=MsoNormal><span style='font-family:"Calibri","sans-serif"'>_______________________________________________<br>NZ Borland Developers Group - Delphi mailing list<br>Post: <a href="mailto:delphi@delphi.org.nz">delphi@delphi.org.nz</a><br>Admin: <a href="http://delphi.org.nz/mailman/listinfo/delphi">http://delphi.org.nz/mailman/listinfo/delphi</a><br>Unsubscribe: send an email to <a href="mailto:delphi-request@delphi.org.nz">delphi-request@delphi.org.nz</a> with Subject: unsubscribe</span><o:p></o:p></p></div></div></div><pre><o:p>&nbsp;</o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre>_______________________________________________<o:p></o:p></pre><pre>NZ Borland Developers Group - Delphi mailing list<o:p></o:p></pre><pre>Post: <a href="mailto:delphi@delphi.org.nz">delphi@delphi.org.nz</a><o:p></o:p></pre><pre>Admin: <a href="http://delphi.org.nz/mailman/listinfo/delphi">http://delphi.org.nz/mailman/listinfo/delphi</a><o:p></o:p></pre><pre>Unsubscribe: send an email to <a href="mailto:delphi-request@delphi.org.nz">delphi-request@delphi.org.nz</a> with Subject: unsubscribe<o:p></o:p></pre></div></body></html>