<?xml version="1.0" encoding="UTF-8"?>
<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/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Marius Žemaitis&#039;s Blog</title>
	<atom:link href="http://mzemaitis.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://mzemaitis.wordpress.com</link>
	<description>ideas for better life</description>
	<lastBuildDate>Mon, 02 Jan 2012 06:46:21 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='mzemaitis.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://0.gravatar.com/blavatar/8825112bfa340760bc6369aa7b455a2b?s=96&#038;d=http%3A%2F%2Fs2.wp.com%2Fi%2Fbuttonw-com.png</url>
		<title>Marius Žemaitis&#039;s Blog</title>
		<link>http://mzemaitis.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://mzemaitis.wordpress.com/osd.xml" title="Marius Žemaitis&#039;s Blog" />
	<atom:link rel='hub' href='http://mzemaitis.wordpress.com/?pushpress=hub'/>
		<item>
		<title>Saving string or stringlist to unicode text file</title>
		<link>http://mzemaitis.wordpress.com/2011/03/04/saving-string-or-stringlist-to-unicode-text-file/</link>
		<comments>http://mzemaitis.wordpress.com/2011/03/04/saving-string-or-stringlist-to-unicode-text-file/#comments</comments>
		<pubDate>Fri, 04 Mar 2011 10:04:31 +0000</pubDate>
		<dc:creator>mzemaitis</dc:creator>
				<category><![CDATA[Delphi tips]]></category>
		<category><![CDATA[save string unicode textfile Delphi]]></category>

		<guid isPermaLink="false">https://mzemaitis.wordpress.com/?p=150</guid>
		<description><![CDATA[After moving to recent Delphis (as 2009 or newer) saving to text files has changed as strings now are full unicode. So your old code writing to textfile also must change. If you use TStringList to write its lines to text files, you most probably used: This won’t work in recent Delphi, if you write [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mzemaitis.wordpress.com&amp;blog=3496207&amp;post=150&amp;subd=mzemaitis&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><a href="http://mzemaitis.files.wordpress.com/2011/03/copy-page-32.png"><img class="size-full wp-image-156 alignleft" title="Text" src="http://mzemaitis.files.wordpress.com/2011/03/copy-page-32.png?w=490" alt="Text"   /></a>After moving to recent Delphis (as 2009 or newer) saving to text files has changed as strings now are full unicode. So your old code writing to textfile also must change.</p>
<p>If you use TStringList to write its lines to text files, you most probably used:</p>
<p><pre class="brush: delphi;">

var StrList : TStringList;

with StrList do
begin
 Add( “Msg” );
 SaveToFile(sFileName); //your filename
end;

</pre></p>
<p>This won’t work in recent Delphi, if you write unicode symbols. You need to provide <strong>Encoding</strong> for your file or else you will write only ANSI text file, so rebuild you need a TEncoding class:</p>
<p><pre class="brush: delphi;">

var StrList : TStringList;

with StrList do
begin
 Add( “Msg” );
 SaveToFile(sFileName, TEncoding.Unicode); //your unicode filename
end;

</pre></p>
<p>Now, if you just want to write a <strong>single string to text file</strong>. Above function will work but you need to create a StringList first.</p>
<p>First you need to write a Unicode preambule to a text file and sadly convert your string to UTF8 string ( or widestring), but still you will  retain your unicode symbols. Here’s a function:</p>
<p><pre class="brush: delphi;">

procedure StringtoFileUTF8(Filename, Line: String; Append : boolean);
var
fs: TFileStream;
preamble:TBytes;
outpututf8: RawByteString;
amode: Integer;
begin
if Append and FileExists(FileName)
then amode := fmOpenReadWrite
else amode := fmCreate;
fs := TFileStream.Create(filename, { mode } amode, fmShareDenyWrite);
{ sharing mode allows read during our writes }
try

{internal Char (UTF16) codepoint, to UTF8 encoding conversion:}
outpututf8 := Utf8Encode(line); // this converts UnicodeString to WideString, sadly.

if (amode = fmCreate) then
begin
preamble := TEncoding.UTF8.GetPreamble;
fs.WriteBuffer( PAnsiChar(preamble)^, Length(preamble));
end
else
begin
fs.Seek(fs.Size, 0); { go to the end, append }
end;

outpututf8 := outpututf8 + AnsiChar(#13) + AnsiChar(#10);
fs.WriteBuffer( PAnsiChar(outpututf8)^, Length(outpututf8) );
finally
fs.Free;
end;
end;

</pre></p>
<p>There is also another method if you have Delphi 2010 or newer using TStreamWriter class. This is taken from <a href="http://docwiki.embarcadero.com/CodeExamples/en/StreamStrRdWr_(Delphi)">embarcadero help</a>:</p>
<p><pre class="brush: delphi;">

procedure TMainForm.btLoadClick(Sender: TObject);
var
 Reader: TStreamReader;
begin
 { Create a new stream writer directly. }
 Reader := TStreamReader.Create( 'local_file.txt',
 TEncoding.UTF8);

 { Read the title and then the actual text. }
 edtTitle.Text := Reader.ReadLine();
 mmText.Text := Reader.ReadToEnd();

 { Close and Free the writer. }
 Reader.Free();
end;

procedure TMainForm.btSaveClick(Sender: TObject);
var
 Writer: TStreamWriter;
begin
 { Create a new stream writer directly. }
 Writer := TStreamWriter.Create('local_file.txt',
 false, TEncoding.UTF8);

 { Store the title and then the text. }
 Writer.WriteLine(edtTitle.Text);
 Writer.Write(mmText.Text);

 { Close and Free the writer. }
 Writer.Free();
end;
</pre></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mzemaitis.wordpress.com/150/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mzemaitis.wordpress.com/150/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/mzemaitis.wordpress.com/150/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/mzemaitis.wordpress.com/150/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/mzemaitis.wordpress.com/150/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/mzemaitis.wordpress.com/150/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/mzemaitis.wordpress.com/150/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/mzemaitis.wordpress.com/150/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/mzemaitis.wordpress.com/150/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/mzemaitis.wordpress.com/150/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/mzemaitis.wordpress.com/150/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/mzemaitis.wordpress.com/150/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/mzemaitis.wordpress.com/150/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/mzemaitis.wordpress.com/150/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mzemaitis.wordpress.com&amp;blog=3496207&amp;post=150&amp;subd=mzemaitis&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://mzemaitis.wordpress.com/2011/03/04/saving-string-or-stringlist-to-unicode-text-file/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/8a31ca29806040496185881ddc47fb76?s=96&#38;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">mzemaitis</media:title>
		</media:content>

		<media:content url="http://mzemaitis.files.wordpress.com/2011/03/copy-page-32.png" medium="image">
			<media:title type="html">Text</media:title>
		</media:content>
	</item>
		<item>
		<title>Free e-books from Microsoft</title>
		<link>http://mzemaitis.wordpress.com/2011/03/04/free-e-books-from-microsoft/</link>
		<comments>http://mzemaitis.wordpress.com/2011/03/04/free-e-books-from-microsoft/#comments</comments>
		<pubDate>Fri, 04 Mar 2011 08:45:57 +0000</pubDate>
		<dc:creator>mzemaitis</dc:creator>
				<category><![CDATA[Free stuff]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[free e-books Phone 7 office 2010 windows 7]]></category>

		<guid isPermaLink="false">https://mzemaitis.wordpress.com/2011/03/04/free-e-books-from-microsoft/</guid>
		<description><![CDATA[Microsoft has just released 8 free technical e-books: Programming Windows Phone 7, by Charles Petzold Moving to Microsoft Visual Studio 2010 Introducing Microsoft SQL Server 2008 R2 Understanding Microsoft Virtualization Solutions (Second Edition) Own Your Future: Update Your Skills with Resources and Career Ideas from Microsoft Introducing Windows Server 2008 R2 First Look Microsoft Office [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mzemaitis.wordpress.com&amp;blog=3496207&amp;post=145&amp;subd=mzemaitis&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Microsoft has just released <a href="http://blogs.msdn.com/b/microsoft_press/archive/2011/03/03/ebooks-list-of-our-free-books.aspx">8 free technical e-books</a>:</p>
<p><a href="http://mzemaitis.files.wordpress.com/2011/03/free_ebooks.png"><img style="display:block;float:none;margin-left:auto;margin-right:auto;" title="free_ebooks" alt="free_ebooks" src="http://mzemaitis.files.wordpress.com/2011/03/free_ebooks_thumb.png?w=400&#038;h=267" width="400" height="267" /></a> </p>
<p><a href="http://blogs.msdn.com/b/microsoft_press/archive/2010/10/28/free-ebook-programming-windows-phone-7-by-charles-petzold.aspx">Programming Windows Phone 7, by Charles Petzold</a></p>
<p><a href="http://blogs.msdn.com/b/microsoft_press/archive/2010/09/13/free-ebook-moving-to-microsoft-visual-studio-2010.aspx">Moving to Microsoft Visual Studio 2010</a></p>
<p><a href="http://blogs.msdn.com/b/microsoft_press/archive/2010/04/14/free-ebook-introducing-microsoft-sql-server-2008-r2.aspx">Introducing Microsoft SQL Server 2008 R2</a></p>
<p><a href="http://blogs.msdn.com/b/microsoft_press/archive/2010/02/16/free-ebook-understanding-microsoft-virtualization-r2-solutions.aspx">Understanding Microsoft Virtualization Solutions (Second Edition)</a> </p>
<p><a href="http://blogs.msdn.com/b/microsoft_press/archive/2010/03/03/free-ebook-own-your-future-update-your-skills-with-resources-and-career-ideas-from-microsoft.aspx">Own Your Future: Update Your Skills with Resources and Career Ideas from Microsoft</a></p>
<p><a href="http://blogs.msdn.com/b/microsoft_press/archive/2009/10/20/free-ebook-introducing-windows-server-2008-r2.aspx">Introducing Windows Server 2008 R2</a></p>
<p><a href="http://blogs.msdn.com/b/microsoft_press/archive/2010/01/20/free-ebook-first-look-microsoft-office-2010.aspx">First Look Microsoft Office 2010</a></p>
<p><a href="http://www.microsoft.com/downloads/en/confirmation.aspx?displaylang=en&amp;FamilyID=ee2a1d38-88a9-43b3-95bc-7e962f0b6030">Deploying Windows 7, Essential Guidance</a></p>
<p>Free gifts for M$, wee! Nice. </p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mzemaitis.wordpress.com/145/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mzemaitis.wordpress.com/145/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/mzemaitis.wordpress.com/145/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/mzemaitis.wordpress.com/145/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/mzemaitis.wordpress.com/145/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/mzemaitis.wordpress.com/145/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/mzemaitis.wordpress.com/145/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/mzemaitis.wordpress.com/145/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/mzemaitis.wordpress.com/145/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/mzemaitis.wordpress.com/145/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/mzemaitis.wordpress.com/145/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/mzemaitis.wordpress.com/145/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/mzemaitis.wordpress.com/145/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/mzemaitis.wordpress.com/145/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mzemaitis.wordpress.com&amp;blog=3496207&amp;post=145&amp;subd=mzemaitis&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://mzemaitis.wordpress.com/2011/03/04/free-e-books-from-microsoft/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/8a31ca29806040496185881ddc47fb76?s=96&#38;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">mzemaitis</media:title>
		</media:content>

		<media:content url="http://mzemaitis.files.wordpress.com/2011/03/free_ebooks_thumb.png" medium="image">
			<media:title type="html">free_ebooks</media:title>
		</media:content>
	</item>
		<item>
		<title>How to open *.xps files</title>
		<link>http://mzemaitis.wordpress.com/2011/02/25/how-to-open-xps-files/</link>
		<comments>http://mzemaitis.wordpress.com/2011/02/25/how-to-open-xps-files/#comments</comments>
		<pubDate>Fri, 25 Feb 2011 11:19:53 +0000</pubDate>
		<dc:creator>mzemaitis</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">https://mzemaitis.wordpress.com/2011/02/25/how-to-open-xps-files/</guid>
		<description><![CDATA[What is XPS File Extension XPS is XML Paper Specification which is used in Windows Printing machine and doesn’t support non Microsotf platforms. How to open XPS file. If you have not modern M$ Office orther viewer, you can simply open and view xps files in Internet Explorer 8.0+.<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mzemaitis.wordpress.com&amp;blog=3496207&amp;post=109&amp;subd=mzemaitis&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><strong>What is XPS File Extension </strong></p>
<p>XPS is XML Paper Specification which is used in Windows Printing machine and doesn’t support non Microsotf platforms.</p>
<p><strong>How to open XPS file.</strong></p>
<p>If you have not modern M$ Office orther viewer, you can simply open and view xps files in Internet Explorer 8.0+.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mzemaitis.wordpress.com/109/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mzemaitis.wordpress.com/109/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/mzemaitis.wordpress.com/109/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/mzemaitis.wordpress.com/109/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/mzemaitis.wordpress.com/109/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/mzemaitis.wordpress.com/109/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/mzemaitis.wordpress.com/109/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/mzemaitis.wordpress.com/109/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/mzemaitis.wordpress.com/109/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/mzemaitis.wordpress.com/109/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/mzemaitis.wordpress.com/109/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/mzemaitis.wordpress.com/109/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/mzemaitis.wordpress.com/109/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/mzemaitis.wordpress.com/109/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mzemaitis.wordpress.com&amp;blog=3496207&amp;post=109&amp;subd=mzemaitis&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://mzemaitis.wordpress.com/2011/02/25/how-to-open-xps-files/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/8a31ca29806040496185881ddc47fb76?s=96&#38;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">mzemaitis</media:title>
		</media:content>
	</item>
		<item>
		<title>Creating a Unique FileName</title>
		<link>http://mzemaitis.wordpress.com/2011/01/28/creating-a-unique-filename/</link>
		<comments>http://mzemaitis.wordpress.com/2011/01/28/creating-a-unique-filename/#comments</comments>
		<pubDate>Fri, 28 Jan 2011 09:01:16 +0000</pubDate>
		<dc:creator>mzemaitis</dc:creator>
				<category><![CDATA[Delphi tips]]></category>
		<category><![CDATA[Unique FileName GetTempFileName]]></category>

		<guid isPermaLink="false">https://mzemaitis.wordpress.com/2011/01/28/creating-a-unique-filename/</guid>
		<description><![CDATA[To Create a Unique filename for your working temporary or permanent file you can use a WinAPI function  GetTempFileName . Here is my variant of making unique filename in specified folder: But I don’t like this approach very much, because Windows creates a temporary file with tmp extension, that you have to delete later, if [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mzemaitis.wordpress.com&amp;blog=3496207&amp;post=100&amp;subd=mzemaitis&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><a href="http://mzemaitis.files.wordpress.com/2011/01/abc128.png"><img style="display:inline;border-width:0;margin:0 10px 0 0;" title="Text" src="http://mzemaitis.files.wordpress.com/2011/01/abc128_thumb.png?w=93&#038;h=89" border="0" alt="Text" width="93" height="89" align="left" /></a> To Create a Unique filename for your working temporary or permanent file you can use a WinAPI function  <a href="http://msdn.microsoft.com/en-us/library/aa364991(v=vs.85).aspx">GetTempFileName</a> .</p>
<p>Here is my variant of making unique filename in specified folder:</p>
<p><pre class="brush: delphi;">
function CreateUniqueFileName(sPath, sPrefix, sExtension : string) : string;
  var sFileName : array[0..MAX_PATH] of Char;
begin
  Result := '';
  repeat
    if GetTempFileName(PChar(sPath), PChar(sPrefix), 0, sFileName) &lt;&gt; 0
      then begin
         DeleteFile(sFileName);
         Result := ChangeFileExt(sFileName, sExtension)
      end
      else break; //error or failed
  until not FileExists(Result);
end;

sPath – your folder (you can windows temp folder GetTempPath(SizeOf(Buffer) - 1, Buffer); )
sPrefix – any prefix to attach to filename
sExtension – your extension of filename
if Function fails , empty string is returned.
</pre></p>
<p>But I don’t like this approach very much, because Windows creates a temporary file with tmp extension, that you have to delete later, if you don’t want additional files in system. Also deleting files on some OS might be slow.</p>
<p>Much better approach is by creating Unique filenames using GUID – global identifier, it is very little probability that generated GUIDs will be the same.</p>
<p>So here it is my variant of function:</p>
<p><pre class="brush: delphi;">
function CreateUniqueGUIDFileName(sPath, sPrefix, sExtension : string) : string;
   var sFileName : string;
        Guid : TGUID;
begin
  Result := '';
  repeat
   SFileName := '';
   CreateGUID(Guid);
   SFileName := sPath + sPrefix + GUIDtoString(GUID);
   Result := ChangeFileExt(sFileName, sExtension)
  until not FileExists(Result);
end;
</pre></p>
<p>The variables are the same.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mzemaitis.wordpress.com/100/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mzemaitis.wordpress.com/100/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/mzemaitis.wordpress.com/100/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/mzemaitis.wordpress.com/100/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/mzemaitis.wordpress.com/100/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/mzemaitis.wordpress.com/100/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/mzemaitis.wordpress.com/100/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/mzemaitis.wordpress.com/100/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/mzemaitis.wordpress.com/100/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/mzemaitis.wordpress.com/100/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/mzemaitis.wordpress.com/100/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/mzemaitis.wordpress.com/100/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/mzemaitis.wordpress.com/100/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/mzemaitis.wordpress.com/100/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mzemaitis.wordpress.com&amp;blog=3496207&amp;post=100&amp;subd=mzemaitis&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://mzemaitis.wordpress.com/2011/01/28/creating-a-unique-filename/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/8a31ca29806040496185881ddc47fb76?s=96&#38;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">mzemaitis</media:title>
		</media:content>

		<media:content url="http://mzemaitis.files.wordpress.com/2011/01/abc128_thumb.png" medium="image">
			<media:title type="html">Text</media:title>
		</media:content>
	</item>
		<item>
		<title>Delphi vs C#</title>
		<link>http://mzemaitis.wordpress.com/2010/05/04/delphi-vs-c/</link>
		<comments>http://mzemaitis.wordpress.com/2010/05/04/delphi-vs-c/#comments</comments>
		<pubDate>Tue, 04 May 2010 10:57:38 +0000</pubDate>
		<dc:creator>mzemaitis</dc:creator>
				<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">https://mzemaitis.wordpress.com/2010/05/04/delphi-vs-c/</guid>
		<description><![CDATA[Recently a very interesting discussion was going in LinkedIn forums regarding choosing Delphi programming language versus VB or C#. Here I will repost one comment because I agree on it 100% . Phil Caetano (Senior Programmer at Flairbase) wrote: Why Delphi? 1) Ease of programming. This is pascal, one of the easier languages to learn. [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mzemaitis.wordpress.com&amp;blog=3496207&amp;post=98&amp;subd=mzemaitis&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><a href="http://mzemaitis.files.wordpress.com/2011/03/icon_delphi.png"><img style="border-bottom:0;border-left:0;display:inline;margin-left:0;border-top:0;margin-right:0;border-right:0;" title="Icon_Delphi" border="0" alt="Icon_Delphi" align="left" src="http://mzemaitis.files.wordpress.com/2011/03/icon_delphi_thumb.png?w=128&#038;h=128" width="128" height="128" /></a> Recently a very interesting <a href="http://www.linkedin.com/groupAnswers?viewQuestionAndAnswers=&amp;gid=101829&amp;discussionID=18857958&amp;sik=1272970360253&amp;trk=ug_qa_q&amp;goback=%2Ehom%2Eana_101829_1272970360253_3_1">discussion</a> was going in LinkedIn forums regarding choosing Delphi programming language versus VB or C#. Here I will repost one comment because I agree on it 100% <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> . </p>
<p>Phil Caetano (Senior Programmer at Flairbase) wrote:</p>
<p>Why Delphi?    <br />1) <strong>Ease of programming.      <br /></strong>This is pascal, one of the easier languages to learn. Very old language too and was used as a teaching language. This makes it easy for anyone to learn. <a href="http://en.wikipedia.org/wiki/Pascal_(programming_language">http://en.wikipedia.org/wiki/Pascal_(programming_language</a> )     <br />2) <strong>Component based Programming.      <br /></strong>There is quite a large base of components available, free or paid that allows you concentrate on the &quot;Core&quot; of your application and not the little other details like how to connect a database.     <br />3) <strong>No Dependency!!!      <br /></strong>C# has the Framework that it depends on. An application compiled in Delphi has none by default. Even components used don&#8217;t create an external dependency. In C#, all the 3rd party components have to be included and some even have to be registered in the GAC (That on its own is a problem)     <br />4) <strong>Easy Database Support.      <br /></strong>Since the beginning Delphi has always had Database support. Many other components exist that expanded off that base. You can program using BDE (Please don&#8217;t), ADO, SQL, MSSQL, SQLite, MySQL, Interbase/Firebird just about any database (Except Compact SQL, very limited). And there is even Components that allow you design your entire application &quot;Database independent&quot; Which allows you to switch from MS SQL to Oracle with just a connection setting. (Provided the sql syntax is compatible)     <br />5) <strong>Low Memory usage.      <br /></strong>If you compare to C#, or VB. You&#8217;ll see a simple Hello World will require more memory than Delphi. This is usually not that important for Desktop software, but can be!     <br />6) <strong>Small Foot Print.      <br /></strong>Your compiled result is your application. No 300 megs download library, or QT, mingw, etc. It compiles into just a few megs.     <br />7) <strong>Native SPEED.      <br /></strong>Yes, we can debate speed vs C++ or .Net and what you define fast. But overall, it is mostly faster than .NET apps.     <br />8) <strong>Believe it or not, Cross Platform!      <br /></strong>Yes Free Pascal that is. Sure Delphi doesn&#8217;t do it anymore (Kylix), but the time you spend in learning Delphi is not a waste, since your knowledge can be used with Free Pascal and you can have a Linux, Mac and others.     <br />9) <strong>Known Factor.</strong> (Not sure how to word that)     <br />But in C# for example, you just NEVER EVER know when the Garbage collector will trigger or if a framework update will break your code/security, or as it happened with me, some other application installed and broke the .NET GAC, causing my application to no longer work. </p>
<p>Why not use Delphi? Versus C# (Since this is what MS Pushes) </p>
<p>1) <strong>No Garbage collector.      <br /></strong>(Yes, this can be debated on its usefulness, but in the end its still a missing feature and useful)     <br />2) <strong>No 64 Compiler!      <br /></strong>THIS BLOWS ME MIND. Free Pascal has it, many of the other languages have it, but yet. Delphi is still sitting on 32. Most desktop application will not need 64 bit. But 64 has been around for quite some time now and yet no 64 compile.    <br />3) <strong>Shrinking User base      <br /></strong>SHhhhh don&#8217;t say it too loud, but sadly, C# is stealing programmers away. I&#8217;m not talking huge numbers, but all the fuss about C# and .NET makes decision makers think its the best thing since slice bread. Which leads to less updates in Components or new Components released. Seen companies drop Delphi and go .NET only components. Always buy the source!!     <br />4) <strong>The Tossing game.      <br /></strong>What is the tossing game? I&#8217;m referring to the Borland/Imprise tossing it to CodeGear, which now is tossed (bought) by Embarcadero. I&#8217;m sure they will do good stuff with it. But in the end, it just doesn&#8217;t look good. </p>
<p>Anyhow, I prefer Delphi, but its just a language in the end, the end user will most likely not know what you used.</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-</p>
<p>Nice comment Phil. And I’m also waiting for 64bit.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mzemaitis.wordpress.com/98/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mzemaitis.wordpress.com/98/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/mzemaitis.wordpress.com/98/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/mzemaitis.wordpress.com/98/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/mzemaitis.wordpress.com/98/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/mzemaitis.wordpress.com/98/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/mzemaitis.wordpress.com/98/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/mzemaitis.wordpress.com/98/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/mzemaitis.wordpress.com/98/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/mzemaitis.wordpress.com/98/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/mzemaitis.wordpress.com/98/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/mzemaitis.wordpress.com/98/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/mzemaitis.wordpress.com/98/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/mzemaitis.wordpress.com/98/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mzemaitis.wordpress.com&amp;blog=3496207&amp;post=98&amp;subd=mzemaitis&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://mzemaitis.wordpress.com/2010/05/04/delphi-vs-c/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/8a31ca29806040496185881ddc47fb76?s=96&#38;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">mzemaitis</media:title>
		</media:content>

		<media:content url="http://mzemaitis.files.wordpress.com/2011/03/icon_delphi_thumb.png" medium="image">
			<media:title type="html">Icon_Delphi</media:title>
		</media:content>
	</item>
		<item>
		<title>Be careful with FormCloseQuery</title>
		<link>http://mzemaitis.wordpress.com/2009/09/07/be-careful-with-formclosequery/</link>
		<comments>http://mzemaitis.wordpress.com/2009/09/07/be-careful-with-formclosequery/#comments</comments>
		<pubDate>Mon, 07 Sep 2009 19:52:52 +0000</pubDate>
		<dc:creator>mzemaitis</dc:creator>
				<category><![CDATA[Delphi tips]]></category>
		<category><![CDATA[FormCloseQuery WM_QueryEndSession]]></category>

		<guid isPermaLink="false">http://mzemaitis.wordpress.com/?p=78</guid>
		<description><![CDATA[Recently I had a very hard to find bug-problem with closing my application (made in Delphi). It just refused to respond to Windows shutdown messages and prevented Windows to shutdown and restart.. I spent a lot of hours investigating this problem. Initially the first part of the problem, because I was showing a dialog&#160; for [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mzemaitis.wordpress.com&amp;blog=3496207&amp;post=78&amp;subd=mzemaitis&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><a href="http://mzemaitis.files.wordpress.com/2011/01/help64.png"><img style="border-bottom:0;border-left:0;display:inline;margin-left:0;border-top:0;margin-right:0;border-right:0;" title="help 64" border="0" alt="help 64" align="left" src="http://mzemaitis.files.wordpress.com/2011/01/help64_thumb.png?w=64&#038;h=64" width="64" height="64" /></a> Recently I had a very hard to find bug-problem with closing my application (made in Delphi).     <br />It just refused to respond to Windows shutdown messages and prevented Windows to shutdown and restart.. </p>
<p align="justify">I spent a lot of hours investigating this problem.    <br />Initially the <strong>first part</strong> of the problem, because I was showing a dialog&#160; for &quot;Really close?&quot; and preventing closing if some files are not saved, this was done in FormCloseQuery and it was stupid approach, because FormCloseQuery doesn&#8217;t know if windows is shutting down and thus preventing shutdown.</p>
<p align="justify">Then, I made a Message listeners for windows asking applications query for shutdown : <a href="http://msdn.microsoft.com/en-us/library/aa376890(VS.85).aspx" target="_blank"><strong>WM_QueryEndSession</strong></a> and <strong>WM_EndSession:</strong></p>
<div style="border-bottom:silver 1px solid;text-align:left;border-left:silver 1px solid;line-height:12pt;background-color:#f4f4f4;width:97.5%;font-family:&#039;direction:ltr;max-height:200px;font-size:8pt;overflow:auto;border-top:silver 1px solid;cursor:text;border-right:silver 1px solid;margin:20px 0 10px;padding:4px;" id="codeSnippetWrapper">
<div style="text-align:left;line-height:12pt;background-color:#f4f4f4;width:100%;font-family:&#039;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0;" id="codeSnippet">
<pre style="text-align:left;line-height:12pt;background-color:white;width:100%;font-family:&#039;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;"><span style="color:#008000;">// Shutdown messages</span></pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;width:100%;font-family:&#039;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;">procedure WMEndSession(var Msg: TWMEndSession); message WM_ENDSESSION;</pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:white;width:100%;font-family:&#039;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;"><span style="color:#008000;">// Query to Shutdown</span></pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;width:100%;font-family:&#039;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;">procedure WMQueryEndSession(var Msg: TMessage); message WM_QUERYENDSESSION;</pre>
<p><!--CRLF--></div>
</div>
<p>
  <br />The problem remained: the messages were received only <strong>second time</strong>. The first time when Windows was shutting down the application was still preventing shutdown, and only for the second Shutdown call, the messages were received and Application quit. </p>
<p>So something else was corrupting even the messages <span>queue. </span></p>
<p><span></span></p>
<p align="justify"><span>After some time, I accidentally came under another Form in same application, which also had <strong>FormCloseQuery</strong>, this time it was really needed because this Form was closing with fading effect and Query was preventing close until fader finished. So that was the <strong>second part </strong>of the problem. </p>
<p><strong>Again I needed to listen for Shutdown messages</strong> in this Form. </span></p>
<p align="justify"><span><strong>So to conclude</strong>: you need to listen for Windows shut down Messages and Queries in every form that has FormCloseQuery or better yet <strong>avoid it</strong>, if you want to let windows shutdown normally. </span></p>
<p align="justify"><span>Also to note: Delphi made applications (on Windows shutdown) exit instantly</span><span> <strong>without freeing</strong> objects, so be careful and it is a good practice to listen to Shutdown procedure and to call your own <strong>Closing and Freeing</strong> procedure manually:</span></p>
<p><span></span></p>
<div style="border-bottom:silver 1px solid;text-align:left;border-left:silver 1px solid;line-height:12pt;background-color:#f4f4f4;width:97.5%;font-family:&#039;direction:ltr;max-height:200px;font-size:8pt;overflow:auto;border-top:silver 1px solid;cursor:text;border-right:silver 1px solid;margin:20px 0 10px;padding:4px;" id="codeSnippetWrapper">
<div style="text-align:left;line-height:12pt;background-color:#f4f4f4;width:100%;font-family:&#039;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0;" id="codeSnippet">
<pre style="text-align:left;line-height:12pt;background-color:white;width:100%;font-family:&#039;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;"><span style="color:#008000;">//Windows' Query for Shutdown</span></pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;width:100%;font-family:&#039;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;">procedure TMainForm.WMQueryEndSession(var Msg: TMessage);</pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:white;width:100%;font-family:&#039;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;">begin</pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;width:100%;font-family:&#039;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;">  <span style="color:#008000;">//Windows is about to shut down - Alow or not</span></pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:white;width:100%;font-family:&#039;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;">  bForceClose := True;</pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;width:100%;font-family:&#039;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;">  Msg.Result := 1; <span style="color:#008000;">// 1 for Signal that it is OK to shut down</span></pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:white;width:100%;font-family:&#039;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;">  inherited; <span style="color:#008000;">// let the inherited message handler respond</span></pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;width:100%;font-family:&#039;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;">end;</pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:white;width:100%;font-family:&#039;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;">&#160;</pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;width:100%;font-family:&#039;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;"><span style="color:#008000;">//Windows is shutting down</span></pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:white;width:100%;font-family:&#039;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;">procedure TMainForm.WMEndSession(var Msg: TWMEndSession);</pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;width:100%;font-family:&#039;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;">begin</pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:white;width:100%;font-family:&#039;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;">  <span style="color:#008000;">// shutdowning</span></pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;width:100%;font-family:&#039;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;">  <span style="color:#0000ff;">if</span> Msg.EndSession = True then</pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:white;width:100%;font-family:&#039;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;">  begin</pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;width:100%;font-family:&#039;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;">    <span style="color:#008000;">//Windows is shutting down -- Closing'</span></pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:white;width:100%;font-family:&#039;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;">    bForceClose := True;</pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;width:100%;font-family:&#039;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;">    <span style="color:#008000;">//Be CAREFULLL - MIGTH BE DOUBLE OR NO FREEING AT ALL</span></pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:white;width:100%;font-family:&#039;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;">    CleanUp;   <span style="color:#008000;">// My Closing procedure</span></pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;width:100%;font-family:&#039;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;">    FinalDestroy; <span style="color:#008000;">// Destructor sometimes never called on shutdown !!!!!!</span></pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:white;width:100%;font-family:&#039;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;">&#160;</pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;width:100%;font-family:&#039;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;">    inherited; <span style="color:#008000;">// let the inherited message handler respond</span></pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:white;width:100%;font-family:&#039;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;">  end</pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;width:100%;font-family:&#039;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;">  <span style="color:#0000ff;">else</span></pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:white;width:100%;font-family:&#039;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;">    inherited;</pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;width:100%;font-family:&#039;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;">    <span style="color:#008000;">// Msg.Result:=0;  //Signal that we got the message - not needed</span></pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:white;width:100%;font-family:&#039;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;">end;</pre>
<p><!--CRLF--></div>
</div>
</p>
<p>bForceClose here is a global boolean variable, signaling that we should force our application closing, and if you still need <strong>FormCloseQuery</strong>&#160; check for bForceClose there (of course you need to set it <strong>false</strong> on application start):</p>
<div style="border-bottom:silver 1px solid;text-align:left;border-left:silver 1px solid;line-height:12pt;background-color:#f4f4f4;width:97.5%;font-family:&#039;direction:ltr;max-height:200px;font-size:8pt;overflow:auto;border-top:silver 1px solid;cursor:text;border-right:silver 1px solid;margin:20px 0 10px;padding:4px;" id="codeSnippetWrapper">
<div style="text-align:left;line-height:12pt;background-color:#f4f4f4;width:100%;font-family:&#039;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0;" id="codeSnippet">
<pre style="text-align:left;line-height:12pt;background-color:white;width:100%;font-family:&#039;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;">procedure TMainForm.FormCloseQuery(Sender: TObject; var CanClose: Boolean);</pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;width:100%;font-family:&#039;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;">begin</pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:white;width:100%;font-family:&#039;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;">  CanClose := True;</pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;width:100%;font-family:&#039;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;">  <span style="color:#0000ff;">if</span> not bForceClose then begin</pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:white;width:100%;font-family:&#039;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;">        <span style="color:#008000;">//no close </span></pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;width:100%;font-family:&#039;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;">        CanClose := False;</pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:white;width:100%;font-family:&#039;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;">        <span style="color:#008000;">//Do what you need here;</span></pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;width:100%;font-family:&#039;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;">  end</pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:white;width:100%;font-family:&#039;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;">  <span style="color:#0000ff;">else</span> CanClose := TRUE; <span style="color:#008000;">//Forced close</span></pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;width:100%;font-family:&#039;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;">end;</pre>
<p><!--CRLF--></div>
</div>
<p>And you need this done in every form with FormCloseQuery.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mzemaitis.wordpress.com/78/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mzemaitis.wordpress.com/78/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/mzemaitis.wordpress.com/78/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/mzemaitis.wordpress.com/78/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/mzemaitis.wordpress.com/78/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/mzemaitis.wordpress.com/78/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/mzemaitis.wordpress.com/78/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/mzemaitis.wordpress.com/78/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/mzemaitis.wordpress.com/78/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/mzemaitis.wordpress.com/78/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/mzemaitis.wordpress.com/78/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/mzemaitis.wordpress.com/78/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/mzemaitis.wordpress.com/78/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/mzemaitis.wordpress.com/78/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mzemaitis.wordpress.com&amp;blog=3496207&amp;post=78&amp;subd=mzemaitis&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://mzemaitis.wordpress.com/2009/09/07/be-careful-with-formclosequery/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/8a31ca29806040496185881ddc47fb76?s=96&#38;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">mzemaitis</media:title>
		</media:content>

		<media:content url="http://mzemaitis.files.wordpress.com/2011/01/help64_thumb.png" medium="image">
			<media:title type="html">help 64</media:title>
		</media:content>
	</item>
		<item>
		<title>Saving and Loading strings in stream the Delphi 2009 way</title>
		<link>http://mzemaitis.wordpress.com/2009/03/27/saving-and-loading-strings-in-stream-the-delphi-2009-way/</link>
		<comments>http://mzemaitis.wordpress.com/2009/03/27/saving-and-loading-strings-in-stream-the-delphi-2009-way/#comments</comments>
		<pubDate>Fri, 27 Mar 2009 14:17:31 +0000</pubDate>
		<dc:creator>mzemaitis</dc:creator>
				<category><![CDATA[Delphi tips]]></category>
		<category><![CDATA[Delphi 2009]]></category>
		<category><![CDATA[Strings Write Read Stream]]></category>

		<guid isPermaLink="false">http://mzemaitis.wordpress.com/?p=42</guid>
		<description><![CDATA[Lately, I had a simple task to save and load some short strings in file. The quickest and fastest way is to do it with streams (TFileStream or TMemoryStream). Because in Delphi 2009 string type strings are Unicode so they are also double byte sized than in previous Delphi strings. So you need to be [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mzemaitis.wordpress.com&amp;blog=3496207&amp;post=42&amp;subd=mzemaitis&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><a href="http://mzemaitis.files.wordpress.com/2009/06/refresh.png"><img style="display:inline;border-width:0;margin:0 4px 4px 0;" title="Refresh" src="http://mzemaitis.files.wordpress.com/2009/06/refresh_thumb.png?w=128&#038;h=128" border="0" alt="Refresh" width="128" height="128" align="left" /></a> Lately, I had a simple task to save and load some short strings in file.<br />
The quickest and fastest way is to do it with streams (TFileStream or TMemoryStream).</p>
<p>Because in Delphi 2009 <strong>string</strong> type strings are Unicode so they are also double byte sized than in previous Delphi strings.<br />
So you need to be very strict to write exact BYTES of the string, not characters, because character size is now 2 Bytes!</p>
<p>For Writing <strong>String </strong>to any stream use these Functions :</p>
<p><pre class="brush: delphi;">

procedure WriteStreamInt(Stream : TStream; Num : integer);
begin
 Stream.WriteBuffer(Num, SizeOf(Integer));
end;

procedure WriteStreamStr(Stream : TStream; Str : string);
var
 StrLen : integer;
begin
 StrLen := Length(Str); //All Delphi versions compatible
 WriteStreamInt(Stream, StrLen);
 Stream.WriteBuffer(Pointer(Str)^, StrLen * SizeOf(Char)); //All Delphi versions compatible
end;

</pre></p>
<p>The reading of string shoud be also exact with character size in mind. Because you can read only half of string:</p>
<p><pre class="brush: delphi;">

function ReadStreamInt(Stream : TStream) : integer;
begin
Stream.ReadBuffer(Result, SizeOf(Integer));
end;

function ReadStreamStr(Stream : TStream) : string;
var
StrLen : integer;
TempStr : string;
begin
TempStr := '';
StrLen := ReadStreamInt(Stream);
if StrLen &gt; -1 then
begin
SetLength(TempStr, StrLen);
//Here you should also check the character size
//Reading Bytes!
Stream.ReadBuffer(Pointer(TempStr)^, StrLen * SizeOf(Char));
result := TempStr;
end
else Result := '';
end;

</pre></p>
<p>Then you can write functions for writing and loading strings for example:</p>
<p><pre class="brush: delphi;">

function SaveToDFile( FileName: String; sDescr : string; ) : boolean;
var  MemStr: TMemoryStream;
begin
MemStr:= TMemoryStream.Create;
try
try
WriteStreamStr( MemStr, sDescr );
MemStr.SaveToFile(FileName);
result := True;
except
on E:EWriteError do result := False;
end;
finally
MemStr.Free;
end;
end;

function LoadFromDFile( FileName: String; var sDescr : string; ) : boolean;
var MemStr: TMemoryStream;
begin
MemStr:= TMemoryStream.Create;
try
try
MemStr.LoadFromFile(FileName);
sDescr := ReadStreamStr( MemStr );
result := True;
except
on E:EReadError do result := False;
end;
finally
MemStr.Free;
end;
end;

</pre></p>
<p>Hope it helps some.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mzemaitis.wordpress.com/42/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mzemaitis.wordpress.com/42/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/mzemaitis.wordpress.com/42/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/mzemaitis.wordpress.com/42/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/mzemaitis.wordpress.com/42/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/mzemaitis.wordpress.com/42/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/mzemaitis.wordpress.com/42/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/mzemaitis.wordpress.com/42/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/mzemaitis.wordpress.com/42/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/mzemaitis.wordpress.com/42/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/mzemaitis.wordpress.com/42/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/mzemaitis.wordpress.com/42/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/mzemaitis.wordpress.com/42/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/mzemaitis.wordpress.com/42/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mzemaitis.wordpress.com&amp;blog=3496207&amp;post=42&amp;subd=mzemaitis&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://mzemaitis.wordpress.com/2009/03/27/saving-and-loading-strings-in-stream-the-delphi-2009-way/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/8a31ca29806040496185881ddc47fb76?s=96&#38;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">mzemaitis</media:title>
		</media:content>

		<media:content url="http://mzemaitis.files.wordpress.com/2009/06/refresh_thumb.png" medium="image">
			<media:title type="html">Refresh</media:title>
		</media:content>
	</item>
		<item>
		<title>How to install Microsoft TTS Anna engine on Windows XP</title>
		<link>http://mzemaitis.wordpress.com/2009/02/19/how-to-install-microsoft-tts-anna-engine-on-windows-xp/</link>
		<comments>http://mzemaitis.wordpress.com/2009/02/19/how-to-install-microsoft-tts-anna-engine-on-windows-xp/#comments</comments>
		<pubDate>Thu, 19 Feb 2009 09:02:27 +0000</pubDate>
		<dc:creator>mzemaitis</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[Anna]]></category>
		<category><![CDATA[engine]]></category>
		<category><![CDATA[TTS]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[XP]]></category>

		<guid isPermaLink="false">http://mzemaitis.wordpress.com/?p=28</guid>
		<description><![CDATA[&#160; Microsoft introduced new TTS voice called &#34;Anna&#34; on Vista OS. Sadly it is only available for Vista and no separate download option for Windows XP users, personally I still use Windows XP on many machines. You can find more info about TTS (Text To Speech engines on Microsoft site). New voice &#34;Anna&#34; is more [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mzemaitis.wordpress.com&amp;blog=3496207&amp;post=28&amp;subd=mzemaitis&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><a href="http://mzemaitis.files.wordpress.com/2009/06/bookopensound1281.png"><img style="border-bottom:0;border-left:0;display:inline;border-top:0;border-right:0;margin:0 4px 4px;" title="book open sound 128" border="0" alt="book open sound 128" align="left" src="http://mzemaitis.files.wordpress.com/2009/06/bookopensound128_thumb1.png?w=128&#038;h=128" width="128" height="128" /></a>&#160; Microsoft introduced new TTS voice called &quot;Anna&quot; on Vista OS. Sadly it is only available for Vista and no separate download option for Windows XP users, personally I still use Windows XP on many machines. <img src='http://s0.wp.com/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /> </p>
<p>You can find more info about TTS (Text To Speech engines on <a href="http://www.microsoft.com/speech/speech2007/default.mspx">Microsoft site</a>). New voice &quot;Anna&quot; is more clear and more natural, than any other voice available on XP versi0ns.</p>
<p>Still, there is an option to use &quot;Anna&quot; voice on XP for FREE. You need to download and install <a href="http://www.microsoft.com/Streets/en-us/default.aspx">Microsoft Street And Trips 2009</a> !    <br />It is available for FREE (60 day trial version is download-able from <a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=56ccd694-4df8-4602-abfc-aea24c1dbf45&amp;DisplayLang=en">Microsoft here</a> ). Its huge, about 1,5 GB, so you need some place on your hard disk for download.</p>
<p>So download and install Streets 2009. With it also Microsoft nice &quot;Anna&quot; TTS engine is installed to pronounce (speak) street names.   <br />You can enjoy this product for 60 days, or uninstall it the same day &#8212; &quot;Anna&quot; engine will not be uninstalled ! Cool. <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />     <br />It is still left on system.    <br />You can check its properties through Control Panel&#8217;s Speech category settings.</p>
<p>Enjoy!</p>
<p>PS. It is also possible to extract only TTS Anna setup files (About 32 MB). But still you should download Streets at first. Then after installation start, look for temp folder where temporary installation files were extracted. Most probably it will be your User&#8217;s &quot;Documents and Settings/Local settings/Temp&quot; Folder. Look for TTS.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mzemaitis.wordpress.com/28/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mzemaitis.wordpress.com/28/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/mzemaitis.wordpress.com/28/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/mzemaitis.wordpress.com/28/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/mzemaitis.wordpress.com/28/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/mzemaitis.wordpress.com/28/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/mzemaitis.wordpress.com/28/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/mzemaitis.wordpress.com/28/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/mzemaitis.wordpress.com/28/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/mzemaitis.wordpress.com/28/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/mzemaitis.wordpress.com/28/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/mzemaitis.wordpress.com/28/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/mzemaitis.wordpress.com/28/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/mzemaitis.wordpress.com/28/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mzemaitis.wordpress.com&amp;blog=3496207&amp;post=28&amp;subd=mzemaitis&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://mzemaitis.wordpress.com/2009/02/19/how-to-install-microsoft-tts-anna-engine-on-windows-xp/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/8a31ca29806040496185881ddc47fb76?s=96&#38;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">mzemaitis</media:title>
		</media:content>

		<media:content url="http://mzemaitis.files.wordpress.com/2009/06/bookopensound128_thumb1.png" medium="image">
			<media:title type="html">book open sound 128</media:title>
		</media:content>
	</item>
		<item>
		<title>TCoolTrayIcon component for Delphi 2009</title>
		<link>http://mzemaitis.wordpress.com/2008/11/13/tcooltrayicon-component-for-delphi-2009/</link>
		<comments>http://mzemaitis.wordpress.com/2008/11/13/tcooltrayicon-component-for-delphi-2009/#comments</comments>
		<pubDate>Thu, 13 Nov 2008 07:32:25 +0000</pubDate>
		<dc:creator>mzemaitis</dc:creator>
				<category><![CDATA[Delphi components]]></category>
		<category><![CDATA[TCoolTrayIcon component Delphi 2009]]></category>

		<guid isPermaLink="false">http://mzemaitis.wordpress.com/?p=21</guid>
		<description><![CDATA[For those who are searching TCoolTrayIcon component written by Troels Jakobsen to support newest Delphi versions. It&#8217;s a comprehensive component for adding icons to the traybar, allowing you to put a tray icon in your own programs. Can hide, show program button on Taskbar, show hide hint balloons and similar. The original component you can [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mzemaitis.wordpress.com&amp;blog=3496207&amp;post=21&amp;subd=mzemaitis&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><a href="http://mzemaitis.files.wordpress.com/2009/06/viewquickbar.png"><img style="display:inline;border-width:0;margin:0 4px 4px 0;" title="view quick bar" border="0" alt="view quick bar" align="left" src="http://mzemaitis.files.wordpress.com/2009/06/viewquickbar_thumb.png?w=128&#038;h=128" width="128" height="128" /></a> For those who are searching TCoolTrayIcon component written by <strong>Troels Jakobsen</strong> to support newest Delphi versions.</p>
<p><em>It&#8217;s a comprehensive component for adding icons to the traybar, allowing you to put a tray icon in your own programs. Can hide, show program button on Taskbar, show hide hint balloons and similar. The original component you can find on Troel&#8217;s website here: </em><a title="http://subsimple.com/delphi.asp" href="http://subsimple.com/delphi.asp" target="_blank">http://subsimple.com/delphi.asp</a></p>
<p>&#160;</p>
<p>It&#8217;s freeware, so you can use it freely.</p>
<p>The problem is, it was updated very long ago, and supports Delphi versions until 6, though it should function ok till 2007 version.</p>
<p>As with Delphi 2009, where all string and char become full Unicode, version on Troel&#8217;s website isn&#8217;t compatible with Delphi 2009 anymore.</p>
<p>No problem. <a href="http://www.songbeamer.com/delphi/">Sebastian Zierer</a> already made some changes to support Unicode chars. You can find <strong>TCoolTrayIcon</strong> component for Delphi 2009 on his website : <a title="http://tib.s.songbeamer.eu/downloads/Cooltray.zip" href="http://tib.s.songbeamer.eu/downloads/Cooltray.zip">http://tib.s.songbeamer.eu/downloads/Cooltray.zip</a> or you can download same copy here from my website: <a href="http://ze.markos.googlepages.com/Cooltray_2009_2010.zip">Download TCoolTrayIcon zip package</a> </p>
<p>Update: 2008.11.12 fixes for Delphi 2009   <br /><font color="#ff0000">Update: 2009.09.04 with Delphi 2010 package</font></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mzemaitis.wordpress.com/21/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mzemaitis.wordpress.com/21/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/mzemaitis.wordpress.com/21/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/mzemaitis.wordpress.com/21/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/mzemaitis.wordpress.com/21/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/mzemaitis.wordpress.com/21/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/mzemaitis.wordpress.com/21/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/mzemaitis.wordpress.com/21/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/mzemaitis.wordpress.com/21/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/mzemaitis.wordpress.com/21/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/mzemaitis.wordpress.com/21/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/mzemaitis.wordpress.com/21/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/mzemaitis.wordpress.com/21/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/mzemaitis.wordpress.com/21/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mzemaitis.wordpress.com&amp;blog=3496207&amp;post=21&amp;subd=mzemaitis&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://mzemaitis.wordpress.com/2008/11/13/tcooltrayicon-component-for-delphi-2009/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/8a31ca29806040496185881ddc47fb76?s=96&#38;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">mzemaitis</media:title>
		</media:content>

		<media:content url="http://mzemaitis.files.wordpress.com/2009/06/viewquickbar_thumb.png" medium="image">
			<media:title type="html">view quick bar</media:title>
		</media:content>
	</item>
		<item>
		<title>Upgrade to Delphi 2009 or Not?</title>
		<link>http://mzemaitis.wordpress.com/2008/11/13/upgrade-to-delphi-2009-or-not/</link>
		<comments>http://mzemaitis.wordpress.com/2008/11/13/upgrade-to-delphi-2009-or-not/#comments</comments>
		<pubDate>Thu, 13 Nov 2008 06:16:50 +0000</pubDate>
		<dc:creator>mzemaitis</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://mzemaitis.wordpress.com/?p=13</guid>
		<description><![CDATA[For those who consider whether upgrade or buy Delphi 2009 I suggest to read these pages: Some user opinions: http://www.codegear.com/products/delphi/win32/quotes/ Some more views: http://blogs.codegear.com/ao/2008/09/17/38947 In my personal opinion Delphi 2009 is worth buying, even for Unicode alone. At last.<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mzemaitis.wordpress.com&amp;blog=3496207&amp;post=13&amp;subd=mzemaitis&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>For those who consider whether upgrade or buy Delphi 2009 I suggest to read these pages:</p>
<p>Some user opinions:</p>
<p><a title="http://www.codegear.com/products/delphi/win32/quotes/" href="http://www.codegear.com/products/delphi/win32/quotes/" target="_blank">http://www.codegear.com/products/delphi/win32/quotes/</a></p>
<p>Some more views:</p>
<p><a title="http://blogs.codegear.com/ao/2008/09/17/38947" href="http://blogs.codegear.com/ao/2008/09/17/38947"> http://blogs.codegear.com/ao/2008/09/17/38947</a></p>
<p>In my personal opinion Delphi 2009 is worth buying, even for Unicode alone. At last.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mzemaitis.wordpress.com/13/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mzemaitis.wordpress.com/13/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/mzemaitis.wordpress.com/13/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/mzemaitis.wordpress.com/13/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/mzemaitis.wordpress.com/13/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/mzemaitis.wordpress.com/13/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/mzemaitis.wordpress.com/13/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/mzemaitis.wordpress.com/13/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/mzemaitis.wordpress.com/13/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/mzemaitis.wordpress.com/13/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/mzemaitis.wordpress.com/13/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/mzemaitis.wordpress.com/13/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/mzemaitis.wordpress.com/13/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/mzemaitis.wordpress.com/13/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mzemaitis.wordpress.com&amp;blog=3496207&amp;post=13&amp;subd=mzemaitis&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://mzemaitis.wordpress.com/2008/11/13/upgrade-to-delphi-2009-or-not/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/8a31ca29806040496185881ddc47fb76?s=96&#38;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">mzemaitis</media:title>
		</media:content>
	</item>
	</channel>
</rss>
