<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="wordpress/wordpress-mu-1.2.3-2.2.1" -->
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	>

<channel>
	<title>Dave Nottage</title>
	<link>http://blogs.teamb.com/davenottage</link>
	<description></description>
	<pubDate>Tue, 03 Apr 2007 13:52:26 +0000</pubDate>
	<generator>http://wordpress.org/?v=wordpress-mu-1.2.3-2.2.1</generator>
	<language>en-AU</language>
			<item>
		<title>Taskbar/Task Manager/Vista issues in applications built with Delphi 2007</title>
		<link>http://blogs.teamb.com/davenottage/2007/04/03/33687</link>
		<comments>http://blogs.teamb.com/davenottage/2007/04/03/33687#comments</comments>
		<pubDate>Tue, 03 Apr 2007 13:52:26 +0000</pubDate>
		<dc:creator>Dave Nottage</dc:creator>
		
		<category><![CDATA[Delphi stuff]]></category>

		<guid isPermaLink="false">http://blogs.teamb.com/davenottage/2007/04/03/22859/</guid>
		<description><![CDATA[There has been a bit of discussion in the CodeGear newsgroups recently regarding some issues to do with applications built with Delphi 2007, and how it affects appearance on the Windows taskbar, the task manager list, and Vista. Some solutions suggest making some modifications to Forms.pas, however this doesn&#8217;t help those like me who build [...]]]></description>
			<content:encoded><![CDATA[<p><P><FONT face="Tahoma" size="2">There has been a bit of discussion in the <A href="http://www.codegear.com">CodeGear</A> newsgroups recently regarding some issues to do with applications built with <A href="http://www.codegear.com/delphi">Delphi 2007</A>, and how it affects appearance on the Windows taskbar, the task manager list, and Vista.</FONT></P> <P><FONT face="Tahoma" size="2">Some solutions suggest making some modifications to Forms.pas, however this doesn&#8217;t help those like me who build a number of applications using runtime packages.</FONT></P> <P><FONT face="Tahoma" size="2">As soon as I was aware of the issues, I set about finding the solutions, and like some people, found the newsgroups a valuable resource. I also needed to do a little experimenting in order to make things behave as they should,&nbsp;and the following is the result.</FONT></P> <P><FONT face="Tahoma" size="2">When creating a new application in Delphi 2007, the following appears in the project source:</FONT></P> <P><FONT face="Courier New" size="2"><STRONG>program</STRONG> Project1;</FONT></P> <P><FONT face="Courier New" size="2"><STRONG>uses</STRONG><BR>&nbsp; Forms,<BR>&nbsp; Unit1 in &#8216;Unit1.pas&#8217; {Form1};</FONT></P> <P><FONT face="Courier New" size="2">{$R *.res}</FONT></P> <P><FONT face="Courier New" size="2"><STRONG>begin</STRONG><BR>&nbsp; Application.Initialize;<BR>&nbsp; Application.MainFormOnTaskbar := True;<BR>&nbsp; Application.CreateForm(TForm1, Form1);<BR>&nbsp; Application.Run;<BR><STRONG>end</STRONG>.<BR></FONT><FONT face="Courier New" size="2"><FONT face="Tahoma"><BR>Note the new </FONT><FONT face="Courier New">MainFormOnTaskbar </FONT><FONT face="Tahoma">property of the Application object. This means that what you see on the taskbar is the icon and caption of the main form (when it appears). So how about if you have a splash screen, like I often use, and if the splash screen is created and shown before the main form is even created? eg:</FONT></FONT></P> <P><FONT face="Courier New" size="2">&nbsp; Application.Initialize;<BR>&nbsp; Application.MainFormOnTaskbar := True;<BR></FONT><FONT face="Courier New" size="2"><BR>&nbsp; frmSplash := TfrmSplash.Create(nil);<BR>&nbsp; frmSplash.Show;<BR>&nbsp; frmSplash.Update;</FONT></P> <P><FONT face="Courier New" size="2">&nbsp; Application.CreateForm(TfrmMain, frmMain);</FONT></P> <P><FONT face="Courier New" size="2">&nbsp; frmSplash.Free;<BR>&nbsp; <BR>&nbsp; Application.Run;<BR><FONT face="Tahoma"><BR>Without further modification, when the application runs and the splash screen is showing, there is no window on the taskbar. To solve this, I override the <FONT face="Courier New">CreateParams</FONT> method of <FONT face="Courier New">TfrmSplash</FONT>:</FONT></FONT></P> <P><FONT face="Courier New" size="2"><STRONG>procedure</STRONG> TfrmSplash.CreateParams(<STRONG>var</STRONG> Params: TCreateParams);<BR><STRONG>begin</STRONG><BR>&nbsp; <STRONG>inherited</STRONG>;<BR></FONT><FONT face="Courier New" size="2">&nbsp; Params.ExStyle := Params.ExStyle <STRONG>and</STRONG> <STRONG>not</STRONG> WS_EX_TOOLWINDOW <STRONG>or</STRONG> WS_EX_APPWINDOW;<BR><STRONG>end</STRONG>;<BR><BR><FONT face="Tahoma">This causes the&nbsp;a window to appear&nbsp;in the taskbar. That solves one issue, however it raises another: there&#8217;s no caption in my splash screen, and therefore no caption in the window on the taskbar, so&nbsp;I set the application title in the project options, and&nbsp;override the&nbsp;<FONT face="Courier New">Create</FONT> method in <FONT face="Courier New">TfrmSplash</FONT>:</FONT></FONT></P> <P><FONT face="Courier New" size="2"><FONT face="Tahoma"><FONT face="Courier New"><STRONG>constructor</STRONG> TfrmSplash.Create(AOwner: TComponent);<BR><STRONG>begin</STRONG><BR>&nbsp; <STRONG>inherited</STRONG>;<BR>&nbsp; // Fix the taskbar/splash issue<BR>&nbsp; Caption := Application.Title;<BR><STRONG>end</STRONG>;<BR></FONT><BR>Note that changing the application title in the project options will insert the line just&nbsp;before </FONT><FONT face="Courier New">Application.CreateForm, </FONT><FONT face="Tahoma">so I move it to just before the call to </FONT><FONT face="Courier New">Application.MainFormOnTaskbar := True&nbsp;</FONT><FONT face="Tahoma">so that the splash screen has the right value for the title.</FONT></FONT></P> <P><FONT face="Tahoma" size="2">Now we have a window appearing in the taskbar, and it has a caption, however there is one more issue: under operating systems prior to Vista, the application doesn&#8217;t appear in the task manager applications list. The solution is to make the following call:</FONT></P> <P><FONT face="Courier New" size="2">&nbsp; <STRONG>if </STRONG>(Win32MajorVersion &lt; 6) <STRONG>then</STRONG><BR>&nbsp;&nbsp;&nbsp; SetWindowText(Application.Handle, PChar(Application.Title));<BR></FONT><FONT face="Courier New" size="2"><BR><FONT face="Tahoma">I could add the call to , however if I chose to remove the splash screen and just use the main form, I&#8217;d end up with the same problem. Since I&#8217;ll always be using the main form, I add it to </FONT><FONT face="Courier New">TfrmMain.Create</FONT><FONT face="Tahoma">:</FONT></FONT></P> <P><FONT face="Courier New" size="2"><STRONG>constructor</STRONG> TfrmMain.Create(AOwner: TComponent);<BR><STRONG>begin</STRONG><BR>&nbsp; <STRONG>inherited</STRONG>;<BR>&nbsp; Caption := Application.Title;<BR>&nbsp; // Fix the task list issue for non-Vista<BR>&nbsp; <STRONG>if</STRONG> (Win32MajorVersion &lt; 6) <STRONG>then</STRONG><BR>&nbsp;&nbsp;&nbsp; SetWindowText(Application.Handle, PChar(Application.Title));<BR>&nbsp; // Simulate the app doing something while the splash screen is showing<BR>&nbsp; Sleep(6000);<BR><STRONG>end</STRONG>;<BR><BR><FONT face="Tahoma">There was another issue under discussion, which is the appearance of the application in the taskbar thumbnail and Flip3D. Unfortunately, I don&#8217;t have an Aero-capable PC with Vista installed at the moment. </FONT></FONT></P> <P><FONT face="Courier New" size="2"><FONT face="Tahoma">Full source for the example application is available <A href="http://www.radsoft.com.au/public/MFOTExample.zip">here</A>.</FONT></P></FONT></p>
<p class="akst_link"><a href="http://blogs.teamb.com/davenottage/?p=33687&amp;akst_action=share-this"  title="Post to del.icio.us, etc." id="akst_link_33687" class="akst_share_link" rel="nofollow">Share This</a> | <a href="mailto:?subject=Taskbar%2FTask%20Manager%2FVista%20issues%20in%20applications%20built%20with%20Delphi%202007&body=Have you seen this? http%3A%2F%2Fblogs.teamb.com%2Fdavenottage%2F2007%2F04%2F03%2F33687" id="akst_email_33687" class="akst_share_email" rel="nofollow">Email this page to a friend</a></p>]]></content:encoded>
			<wfw:commentRss>http://blogs.teamb.com/davenottage/2007/04/03/33687/feed</wfw:commentRss>
		</item>
		<item>
		<title>try except madness</title>
		<link>http://blogs.teamb.com/davenottage/2006/01/23/22858</link>
		<comments>http://blogs.teamb.com/davenottage/2006/01/23/22858#comments</comments>
		<pubDate>Mon, 23 Jan 2006 17:03:52 +0000</pubDate>
		<dc:creator>Dave Nottage</dc:creator>
		
		<category><![CDATA[Delphi stuff]]></category>

		<guid isPermaLink="false">http://blogs.teamb.com/davenottage/2006/01/23/22822/</guid>
		<description><![CDATA[..or should I say &#8220;try and accept some madness&#8221;? Today I came across this little gem inside of a CloseQuery event handler of a form: &#160; try&#160;&#160;&#160; CanClose := bIsInitialisationsOver;&#160; except&#160;&#160;&#160; on E: Exception do&#160;&#160;&#160; begin&#160;&#160;&#160;&#160;&#160; WriteErrorToLog(&#8217;Error.Exception - &#8216; + E.Message);&#160;&#160;&#160; end;&#160; end; CanClose is a boolean variable that is part of the handler. bIsInitialisationsOver [...]]]></description>
			<content:encoded><![CDATA[<p><P><FONT face="Tahoma" size="2">..or should I say &#8220;try and accept some madness&#8221;?</FONT></P> <P><FONT face="Tahoma" size="2">Today I came across this little gem inside of a CloseQuery event handler of a form:</FONT></P> <P><FONT face="Courier New" size="2">&nbsp; <STRONG>try</STRONG><BR>&nbsp;&nbsp;&nbsp; CanClose := bIsInitialisationsOver;<BR>&nbsp; <STRONG>except</STRONG><BR>&nbsp;&nbsp;&nbsp; <STRONG>on</STRONG> E: Exception <STRONG>do</STRONG><BR>&nbsp;&nbsp;&nbsp; <STRONG>begin<BR></STRONG>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; WriteErrorToLog(&#8217;Error.Exception - &#8216; + E.Message);<BR>&nbsp;&nbsp;&nbsp; <STRONG>end</STRONG>;<BR>&nbsp; <STRONG>end</STRONG>;</FONT></P> <P><FONT face="Tahoma" size="2">CanClose is a boolean variable that is part of the handler. bIsInitialisationsOver is also a boolean variable. One just has to question what some people are thinking when they feel they need to capture an exception of assignment of a boolean to another boolean. Incidentally, this wasn&#8217;t an isolated example; there were other instances of similar coding style.</FONT><BR></P></p>
<p class="akst_link"><a href="http://blogs.teamb.com/davenottage/?p=22858&amp;akst_action=share-this"  title="Post to del.icio.us, etc." id="akst_link_22858" class="akst_share_link" rel="nofollow">Share This</a> | <a href="mailto:?subject=try%20except%20madness&body=Have you seen this? http%3A%2F%2Fblogs.teamb.com%2Fdavenottage%2F2006%2F01%2F23%2F22858" id="akst_email_22858" class="akst_share_email" rel="nofollow">Email this page to a friend</a></p>]]></content:encoded>
			<wfw:commentRss>http://blogs.teamb.com/davenottage/2006/01/23/22858/feed</wfw:commentRss>
		</item>
		<item>
		<title>Going forward</title>
		<link>http://blogs.teamb.com/davenottage/2006/01/20/22821</link>
		<comments>http://blogs.teamb.com/davenottage/2006/01/20/22821#comments</comments>
		<pubDate>Fri, 20 Jan 2006 12:59:33 +0000</pubDate>
		<dc:creator>Dave Nottage</dc:creator>
		
		<category><![CDATA[Delphi stuff]]></category>

		<guid isPermaLink="false">http://blogs.teamb.com/davenottage/2006/01/20/22735/</guid>
		<description><![CDATA[What is it with using the phrase &#8220;going forward&#8221;? You&#8217;ll hear a lot of execs (and maybe even some non-execs) use the phrase in relation to their business plans, but what is the point of saying it? I wouldn&#8217;t expect&#160;anyone talk about their business plan in relation to doing something that is &#8220;going backward&#8221;. Enough [...]]]></description>
			<content:encoded><![CDATA[<p><P><FONT face="Tahoma" size="2">What is it with using the phrase &#8220;going forward&#8221;? You&#8217;ll hear a lot of execs (and maybe even some non-execs) use the phrase in relation to their business plans, but what is the point of saying it? I wouldn&#8217;t expect&nbsp;anyone talk about their business plan in relation to doing something that is &#8220;going backward&#8221;.</FONT></P> <P><FONT face="Tahoma" size="2">Enough of the digression, let us&nbsp;(going forward?) talk about our favourite subject: Delphi <img src='http://blogs.teamb.com/davenottage/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </FONT></P> <P><FONT face="Tahoma" size="2">Working on this project in Singapore, I had reason to look for UTC related functions in the VCL, and I came across the file SvrHTTP.pas. It has some rather interesting declarations in the implementation section, including this one:</FONT></P> <P><FONT face="Tahoma" size="2"><FONT face="Courier New"><STRONG>function</STRONG> LocalTimeToUTCTime(DateTime: TDateTime): TDateTime; <STRONG>forward</STRONG>;</FONT></FONT></P> <P><FONT face="Tahoma" size="2">Note the <STRONG><FONT face="Courier New">forward </FONT></STRONG>directive. There are several declarations like that, that follow the one above. It reminded me that I haven&#8217;t seen the&nbsp;<FONT face="Courier New"><STRONG>forward </STRONG></FONT><FONT face="Tahoma">directive used in ages. These days it seems there&#8217;s not much use for it, because you can just declare a method that is called by another method, prior to the declaration of the caller. In the case of SvrHTTP.pas they could have done just that, so it is puzzling as to why they bothered to use </FONT><FONT face="Courier New"><STRONG>forward</STRONG>.</FONT></FONT></P> <P><FONT face="Tahoma" size="2">There is a case for using <FONT face="Courier New"><STRONG>forward</STRONG></FONT><FONT face="Tahoma">, however. From the help: </FONT></FONT></P> <P><FONT face="Tahoma" size="2">&nbsp; &#8220;Besides letting you organize your code more flexibly, forward declarations are sometimes necessary for mutual recursions.&#8221;</FONT></P> <P><FONT face="Tahoma" size="2">..and for those who are wondering, mutual recursions does <STRONG>not</STRONG> mean swearing at each other. <img src='http://blogs.teamb.com/davenottage/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </FONT></P></p>
<p class="akst_link"><a href="http://blogs.teamb.com/davenottage/?p=22821&amp;akst_action=share-this"  title="Post to del.icio.us, etc." id="akst_link_22821" class="akst_share_link" rel="nofollow">Share This</a> | <a href="mailto:?subject=Going%20forward&body=Have you seen this? http%3A%2F%2Fblogs.teamb.com%2Fdavenottage%2F2006%2F01%2F20%2F22821" id="akst_email_22821" class="akst_share_email" rel="nofollow">Email this page to a friend</a></p>]]></content:encoded>
			<wfw:commentRss>http://blogs.teamb.com/davenottage/2006/01/20/22821/feed</wfw:commentRss>
		</item>
		<item>
		<title>Initialization, where are you?</title>
		<link>http://blogs.teamb.com/davenottage/2006/01/12/22734</link>
		<comments>http://blogs.teamb.com/davenottage/2006/01/12/22734#comments</comments>
		<pubDate>Thu, 12 Jan 2006 13:44:45 +0000</pubDate>
		<dc:creator>Dave Nottage</dc:creator>
		
		<category><![CDATA[Delphi stuff]]></category>

		<guid isPermaLink="false">http://blogs.teamb.com/davenottage/2006/01/12/22725/</guid>
		<description><![CDATA[Working on this project in Singapore, I came across something similar to this: unit SomeUnit; &#8230; implementation &#8230; begin&#160; DoSomeCodeHere;end. No, it wasn&#8217;t exactly the code above; it&#8217;s just to illustrate that I had forgotten this was possible. So how does Delphi treat the above code? The answer in BDS 2006 is that the code [...]]]></description>
			<content:encoded><![CDATA[<p><P><FONT face="Tahoma" size="2">Working on this project in Singapore, I came across something similar to this:</FONT></P> <P><FONT face="Courier New" size="1"><FONT size="2"><STRONG>unit</STRONG> SomeUnit;</FONT></FONT></P> <P><FONT face="Courier New" size="2">&#8230;</FONT></P> <P><FONT face="Courier New" size="2"><STRONG>implementation</STRONG></FONT></P> <P><STRONG><FONT face="Courier New" size="2">&#8230;</FONT></STRONG></P> <P><FONT face="Courier New" size="2"><STRONG>begin<BR>&nbsp; </STRONG>DoSomeCodeHere;</FONT><FONT face="Courier New" size="2"><BR><STRONG>end.</STRONG></FONT></P> <P><FONT face="Tahoma" size="2">No, it wasn&#8217;t <STRONG>exactly </STRONG>the code above; it&#8217;s just to illustrate that I had forgotten this was possible. So how does Delphi treat the above code? The answer in BDS 2006 is that the code is&nbsp;compiled as an initialization section. </FONT></P> <P><FONT face="Tahoma" size="2">There&#8217;s some discoveries I&#8217;ve come across that I&#8217;m going to share later..</FONT></P></p>
<p class="akst_link"><a href="http://blogs.teamb.com/davenottage/?p=22734&amp;akst_action=share-this"  title="Post to del.icio.us, etc." id="akst_link_22734" class="akst_share_link" rel="nofollow">Share This</a> | <a href="mailto:?subject=Initialization%2C%20where%20are%20you%3F&body=Have you seen this? http%3A%2F%2Fblogs.teamb.com%2Fdavenottage%2F2006%2F01%2F12%2F22734" id="akst_email_22734" class="akst_share_email" rel="nofollow">Email this page to a friend</a></p>]]></content:encoded>
			<wfw:commentRss>http://blogs.teamb.com/davenottage/2006/01/12/22734/feed</wfw:commentRss>
		</item>
		<item>
		<title>Software Installers part 2</title>
		<link>http://blogs.teamb.com/davenottage/2006/01/11/22724</link>
		<comments>http://blogs.teamb.com/davenottage/2006/01/11/22724#comments</comments>
		<pubDate>Wed, 11 Jan 2006 10:58:53 +0000</pubDate>
		<dc:creator>Dave Nottage</dc:creator>
		
		<category><![CDATA[Software development]]></category>

		<guid isPermaLink="false">http://blogs.teamb.com/davenottage/2006/01/11/22724/</guid>
		<description><![CDATA[Well it has been a while since I started using it, however I thoroughly recommend InnoSetup. I also recommend using ISTool to at least create scripts (easy enough to edit with a text editor later). It can be downloaded via links from the InnoSetup site.
]]></description>
			<content:encoded><![CDATA[<p><P><FONT face="Tahoma" size="2">Well it has been a while since I started using it, however I thoroughly recommend <A href="http://www.jrsoftware.org/isinfo.php"><FONT color="#0000ff">InnoSetup</FONT></A>.</FONT></P> <P><FONT face="Tahoma" size="2">I also recommend using ISTool to at least create scripts (easy enough to edit with a text editor later). It can be downloaded via links from the InnoSetup site.</FONT></P></p>
<p class="akst_link"><a href="http://blogs.teamb.com/davenottage/?p=22724&amp;akst_action=share-this"  title="Post to del.icio.us, etc." id="akst_link_22724" class="akst_share_link" rel="nofollow">Share This</a> | <a href="mailto:?subject=Software%20Installers%20part%202&body=Have you seen this? http%3A%2F%2Fblogs.teamb.com%2Fdavenottage%2F2006%2F01%2F11%2F22724" id="akst_email_22724" class="akst_share_email" rel="nofollow">Email this page to a friend</a></p>]]></content:encoded>
			<wfw:commentRss>http://blogs.teamb.com/davenottage/2006/01/11/22724/feed</wfw:commentRss>
		</item>
		<item>
		<title>Just what do you think you&#8217;re doing, Dave?</title>
		<link>http://blogs.teamb.com/davenottage/2006/01/11/22723</link>
		<comments>http://blogs.teamb.com/davenottage/2006/01/11/22723#comments</comments>
		<pubDate>Wed, 11 Jan 2006 10:50:06 +0000</pubDate>
		<dc:creator>Dave Nottage</dc:creator>
		
		<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://blogs.teamb.com/davenottage/2006/01/11/22191/</guid>
		<description><![CDATA[I&#8217;m asked that question quite often  In this case, I&#8217;ve started a new blog. I&#8217;m keeping a blog separate from my TeamB blog, as I didn&#8217;t want to pollute this one with my general ramblings. I&#8217;ll stick to subjects about Borland, Delphi, and programming in general on this blog.
Share This &#124; Email this page [...]]]></description>
			<content:encoded><![CDATA[<p><FONT face="Tahoma" size="2">I&#8217;m asked that question quite often <img src='http://blogs.teamb.com/davenottage/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> In this case, I&#8217;ve started a new <A href="http://www.radsoft.com.au/daven"><FONT color="#0000ff">blog</FONT></A>. I&#8217;m keeping a blog separate from my <A href="http://www.teamb.com"><FONT color="#0000ff">TeamB</FONT></A> blog, as I didn&#8217;t want to pollute this one with my general ramblings. I&#8217;ll stick to subjects about <A href="http://www.borland.com"><FONT color="#0000ff">Borland</FONT></A>, <A href="http://www.borland.com/delphi"><FONT color="#0000ff">Delphi,</FONT></A> and programming in general on this blog.</FONT></p>
<p class="akst_link"><a href="http://blogs.teamb.com/davenottage/?p=22723&amp;akst_action=share-this"  title="Post to del.icio.us, etc." id="akst_link_22723" class="akst_share_link" rel="nofollow">Share This</a> | <a href="mailto:?subject=Just%20what%20do%20you%20think%20you%27re%20doing%2C%20Dave%3F&body=Have you seen this? http%3A%2F%2Fblogs.teamb.com%2Fdavenottage%2F2006%2F01%2F11%2F22723" id="akst_email_22723" class="akst_share_email" rel="nofollow">Email this page to a friend</a></p>]]></content:encoded>
			<wfw:commentRss>http://blogs.teamb.com/davenottage/2006/01/11/22723/feed</wfw:commentRss>
		</item>
		<item>
		<title>Software installers</title>
		<link>http://blogs.teamb.com/davenottage/2005/11/22/22190</link>
		<comments>http://blogs.teamb.com/davenottage/2005/11/22/22190#comments</comments>
		<pubDate>Tue, 22 Nov 2005 21:02:24 +0000</pubDate>
		<dc:creator>Dave Nottage</dc:creator>
		
		<category><![CDATA[Software development]]></category>

		<guid isPermaLink="false">http://blogs.teamb.com/davenottage/2005/11/22/22063/</guid>
		<description><![CDATA[Software installers.. There seems to be a huge gap between the commercial and well.. the other end of the scale. I&#8216;ve tried a few and that&#8217;s at least the impression that I have. Borland Delphi 7 ships with InstallShield Express (Borland Limited Edition)&#160;v3.5 Service Pack 4. As far as I&#8217;m concerned, it&#8217;s great.. for the [...]]]></description>
			<content:encoded><![CDATA[<p><P><FONT face="Tahoma" size="2">Software installers.. There seems to be a huge gap between the commercial and well.. the other end of the scale. I</FONT><FONT face="Tahoma" size="2">&#8216;ve tried a few and that&#8217;s at least the impression that I have.</FONT></P> <P><FONT face="Tahoma" size="2">Borland Delphi 7 ships with InstallShield Express (Borland Limited Edition)&nbsp;v3.5 Service Pack 4. As far as I&#8217;m concerned, it&#8217;s great.. for the most part. It allows you to easily (and mostly intuitively) create install programs for your software. No messing with install scripts where you have to learn the install script language. </FONT></P> <P><FONT face="Tahoma" size="2">Problem number 1 is that the installer it creates won&#8217;t do updates, ie if you create an installer for a later version of your software, the users must uninstall the previous version first. P</FONT><FONT face="Tahoma" size="2">roblem 2 is that XP SP2 breaks the registry modification section. You can&#8217;t create installers that create or modify registry settings, and there appears to be no fix for this.</FONT></P> <P><FONT face="Tahoma" size="2">I&#8217;ve also worked with InnoSetup. I can&#8217;t understand why&nbsp;some think it&#8217;s so great. Don&#8217;t get me wrong; if you&#8217;re into learning install script language, it is a great tool, but to my mind, creating install programs should be relatively painless. Same goes for NSIS (from NullSoft), which I&#8217;ve just started using. It seems to be the easier of those two to learn, but it&#8217;s still a pain to learn the script language.</FONT></P> <P><FONT face="Tahoma" size="2">Shouldn&#8217;t creating install programs be (close to) this easy?:</FONT></P> <P><FONT face="Tahoma" size="2">Select the files that are to be installed,&nbsp;the destination(s) to which they are to go to, write some configuration settings, select some fancy install splash screens,&nbsp;and that&#8217;s about it.&nbsp;If the install program creator wants to create a script, it can do so, which can be &#8220;tweaked&#8221; if necessary.</FONT></P> <P><FONT face="Tahoma" size="2">Perhaps I just haven&#8217;t looked hard enough.. someone please tell me I&#8217;m wrong! Meanwhile, I&#8217;m sticking with NSIS and contemplating writing a script wizard for it.</FONT></P></p>
<p class="akst_link"><a href="http://blogs.teamb.com/davenottage/?p=22190&amp;akst_action=share-this"  title="Post to del.icio.us, etc." id="akst_link_22190" class="akst_share_link" rel="nofollow">Share This</a> | <a href="mailto:?subject=Software%20installers&body=Have you seen this? http%3A%2F%2Fblogs.teamb.com%2Fdavenottage%2F2005%2F11%2F22%2F22190" id="akst_email_22190" class="akst_share_email" rel="nofollow">Email this page to a friend</a></p>]]></content:encoded>
			<wfw:commentRss>http://blogs.teamb.com/davenottage/2005/11/22/22190/feed</wfw:commentRss>
		</item>
		<item>
		<title>TeamB meeting note: Distinctions between CoreSDP and BDS</title>
		<link>http://blogs.teamb.com/davenottage/2005/11/12/22062</link>
		<comments>http://blogs.teamb.com/davenottage/2005/11/12/22062#comments</comments>
		<pubDate>Sat, 12 Nov 2005 18:56:23 +0000</pubDate>
		<dc:creator>Dave Nottage</dc:creator>
		
		<category><![CDATA[Delphi stuff]]></category>

		<guid isPermaLink="false">http://blogs.teamb.com/davenottage/2005/11/12/22043/</guid>
		<description><![CDATA[Every year, some TeamB members have meetings with Borland staff, and today included meetings with some&#160;Borland execs. One&#160;of our meetings was with Boz Elloy, Senior Vice President of Software Products, and a subject we talked about was what Core SDP is, and why Delphi isn&#8217;t included in it. He advised that what he said is [...]]]></description>
			<content:encoded><![CDATA[<p><P><FONT face="Tahoma" size="2">Every year, some TeamB members have meetings with Borland staff, and today included meetings with some&nbsp;Borland execs.</FONT></P> <P><FONT face="Tahoma" size="2">One&nbsp;of our meetings was with Boz Elloy, Senior Vice President of Software Products, and a subject we talked about was what Core SDP is, and why Delphi isn&#8217;t included in it. He advised that what he said is public knowledge, so we (TeamB) have permission to repeat it, so here it is:</FONT></P> <P><FONT face="Tahoma" size="2">Core SDP (Software Delivery&nbsp;Platform) is</FONT><FONT face="Tahoma" size="2">&nbsp;a product aimed at enterprises, typically companies that have more than 20 developers, however that number can, and is, sometimes much larger. Core SDP comprises tools for Enterprises, and&nbsp;it embeds products such as CalibreRM server, and StarTeam server. Core SDP can&#8217;t exist without these. The development platform in Core SDP is Java, and there are plans to include .NET development, but not Delphi for .NET because, we were told, Enterprises don&#8217;t choose Delphi for .NET.</FONT></P> <P><FONT face="Tahoma" size="2">At the same time, BDS ie&nbsp;Borland Developer Studio, which includes Delphi, Delphi for .NET and&nbsp;C#Builder, and integrates Together, CalibreRM and StarTeam, is aimed at to SMB&#8217;s (Small to Medium Businesses). SMB&#8217;s typically have less than 20 developers, however of course that number can be larger.</FONT></P> <P><FONT face="Tahoma" size="2">That&#8217;s all I have for now.. stay tuned later for any other news that I can divulge.</FONT></P></p>
<p class="akst_link"><a href="http://blogs.teamb.com/davenottage/?p=22062&amp;akst_action=share-this"  title="Post to del.icio.us, etc." id="akst_link_22062" class="akst_share_link" rel="nofollow">Share This</a> | <a href="mailto:?subject=TeamB%20meeting%20note%3A%20Distinctions%20between%20CoreSDP%20and%20BDS&body=Have you seen this? http%3A%2F%2Fblogs.teamb.com%2Fdavenottage%2F2005%2F11%2F12%2F22062" id="akst_email_22062" class="akst_share_email" rel="nofollow">Email this page to a friend</a></p>]]></content:encoded>
			<wfw:commentRss>http://blogs.teamb.com/davenottage/2005/11/12/22062/feed</wfw:commentRss>
		</item>
		<item>
		<title>DevCon environment update and other misc stuff</title>
		<link>http://blogs.teamb.com/davenottage/2005/11/10/22042</link>
		<comments>http://blogs.teamb.com/davenottage/2005/11/10/22042#comments</comments>
		<pubDate>Thu, 10 Nov 2005 21:38:49 +0000</pubDate>
		<dc:creator>Dave Nottage</dc:creator>
		
		<category><![CDATA[DevCon 2005]]></category>

		<guid isPermaLink="false">http://blogs.teamb.com/davenottage/2005/11/10/22014/</guid>
		<description><![CDATA[Fortunately, the lab problem has been resolved, with power strips and extra desks being provided.. Thanks Borland and support staff! Unfortunately, the issue of repeat sessions lingers, with some lamenting that they were not able to make sessions (including myself) and absolutely no repeats were available. Considering the circumstances, this has been a&#160;good&#160;DevCon. As above, [...]]]></description>
			<content:encoded><![CDATA[<p><P><FONT face="Tahoma" size="2">Fortunately, the lab problem has been resolved, with power strips and extra desks being provided.. Thanks Borland and support staff! </FONT><FONT face="Tahoma" size="2">Unfortunately, the issue of repeat sessions lingers, with some lamenting that they were not able to make sessions (including myself) and absolutely no repeats were available.</FONT></P> <P><FONT face="Tahoma" size="2">Considering the circumstances, this has been a&nbsp;good&nbsp;DevCon. As above, Borland and support staff have been great. The repeat sessions issue is probably something that can be ironed out for next year, and a little birdie tells me that the Camtasia recordings of sessions <STRONG>may </STRONG>be available to (at least) attendees on DVD later. I especially look forward to reviewing the ASP.NET sessions, if possible.</FONT></P> <P><FONT face="Tahoma" size="2">My apologies for not providing blog entries for sessions I attended today and for the WPF session yesterday afternoon. I had some issues to deal with, including lack of sleep. </FONT></P> <P><FONT face="Tahoma" size="2">On a brighter note, I can again recommend for anyone who liked the movie Saw, to go and see Saw 2. The more I think about it, the more I liked it; it&#8217;s a great follow up to a brilliant movie, though probably not for the squeamish <img src='http://blogs.teamb.com/davenottage/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> Someone (I can&#8217;t remember who, but thanks) mentioned if you liked Seven, you&#8217;d like these movies.. and I tend to agree.</FONT></P> <P><FONT face="Tahoma" size="2">Since it&#8217;s 3.35am (aka 10.05pm in my home town), I&#8217;ll be signing off for now til later this morning.</FONT></P></p>
<p class="akst_link"><a href="http://blogs.teamb.com/davenottage/?p=22042&amp;akst_action=share-this"  title="Post to del.icio.us, etc." id="akst_link_22042" class="akst_share_link" rel="nofollow">Share This</a> | <a href="mailto:?subject=DevCon%20environment%20update%20and%20other%20misc%20stuff&body=Have you seen this? http%3A%2F%2Fblogs.teamb.com%2Fdavenottage%2F2005%2F11%2F10%2F22042" id="akst_email_22042" class="akst_share_email" rel="nofollow">Email this page to a friend</a></p>]]></content:encoded>
			<wfw:commentRss>http://blogs.teamb.com/davenottage/2005/11/10/22042/feed</wfw:commentRss>
		</item>
		<item>
		<title>What&#8217;s New In The Delphi Compiler?</title>
		<link>http://blogs.teamb.com/davenottage/2005/11/09/22013</link>
		<comments>http://blogs.teamb.com/davenottage/2005/11/09/22013#comments</comments>
		<pubDate>Wed, 09 Nov 2005 08:25:20 +0000</pubDate>
		<dc:creator>Dave Nottage</dc:creator>
		
		<category><![CDATA[DevCon 2005]]></category>

		<guid isPermaLink="false">http://blogs.teamb.com/davenottage/2005/11/09/22012/</guid>
		<description><![CDATA[This session is far less packed than the &#8220;What&#8217;s New In Delphi&#8221; session was. I&#8217;m in the front two rows and surrounded by the likes of Marco Cantu, Lino Tadros, Nick Hodges and Allen Bauer. Major Win32 compiler work:  Records with methods Operator overloading  If you&#8217;re familiar with operator overloading in Delphi for [...]]]></description>
			<content:encoded><![CDATA[<p><P><FONT face="Tahoma" size="2">This session is far less packed than the &#8220;What&#8217;s New In Delphi&#8221; session was. </FONT><FONT face="Tahoma" size="2">I&#8217;m in the front two rows and surrounded by the likes of Marco Cantu, Lino Tadros, Nick Hodges and Allen Bauer.</FONT></P> <P><FONT face="Tahoma" size="2">Major <STRONG>Win32</STRONG> compiler work:</FONT></P> <UL> <LI><FONT face="Tahoma" size="2">Records with methods</FONT> <LI><FONT face="Tahoma" size="2">Operator overloading</FONT> <UL> <LI><FONT face="Tahoma" size="2">If you&#8217;re familiar with operator overloading in Delphi for .NET, you&#8217;ll already know what these changes are all about. Danny went into a number of specifics.</FONT></LI></UL> <LI><FONT face="Tahoma" size="2">Class variables</FONT> <UL> <LI><FONT face="Tahoma" size="2">Descendants share their ancestors class variables. Danny noted that in other implementations of class variables, each descendant class has their own copy of the class variable.</FONT></LI></UL> <LI><FONT face="Tahoma" size="2">Unit initialization and finalization consolidation</FONT> <UL> <LI><FONT face="Tahoma" size="2">Changes that result in improvements in start-up time in your applications. Around 2 to 5% improvement</FONT></LI></UL> <LI><FONT face="Tahoma" size="2">In-linable magic compiler functions</FONT> <UL> <LI><FONT face="Tahoma" size="2">eg Length</FONT></LI></UL></LI></UL> <P><FONT face="Tahoma" size="2">Minor .NET compiler work</FONT></P> <UL> <LI><FONT face="Tahoma" size="2">Minor bug fixes, metadata improvements</FONT></LI></UL> <P><FONT face="Tahoma" size="2">.NET Compact Framework Enhancements</FONT></P> <UL> <LI><FONT face="Tahoma" size="2">Soften error checking for missing CLR stuff</FONT> <LI><FONT face="Tahoma" size="2">Beef up class helpers</FONT></LI></UL> <P><FONT face="Tahoma" size="2"><STRONG>Delphi RoadMap:</STRONG></FONT></P> <P><FONT face="Tahoma" size="2"><STRONG>Note</STRONG>: These are <STRONG>plans</STRONG> and as such, are subject to change. </FONT></P> <UL> <LI><FONT face="Tahoma" size="2">Highlander</FONT></LI> <UL> <LI><FONT face="Tahoma" size="2">Full .NET 2.0 Support</FONT></LI> <LI><FONT face="Tahoma" size="2">Generics, class fragments and more</FONT></LI> <LI><FONT face="Tahoma" size="2">Full .NET CF Support, including VCL for CF</FONT></LI> <LI><FONT face="Tahoma" size="2">Support .NET 2.0 64 bit development</FONT></LI></UL> <LI><FONT face="Tahoma" size="2">Delphi Longhorn (not the actual codename),</FONT></LI> <UL> <LI><FONT face="Tahoma" size="2">Targets Win32 and .NET for Windows Vista</FONT></LI> <LI><FONT face="Tahoma" size="2">Avalon (WPF)</FONT></LI></UL> <LI><FONT face="Tahoma" size="2">Delphi Win64</FONT></LI> <UL> <LI><FONT face="Tahoma" size="2">Logical evolution of Win32</FONT></LI> <LI><FONT face="Tahoma" size="2">Same shortcomings as Win32 eg DLLs, APIs, Security</FONT></LI> <LI><FONT face="Tahoma" size="2">Unicode VCL</FONT></LI> <UL> <LI><FONT face="Tahoma" size="2">Develop for 64 bit, but the goal is to make&nbsp;it source compatible for Win32, ie same code should compile in Win32.</FONT></LI></UL> <LI><FONT face="Tahoma" size="2">Greenlighted by Borland, just needs time and resources. ie has the greenlights.. just needs the greenbacks <img src='http://blogs.teamb.com/davenottage/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </FONT></LI></UL></UL></p>
<p class="akst_link"><a href="http://blogs.teamb.com/davenottage/?p=22013&amp;akst_action=share-this"  title="Post to del.icio.us, etc." id="akst_link_22013" class="akst_share_link" rel="nofollow">Share This</a> | <a href="mailto:?subject=What%27s%20New%20In%20The%20Delphi%20Compiler%3F&body=Have you seen this? http%3A%2F%2Fblogs.teamb.com%2Fdavenottage%2F2005%2F11%2F09%2F22013" id="akst_email_22013" class="akst_share_email" rel="nofollow">Email this page to a friend</a></p>]]></content:encoded>
			<wfw:commentRss>http://blogs.teamb.com/davenottage/2005/11/09/22013/feed</wfw:commentRss>
		</item>
	</channel>
</rss>
