<?xml-stylesheet type='text/xsl' href='rssstyle.xslt' version='1.0'?>
<rss version="2.00"><channel><title>Delphi Blog</title><description>Delphi Blog</description><link>http://www.rightclick.com.au/delphi/</link><language>en-us</language><item><title>iPod my Car</title><link>http://www.rightclick.com.au/delphi/00000098.html</link><description>&lt;P&gt;The only way this is Delphi related is that I used it to listen to a Borland Radio show. &lt;A href="http://www.rightclick.com.au/brad/ipodmycar.html"&gt;I put an iPod in my car&lt;/A&gt;.&lt;/P&gt;</description><pubDate>Sun, 29 May 2005 01:36 GMT</pubDate></item><item><title>D2005</title><link>http://www.rightclick.com.au/delphi/00000099.html</link><description>&lt;P&gt;When Delphi 2005 works it works well, &lt;A href="http://www.gnegg.ch/archives/productive_with_delphi_2005.html"&gt;Here are some of the best features&lt;/A&gt;.&lt;/P&gt;</description><pubDate>Sun, 29 May 2005 01:36 GMT</pubDate></item><item><title>Making Wrong Code Not Compile</title><link>http://www.rightclick.com.au/delphi/00000096.html</link><description>&lt;P align=left&gt;The advantage of a strongly typed language like Delphi is you can use the compiler to help find a lot of bugs.&lt;BR&gt;&lt;/P&gt;
&lt;DIV class=quote align=left&gt;&lt;A href="http://www.codefez.com/Home/tabid/36/articleType/ArticleView/articleId/119/MakingWrongCodeNotCompile.aspx"&gt;Codefez &amp;gt; Home &amp;gt; Making Wrong Code Not Compile&lt;/A&gt;&lt;BR&gt;In fact, I'd have to say that if you have "primitive data" that has other attributes or properties, or that is constrained in some way, then it should be an object, an instance of a class that you write to enforce the constraints, etc. Let the compiler take the heavy load of making sure you use the data properly, not some wacky naming convention.&lt;/DIV&gt;&lt;BR&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description><pubDate>Fri, 27 May 2005 01:36 GMT</pubDate></item><item><title>Delphi 2005 for .Net</title><link>http://www.rightclick.com.au/delphi/00000097.html</link><description>&lt;P&gt;I have been using Delphi for DotNet 2005 full time for a month now. I would love it, I would love all the features but the damn thing locks up so much that it is amost unuseable and I have all three patches on a brand new PC.&lt;/P&gt;
&lt;P&gt;It is &lt;EM&gt;almost&lt;/EM&gt; enough to move me to Visual Studio. &lt;STRONG&gt;Fix the bugs Borland&lt;/STRONG&gt;.&lt;/P&gt;</description><pubDate>Fri, 27 May 2005 01:36 GMT</pubDate></item><item><title>The Code Project - TraceTool 4.1: A trace framework and a visual trace utility - C# Programming</title><link>http://www.rightclick.com.au/delphi/00000095.html</link><description>&lt;P align=left&gt;This may by the replacement I use for &lt;A href="http://delphree.clexpert.com/pages/app_OVERSEER.htm"&gt;overseer&lt;/A&gt;. I am now doing .Net development in Delphi 2005. So I need a new logging tool, this one works with most languages and is written in Delphi if I need to extend it.&lt;/P&gt;
&lt;P align=left&gt;&lt;BR&gt;&lt;/P&gt;
&lt;DIV class=quote align=left&gt;&lt;A href="http://www.codeproject.com/csharp/TraceTool.asp?df=100&amp;amp;forumid=28124&amp;amp;exp=0&amp;amp;select=1095646"&gt;The Code Project - TraceTool 4.1: A trace framework and a visual trace utility - C# Programming&lt;/A&gt;&lt;BR&gt;The problem when debugging a multi tier system (with perhaps multiple languages) is that traces are placed in different log files, in different formats and in different locations on the network.&lt;/DIV&gt;
&lt;P align=left&gt;Update: I switched to &lt;A href="http://www.raize.com/DevTools/CodeSite/Default.asp"&gt;Codesite&lt;/A&gt;.&lt;BR&gt;&amp;nbsp;&lt;/P&gt;
&lt;P align=left&gt;&amp;nbsp;&lt;/P&gt;</description><pubDate>Sat, 30 Apr 2005 01:36 GMT</pubDate></item><item><title>User Interface Design</title><link>http://www.rightclick.com.au/delphi/00000094.html</link><description>&lt;P align=left&gt;UI Design is a topic I always pay close attention to. It is often overlooked yet something where a little effort can give a huge return. It is usually no more expensive to write a good UI. On the flipside a bad UI will incure hidden costs with support and unhappy users.&lt;BR&gt;&lt;/P&gt;
&lt;P align=left&gt;This quick read will get a few easy to implement top level points. Use it yo go back and tweak your application. The costs will be little but the rewards will be a happy user.&lt;/P&gt;
&lt;DIV class=quote align=left&gt;&lt;A href="http://www.sylvantech.com/%7Etalin/projects/ui_design.html"&gt;A Summary of User Interface Design Principles&lt;/A&gt;&lt;BR&gt;This document represents a compilation of fundamental principles for designing user interfaces, which have been drawn from various books on interface design, as well as my own experience. Most of these principles can be applied to either command-line or graphical environments.&lt;/DIV&gt;
&lt;P align=left&gt;&lt;BR&gt;&amp;nbsp;&lt;/P&gt;
&lt;P align=left&gt;&amp;nbsp;&lt;/P&gt;</description><pubDate>Sat, 23 Apr 2005 23:12 GMT</pubDate></item><item><title>Another NET Developer's Guide?</title><link>http://www.rightclick.com.au/delphi/00000092.html</link><description>&lt;P align=left&gt;This is not really a surprise. I am buying less Delphi books these days. It is a great product but I get any new Delphi knowledge I need from blogs these days (via RSS)&lt;/P&gt;
&lt;P align=left&gt;&amp;nbsp;&lt;/P&gt;
&lt;DIV class=quote align=left&gt;"I'm sorry to say that I am not going to write a follow up to the Delphi for .NET book." &lt;A href="http://xavierpacheco.com/xlog/archive/2005/04/21/257.aspx"&gt;Xavier Pacheco&lt;/A&gt;&lt;/DIV&gt;
&lt;P align=left&gt;&lt;BR&gt;&amp;nbsp;&lt;/P&gt;
&lt;P align=left&gt;&amp;nbsp;&lt;/P&gt;</description><pubDate>Fri, 22 Apr 2005 20:48 GMT</pubDate></item><item><title>How to Use Actions, Action Lists, and Action Managers</title><link>http://www.rightclick.com.au/delphi/00000093.html</link><description>&lt;P&gt;Delphi 4 and above support actions. If you have not used them take a read of &lt;A href="http://bdn.borland.com/article/borcon/files/6102/paper/6102.html"&gt;this borland paper&lt;/A&gt; by &lt;A href="http://www.blong.com/"&gt;Brian Long&lt;/A&gt; from 2003. It give a good introduction to what they can do. Since I was introduced to them they have become very useful&lt;!--StartFragment --&gt;&lt;/P&gt;</description><pubDate>Fri, 22 Apr 2005 20:48 GMT</pubDate></item><item><title>Delphi Papers Online</title><link>http://www.rightclick.com.au/delphi/00000091.html</link><description>&lt;P&gt;Borland has put the papers from the &lt;A href="http://bdn.borland.com/borcon2003/delphi/0,1418,10094,00.html"&gt;2003&lt;/A&gt; and &lt;A href="http://bdn.borland.com/borcon2004/delphi/0,1418,10125,00.html"&gt;2004&lt;/A&gt; conferences online. I'll go through them and link to the interesting ones here.&lt;/P&gt;</description><pubDate>Thu, 21 Apr 2005 01:36 GMT</pubDate></item><item><title>Title Bar Size</title><link>http://www.rightclick.com.au/delphi/00000089.html</link><description>&lt;P&gt;I develop under Windows XP I have always been annoyed with how much space the title bar takes up under windows XP if you turn the themes on. When you are on a small monitor it can use precious pixels.&lt;/P&gt;
&lt;P&gt;This is what it normally looks like&lt;/P&gt;
&lt;P&gt;&lt;IMG alt="Title Bar" hspace=0 src="screensettingslarge.jpg" align=baseline border=0&gt;&lt;/P&gt;
&lt;P&gt;But it can be resized smaller.&lt;/P&gt;
&lt;P&gt;&lt;IMG alt="Smaller Title Bar" hspace=0 src="screensettingssmall.jpg" align=baseline border=0&gt;&lt;/P&gt;
&lt;P&gt;You just change the display settings here.&lt;/P&gt;
&lt;P&gt;&lt;IMG alt="Display Settings" hspace=0 src="screensettings.jpg" align=baseline border=0&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description><pubDate>Thu, 27 Jan 2005 01:36 GMT</pubDate></item><item><title>New Job</title><link>http://www.rightclick.com.au/delphi/00000090.html</link><description>&lt;P&gt;Sorry for the break in posting I am getting a new job.&lt;/P&gt;</description><pubDate>Wed, 06 Apr 2005 01:36 GMT</pubDate></item><item><title>Debug only what you want to debug</title><link>http://www.rightclick.com.au/delphi/00000088.html</link><description>&lt;P&gt;&lt;FONT color=#333333&gt;Write this down:&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#333333&gt;{$D-,L-}&lt;/FONT&gt;&lt;/P&gt;&lt;FONT color=#333333&gt;
&lt;P&gt;If you add this compiler directive to your Delphi unit the IDE wont try to step into it when you debug.&lt;/P&gt;
&lt;P&gt;This is extremely useful if you have units the debugger steps into often, usually because they respond to messages or do painting, but you know they are bug free and do not need to be debugged.&lt;/P&gt;
&lt;P&gt;If you do need to step into the unit just comment out the complier directives.&lt;/P&gt;
&lt;P&gt;I guarantee you will be more efficient debugging once you use this directive. You can get advance by wrapping the compiler directive above in another directive to allow it to be conditionally applied depending on what you are debugging.&lt;/P&gt;
&lt;P&gt;{$IFDEF DEBUG_ALL&lt;BR&gt;{$D+,L+}&lt;BR&gt;{$ELSE}&lt;BR&gt;{$D-,L-}&lt;BR&gt;{$ENDIF}&lt;/P&gt;
&lt;P&gt;Note: All of these directives apply to the whole unit and cannot be used to wrap a procedure or code section.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description><pubDate>Fri, 21 Jan 2005 01:36 GMT</pubDate></item><item><title>Finding Delphi Apps</title><link>http://www.rightclick.com.au/delphi/00000085.html</link><description>&lt;P&gt;This is an old trick. If you want to know if an app was written in Delphi. In the task bar right click on it. If the menu only has three choices: Restore, Minimise, Close then it is most likely a Delphi app.&lt;/P&gt;
&lt;P&gt;This is not 100% accurate but it is right most of the time. There is a &lt;A href="http://www.howtodothings.com/showarticle.asp?article=612"&gt;fix&lt;/A&gt; for it which is why it is not right all the time.&lt;/P&gt;</description><pubDate>Mon, 17 Jan 2005 13:36 GMT</pubDate></item><item><title>Day 2ish of Delphi 2005</title><link>http://www.rightclick.com.au/delphi/00000084.html</link><description>&lt;P align=left&gt;&lt;FONT color=#333333&gt;Now I am getting this trying to install some packages. I have already spent 2 hours on it.&lt;/FONT&gt;&lt;/P&gt;
&lt;P align=left&gt;&lt;FONT color=#333333&gt;&lt;FONT face="Courier New" size=2&gt;---------------------------&lt;BR&gt;Error&lt;BR&gt;---------------------------&lt;BR&gt;Cannot load package 'rtl70.'&amp;nbsp; It contains unit 'ZLib,'which is also contained in package 'rtl90'&lt;BR&gt;---------------------------&lt;BR&gt;OK&amp;nbsp;&amp;nbsp; &lt;BR&gt;---------------------------&lt;/FONT&gt;&lt;BR&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P align=left&gt;&lt;FONT color=#333333&gt;None of my google searches have found a reason for it and I do not like any of the work arounds.&lt;/P&gt;&lt;/FONT&gt;
&lt;P align=left&gt;&lt;STRONG&gt;Update:&lt;/STRONG&gt; It seems to be a path issue.&lt;/P&gt;
&lt;P align=left&gt;&lt;STRONG&gt;Update2:&lt;/STRONG&gt; This is what I did to fix it.&lt;/P&gt;
&lt;P align=left&gt;Find all my Delphi 7 BPLs in my system32 folder. Then I moved them to a new folder on my desktop. Basically moved them out of my path. Once I did this Delphi asked me to recompile another BPL and then it was all done.&lt;/P&gt;
&lt;P align=left&gt;I have not had to use Delphi 7.0 any more so I have not moved the components back but I am sure it would work.&lt;/P&gt;</description><pubDate>Mon, 17 Jan 2005 13:36 GMT</pubDate></item><item><title>Just 1 line of code.</title><link>http://www.rightclick.com.au/delphi/00000087.html</link><description>&lt;P align=left&gt;I was fixing/debugging/enhancing some code and came across this 1 line of code.&lt;BR&gt;&amp;nbsp;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;FONT face="Courier New"&gt;PrintSendStatement(1,sessionStatementGrid);&lt;/FONT&gt;&lt;BR&gt;&amp;nbsp;&lt;BR&gt;The line was so good yet so bad all at once. This is what I was able to work out just by looking at this line of code.&lt;BR&gt;&amp;nbsp;&lt;BR&gt;Firstly it was calling a procedure named PrintSendStatement. Which seems like a well named procedure I can guess exactly what it does. The code that prints statements and the code that sends statements must be very similar so one procedure that does both seems reasonable. I have no idea the scope of the called procedure but from it's name it does not seem relevant. Score: &lt;STRONG&gt;+1&lt;/STRONG&gt;&lt;BR&gt;&amp;nbsp;&lt;BR&gt;The second parameter is the number 1. This just kills me. I can see another line that calls the same procedure with a zero as the first parameter. Without further digging I have no idea what zero and one mean other than guessing one prints and the other one does not. A constant would have been super cool here. It would have taken maybe 30 seconds for the original developer to do. Now it will take me and every other developer for the rest of time 30 seconds to look it up. Score &lt;STRONG&gt;-2&lt;/STRONG&gt;&lt;BR&gt;&amp;nbsp;&lt;BR&gt;The third parameter is a grid. Which surprised me as I would have expected a different colection or a single variable to be passed. A grid is a weird collection to use so it told me something. It told me that PrintSendStatement probabley had a very local scope and it needed a grid as a parameter. No-one would choose a grid as a parameter so it must be required. Why? Grids allow the user to select or multiselect records. I can infer that PrintSendInvoice will print or send the select records in the grid. Score &lt;STRONG&gt;+1&lt;/STRONG&gt;. But I'm taking off another point because if PrintSendInvoice is local then constants really should have been used, the developer can't fall back on the excuse 'I copied the code and that is the way it was'.&lt;BR&gt;&amp;nbsp;&lt;BR&gt;&lt;STRONG&gt;Total Score : -1.&lt;BR&gt;&lt;/STRONG&gt;&amp;nbsp;&lt;BR&gt;So now I have to dig into PrintSendStatement and see what it does. I didn't want to do this. I was fixing something else. I really need a timesheet code to charge back the original developer and bill him/her.&lt;BR&gt;&amp;nbsp;&lt;BR&gt;Should I put constants in now?&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;
&lt;DIV align=left&gt;Yes: That will save time for all developers going forward.&lt;/DIV&gt;
&lt;LI&gt;
&lt;DIV align=left&gt;No: I'm not here to touch that code. Plus I'd have to search for all the ones and zeros to keep things consistent. This could take a while.&lt;/DIV&gt;
&lt;LI&gt;
&lt;DIV align=left&gt;Compromise: Just add comments at this location to help the next developer without creating any new bugs.&lt;/DIV&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P align=left&gt;&lt;BR&gt;What would you do?&lt;BR&gt;&amp;nbsp;&lt;BR&gt;&lt;/P&gt;</description><pubDate>Mon, 17 Jan 2005 13:36 GMT</pubDate></item></channel></rss>
