﻿<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xml:base="http://www.howtodothings.com" xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel>
 <title>HowToDoThings.com Elite Author Articles</title>
 <link>http://www.howtodothings.com/elite_author_rss/Peter5</link>
 <description>Feeds for only Elite Authors</description>
 <language>en</language>
<item>
 <title>Purchase order lines</title>
 <link>http://www.howtodothings.com/computers/a1516-purchase-order-lines.html</link>
 <description>&lt;p&gt;When creating an association in ECO you are not guaranteed the order in which the objects at the end of the association will be presented.&amp;nbsp; For this reason ECO provides a Boolean &amp;quot;ordered&amp;quot; property on association ends.&lt;/p&gt;
&lt;p&gt; When you set Ordered = True in your model and then generate your database, ECO will create an additional column in your database identifying the sequence of the objects.&lt;/p&gt;
&lt;p&gt; I have just been creating SalesInvoice / SalesInvoiceLine classes and chose to have an ordered association, basically because it is standard industry practise to identify each line of an Invoice/Order with a sequencial number, making it easily identifyable when discussing it.&lt;/p&gt;
&lt;p&gt; It would have been nice if I could have used an OCL derived attribute with an expression similar to this:&lt;/p&gt;
&lt;p&gt;this.SalesInvoice.lines-&amp;gt;indexOf(self)&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.howtodothings.com/computers/a1516-purchase-order-lines.html&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <comments>http://www.howtodothings.com/computers/a1516-purchase-order-lines.html#comments</comments>
 <category domain="http://www.howtodothings.com/computers/c39-delphi.html">Delphi</category>
 <pubDate>Tue, 23 Aug 2005 05:23:00 -0500</pubDate>
 <dc:creator>Peter5</dc:creator>
 <guid isPermaLink="false">638 at http://www.howtodothings.com</guid>
</item>
<item>
 <title>Reusable class patterns</title>
 <link>http://www.howtodothings.com/computers/a1515-reusable-class-patterns.html</link>
 <description>&lt;p&gt;I&#039;m designing a new piece of software using ECO Modeler, which I will implement using ECO 2.&lt;br /&gt;As I have been modelling the business classes I have been paying special attention to creating classes in patterns that I will be able to reuse in different applications.&lt;/p&gt;
&lt;p&gt;&lt;u&gt;&lt;strong&gt;PATTERN 1: Contact information&lt;/strong&gt;&lt;/u&gt;&lt;br /&gt;In the past I have said it, and I will say it again!  Composition is more powerful than inheritance!&lt;br /&gt;My contact information pattern is a good example of this.  Different types of class often require some kind of contact information (telephone numbers, email addresses, etc).  To save time reproducing classes many people will jump straight in and create a &amp;quot;Contact&amp;quot; class which has this various information.  Then they will descend other classes such as [Company] and [Person] from this class.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.howtodothings.com/computers/a1515-reusable-class-patterns.html&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <comments>http://www.howtodothings.com/computers/a1515-reusable-class-patterns.html#comments</comments>
 <category domain="http://www.howtodothings.com/computers/c152-net.html">Other</category>
 <pubDate>Wed, 17 Aug 2005 09:09:00 -0500</pubDate>
 <dc:creator>Peter5</dc:creator>
 <guid isPermaLink="false">637 at http://www.howtodothings.com</guid>
</item>
<item>
 <title>How BoldTreeView works</title>
 <link>http://www.howtodothings.com/computers/a1505-how-boldtreeview-works.html</link>
 <description>&lt;p&gt;This is just a quick set of instructions rather than a comprehensive article.&amp;nbsp; It is a copy of a posting I made in a Borland newsgroup...&lt;/p&gt;
&lt;p&gt; I&#039;ll give you an example of one I did  recently....&lt;/p&gt;
&lt;p&gt; 01) Set the BoldHandle property to your  BoldSystemHandle&lt;br /&gt; 02) Double-click the treeview to bring up the editor&lt;br /&gt; 03)  Click the &amp;quot;Root&amp;quot; element&lt;br /&gt; 04) If it hasn&#039;t already got a child, click &amp;quot;Add  List Fragment&amp;quot;&lt;br /&gt; 05) In ElementExpression enter the main OCL, for  example&lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;quot;Customer.allInstances&amp;quot;&lt;br /&gt; 06) Set InterpretAsList to True&lt;br /&gt; 07)  Set ControllerExpression to &#039;Customer&#039; (including quotes)&lt;/p&gt;
&lt;p&gt; What you have  now is a root that grabs a list of Customers.&amp;nbsp; The BTV knows that it needs a  &amp;quot;node controller&amp;quot; called &amp;quot;Customer&amp;quot; to represent each item in the list  (which is why InterpretAsList = True).&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.howtodothings.com/computers/a1505-how-boldtreeview-works.html&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <comments>http://www.howtodothings.com/computers/a1505-how-boldtreeview-works.html#comments</comments>
 <category domain="http://www.howtodothings.com/computers/c39-delphi.html">Delphi</category>
 <pubDate>Wed, 03 Aug 2005 04:22:00 -0500</pubDate>
 <dc:creator>Peter5</dc:creator>
 <guid isPermaLink="false">627 at http://www.howtodothings.com</guid>
</item>
<item>
 <title>Generating an article rating image</title>
 <link>http://www.howtodothings.com/computers/a1491-generating-an-article-rating-image.html</link>
 <description>&lt;p&gt;You may have noticed a couple of new icons at the top right of each article?  The first new icon shows 5 grey stars, these fill up as gold stars as people specifying a rating when they comment on an article (the second new icon).  I thought I&amp;#39;d share the source code which generates this image.&lt;/p&gt;
&lt;p&gt; The first thing to do is to have an &amp;lt;img&amp;gt; tag in your source code which looks something like this&lt;br /&gt;&amp;lt;img alt=&amp;quot;Rating&amp;quot;&lt;br /&gt;   src=&amp;#39;/ArticleRatingImage.aspx?rating=&amp;lt;%# DataBinder.Eval(Article, &amp;quot;AverageRating&amp;quot;) %&amp;gt;&amp;#39;&lt;br /&gt; &amp;gt;&lt;br /&gt; Rather than linking directly to an image URL this &amp;lt;img&amp;gt; references an ASPX page with a single parameter, &amp;quot;rating=x&amp;quot;, where &amp;quot;x&amp;quot; is the AverageRating property of an Article property of the current page.&lt;/p&gt;
&lt;p&gt; &lt;u&gt;&lt;strong&gt;Generating the image&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.howtodothings.com/computers/a1491-generating-an-article-rating-image.html&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <comments>http://www.howtodothings.com/computers/a1491-generating-an-article-rating-image.html#comments</comments>
 <category domain="http://www.howtodothings.com/computers/c152-net.html">Other</category>
 <pubDate>Sun, 19 Jun 2005 03:59:00 -0500</pubDate>
 <dc:creator>Peter5</dc:creator>
 <guid isPermaLink="false">621 at http://www.howtodothings.com</guid>
</item>
<item>
 <title>Removing a background</title>
 <link>http://www.howtodothings.com/computers/a1485-removing-a-background.html</link>
 <description>&lt;p&gt;I recently took a photo of my little boy.  He was sitting on top of the car and I took the picture through the open sunroof.  In the background you could see a blue sky with white clouds, which I wanted to remove.&lt;/p&gt;
&lt;p&gt;Here is the original image:&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.howtodothings.com/computers/a1485-removing-a-background.html&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <comments>http://www.howtodothings.com/computers/a1485-removing-a-background.html#comments</comments>
 <category domain="http://www.howtodothings.com/computers/c468-office-software.html">Office Software</category>
 <pubDate>Wed, 18 May 2005 07:40:00 -0500</pubDate>
 <dc:creator>Peter5</dc:creator>
 <guid isPermaLink="false">620 at http://www.howtodothings.com</guid>
</item>
<item>
 <title>How To Find a Right Angle</title>
 <link>http://www.howtodothings.com/home-and-garden/a1483-how-to-find-a-right-angle.html</link>
 <description>&lt;p&gt;Here is a handy tip.&amp;nbsp; If ever you need to find a right angle, yet haven&#039;t got a right angle tool to hand you can use a simple mathematics trick (yes, your mathematics teacher really did teach you something you can use in real life).&lt;/p&gt;
&lt;p&gt; What you need to do is to cut three pieces of wood, it doesn&#039;t matter which unit you use but the lengths must be 3 units, 4 units, and 5 units.&lt;/p&gt;
&lt;p&gt; Attach the 3 and 4 lengths together at a right angle, and then finally conntect the 5 length piece to complete a triangle.&amp;nbsp; Once the 5 length is connected you will find that the angle where the 3 / 4 lengths attach are a perfect right angle.&lt;/p&gt;
&lt;p&gt; Well done Pythagoras!&lt;/p&gt;
</description>
 <comments>http://www.howtodothings.com/home-and-garden/a1483-how-to-find-a-right-angle.html#comments</comments>
 <category domain="http://www.howtodothings.com/home-and-garden/c102-home-maintenance--repair.html">Home Maintenance &amp;amp; Repair</category>
 <pubDate>Tue, 10 May 2005 02:16:00 -0500</pubDate>
 <dc:creator>Peter5</dc:creator>
 <guid isPermaLink="false">619 at http://www.howtodothings.com</guid>
</item>
<item>
 <title>Debugging IIS ISAPI modules</title>
 <link>http://www.howtodothings.com/computers/a1476-debugging-iis-isapi-modules.html</link>
 <description>&lt;p&gt;&lt;em&gt;Before I start I want to point out that this is not a product review.  I have found an excellent way to debug ISAPI DLLs and it happens to require a very inexpensive tool.  I just wanted to share this information as it has been so useful!&lt;br /&gt; &lt;/em&gt;&lt;br /&gt; I&amp;#39;ve been writing some web services recently using Delphi 7 and IIS 5 and it has been a real pain to debug them.&lt;/p&gt;
&lt;p&gt; I used to have a reference to a really good article explaining how to set up IIS as a process instead of a service and then use inetinfo.exe as the host app for the DLL, but I could no longer find it.  I tried various other articles / tools etc but was not happy with any of them.  Most articles didn&amp;#39;t work (thank goodness for XP System Restore) and most tools are targetted at web sites so returned &lt;strong&gt;text/html&lt;/strong&gt; instead of &lt;strong&gt;text/xml&lt;/strong&gt;, which confused my web service client.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.howtodothings.com/computers/a1476-debugging-iis-isapi-modules.html&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <comments>http://www.howtodothings.com/computers/a1476-debugging-iis-isapi-modules.html#comments</comments>
 <category domain="http://www.howtodothings.com/computers/c38-programming.html">Programming</category>
 <pubDate>Wed, 04 May 2005 01:26:00 -0500</pubDate>
 <dc:creator>Peter5</dc:creator>
 <guid isPermaLink="false">617 at http://www.howtodothings.com</guid>
</item>
<item>
 <title>Reading a tagged value</title>
 <link>http://www.howtodothings.com/computers/a1472-reading-a-tagged-value.html</link>
 <description>&lt;p&gt;ECO allows you to add TaggedValues (name/value pair) to your model at design time.&amp;nbsp; Here is how to retrieve the value of a TaggedValue at runtime.&lt;/p&gt;
&lt;p&gt; obj.AsIObject() gives IObject&lt;br /&gt; IObject.UmlType gives an IClassifier&lt;br /&gt; IClassifier is an IModelElement, therefore....&lt;br /&gt; IClassifier.TaggedValues[&#039;hello&#039;] gives ITaggedValue&lt;br /&gt; ITaggedValue.Value gives the string&lt;/p&gt;
&lt;p&gt;ClassDisplayName := &lt;br /&gt; &amp;nbsp; obj.AsIObject().UmlType.TaggedValues[&#039;EcoExtensions.DisplayName&#039;];&lt;/p&gt;
&lt;p&gt; IProperty is also an IElement, so you can get tagged values for properties in exactly the same way.&lt;/p&gt;
&lt;p&gt;obj.AsIObject().Properties[&#039;Name&#039;].UmlType.......&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
</description>
 <comments>http://www.howtodothings.com/computers/a1472-reading-a-tagged-value.html#comments</comments>
 <category domain="http://www.howtodothings.com/computers/c39-delphi.html">Delphi</category>
 <pubDate>Wed, 20 Apr 2005 23:42:00 -0500</pubDate>
 <dc:creator>Peter5</dc:creator>
 <guid isPermaLink="false">615 at http://www.howtodothings.com</guid>
</item>
<item>
 <title>How to execute another EXE from VB .net</title>
 <link>http://www.howtodothings.com/computers/a1469-how-to-execute-another-exe-from-vb-net.html</link>
 <description>&lt;p&gt;Dim startInfo As System.Diagnostics.ProcessStartInfo&lt;br /&gt; Dim pStart As New System.Diagnostics.Process&lt;/p&gt;
&lt;p&gt; startInfo = New System.Diagnostics.ProcessStartInfo(&amp;quot;C:\file.exe&amp;quot;)&lt;/p&gt;
&lt;p&gt; pStart.StartInfo = startInfo&lt;br /&gt; pStart.Start()&lt;br /&gt; pStart.WaitForExit() &amp;#39;Your code will halt until the exe file has executed.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
</description>
 <comments>http://www.howtodothings.com/computers/a1469-how-to-execute-another-exe-from-vb-net.html#comments</comments>
 <category domain="http://www.howtodothings.com/computers/c152-net.html">Other</category>
 <pubDate>Sat, 16 Apr 2005 03:27:00 -0500</pubDate>
 <dc:creator>Peter5</dc:creator>
 <guid isPermaLink="false">612 at http://www.howtodothings.com</guid>
</item>
<item>
 <title>DataGrid.RowChanged event</title>
 <link>http://www.howtodothings.com/computers/a1468-datagridrowchanged-event.html</link>
 <description>&lt;p&gt;Have you ever needed a RowChanged event on a DataGrid so you can detect when the user scrolls through your data?  If so you have probably noticed that there isn&amp;#39;t one.&lt;/p&gt;
&lt;p&gt; To get to this event you need to go via the CurrencyManager, the following code illustrates how to do this&lt;/p&gt;
&lt;p&gt;CurrencyManager cm =&lt;br /&gt;   (CurrencyManager) DataGrid1.BindingContext[***];&lt;br /&gt; cm.PositionChanged += &lt;br /&gt;   new System.EventHandler(this.DataGridRowChanged);&lt;/p&gt;
&lt;p&gt; Where *** is the datasource for the control.  Each time the user changes to a different row the DataGridRowChanged event of your form will be executed.&lt;/p&gt;
</description>
 <comments>http://www.howtodothings.com/computers/a1468-datagridrowchanged-event.html#comments</comments>
 <category domain="http://www.howtodothings.com/computers/c152-net.html">Other</category>
 <pubDate>Thu, 14 Apr 2005 07:36:00 -0500</pubDate>
 <dc:creator>Peter5</dc:creator>
 <guid isPermaLink="false">611 at http://www.howtodothings.com</guid>
</item>
</channel>
</rss>
