<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:blogger='http://schemas.google.com/blogger/2008' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-6977069</id><updated>2013-01-24T09:41:27.297+01:00</updated><category term='C#'/><category term='ODC'/><category term='Vista'/><category term='Hack'/><category term='XE2'/><category term='D2007'/><category term='Win32'/><category term='TDM'/><category term='RTTI'/><category term='Highlander'/><category term='DotNet'/><category term='DN4DP'/><category term='Infront'/><category term='Generics'/><category term='Blog'/><title type='text'>Hallvard's Blog</title><subtitle type='html'>Confessions of a Delphi hacker - Delphi programming tips, hacks and stuff.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://hallvards.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6977069/posts/default'/><link rel='alternate' type='text/html' href='http://hallvards.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/6977069/posts/default?start-index=26&amp;max-results=25'/><author><name>Hallvard Vassbotn</name><uri>http://www.blogger.com/profile/09527199955524812466</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://vassbotn.googlepages.com/hallvard_vassbotn.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>143</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-6977069.post-1802706411842574054</id><published>2011-11-04T09:31:00.003+01:00</published><updated>2011-11-04T15:34:06.709+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Infront'/><category scheme='http://www.blogger.com/atom/ns#' term='XE2'/><category scheme='http://www.blogger.com/atom/ns#' term='D2007'/><category scheme='http://www.blogger.com/atom/ns#' term='Blog'/><title type='text'>Why no blogging? Alive and kicking :-)</title><summary type='text'>As you may have noticed (or not :), this Blog has been silent since 2008. Several people have asked me recently why I'm not blogging anymore - here is a short explanation.I was blogging quite actively for a while, but other priorities in my life (family, work, new house, exercising etc) have taken over. There is only so much time.While I've been silent on the blog for a few years now, I'm still </summary><link rel='replies' type='application/atom+xml' href='http://hallvards.blogspot.com/feeds/1802706411842574054/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6977069&amp;postID=1802706411842574054' title='13 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6977069/posts/default/1802706411842574054'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6977069/posts/default/1802706411842574054'/><link rel='alternate' type='text/html' href='http://hallvards.blogspot.com/2011/11/why-no-blogging-alive-and-kicking.html' title='Why no blogging? Alive and kicking :-)'/><author><name>Hallvard Vassbotn</name><uri>http://www.blogger.com/profile/09527199955524812466</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://vassbotn.googlepages.com/hallvard_vassbotn.jpg'/></author><thr:total>13</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6977069.post-8160679582941697514</id><published>2008-03-30T18:37:00.003+02:00</published><updated>2010-08-22T18:43:39.865+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='TDM'/><category scheme='http://www.blogger.com/atom/ns#' term='Win32'/><title type='text'>TDM#10: BorDebug – Return of the Giant</title><summary type='text'>  "The Delphi linker has always had the option of including so-called Turbo Debugger (TD32) debug information (on the Linker page of the Project Options dialog). The internal IDE Debugger does not normally use this information (Delphi 4 and 5 uses it when debugging external DLLs and EXE files), but instead relies on internal compiler structures build during an interactive compile.  External tools</summary><link rel='replies' type='application/atom+xml' href='http://hallvards.blogspot.com/feeds/8160679582941697514/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6977069&amp;postID=8160679582941697514' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6977069/posts/default/8160679582941697514'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6977069/posts/default/8160679582941697514'/><link rel='alternate' type='text/html' href='http://hallvards.blogspot.com/2008/03/tdm10-bordebug-return-of-giant.html' title='TDM#10: BorDebug – Return of the Giant'/><author><name>Hallvard Vassbotn</name><uri>http://www.blogger.com/profile/09527199955524812466</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://vassbotn.googlepages.com/hallvard_vassbotn.jpg'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6977069.post-3787089657179376846</id><published>2008-03-15T20:02:00.001+01:00</published><updated>2008-03-15T20:13:46.991+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Hack'/><category scheme='http://www.blogger.com/atom/ns#' term='TDM'/><category scheme='http://www.blogger.com/atom/ns#' term='Win32'/><title type='text'>TDM#9: Exceptional Stack Tracing (HVEST)</title><summary type='text'>One of the key questions you should ask yourself as a serious Delphi developer is; what kind of exception handling and logging am I using. If you're not using any custom or third party solution for tracking down exceptional incidents that occur in your production systems or at your customer sites, you're missing out big time! A proper exception handling and logging system should at least log the </summary><link rel='replies' type='application/atom+xml' href='http://hallvards.blogspot.com/feeds/3787089657179376846/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6977069&amp;postID=3787089657179376846' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6977069/posts/default/3787089657179376846'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6977069/posts/default/3787089657179376846'/><link rel='alternate' type='text/html' href='http://hallvards.blogspot.com/2008/03/tdm9-exceptional-stack-tracing-hvest.html' title='TDM#9: Exceptional Stack Tracing (HVEST)'/><author><name>Hallvard Vassbotn</name><uri>http://www.blogger.com/profile/09527199955524812466</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://vassbotn.googlepages.com/hallvard_vassbotn.jpg'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6977069.post-2906688389086839591</id><published>2008-03-11T23:04:00.001+01:00</published><updated>2008-03-11T23:04:49.293+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='TDM'/><title type='text'>TDM#8: DelayLoading Of DLLs</title><summary type='text'> "I don’t miss many features from Microsoft’s Visual C++ 6.0 when working in Delphi, but the new /DELAYLOAD option of the linker is one of them. This option lets you turn normal, implicit DLL import libraries into so-called delayload import libraries. This means that the DLL will not be loaded by the operating system (OS) during start-up of the EXE file, but rather on an as-needed basis when you </summary><link rel='replies' type='application/atom+xml' href='http://hallvards.blogspot.com/feeds/2906688389086839591/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6977069&amp;postID=2906688389086839591' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6977069/posts/default/2906688389086839591'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6977069/posts/default/2906688389086839591'/><link rel='alternate' type='text/html' href='http://hallvards.blogspot.com/2008/03/tdm8-delayloading-of-dlls.html' title='TDM#8: DelayLoading Of DLLs'/><author><name>Hallvard Vassbotn</name><uri>http://www.blogger.com/profile/09527199955524812466</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://vassbotn.googlepages.com/hallvard_vassbotn.jpg'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6977069.post-1792206876845664037</id><published>2008-03-06T22:16:00.001+01:00</published><updated>2008-03-06T22:16:03.626+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='TDM'/><title type='text'>TDM#7: Design Patterns; Singleton</title><summary type='text'>  "In their book Design Patterns, Gamma et al (a.k.a. the gang of four) lay the foundation for a new way of approaching software design. [...] In this article we will first look at the language elements that are unique to Object Pascal when compared to C++ and how this makes many of the problems the design patterns try to solve, non-existent, or at least much easier to solve. Then we will look at</summary><link rel='replies' type='application/atom+xml' href='http://hallvards.blogspot.com/feeds/1792206876845664037/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6977069&amp;postID=1792206876845664037' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6977069/posts/default/1792206876845664037'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6977069/posts/default/1792206876845664037'/><link rel='alternate' type='text/html' href='http://hallvards.blogspot.com/2008/03/tdm7-design-patterns-singleton.html' title='TDM#7: Design Patterns; Singleton'/><author><name>Hallvard Vassbotn</name><uri>http://www.blogger.com/profile/09527199955524812466</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://vassbotn.googlepages.com/hallvard_vassbotn.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6977069.post-5107493929241542974</id><published>2008-03-02T22:30:00.001+01:00</published><updated>2008-03-02T22:30:52.799+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='TDM'/><category scheme='http://www.blogger.com/atom/ns#' term='Win32'/><title type='text'>TDM#6: Knitting Your Own Threads</title><summary type='text'>One of the key reasons that computers have conquered the world is that they have been following Moore's Law with faster, smaller and cheaper CPUs (and similar "laws" and improvements of memory, hard disks, graphics cards, etc) coming out every year.  Until recently, all programs have just become faster and faster due to improved hardware. This has been dubbed "the free lunch" and has given sloppy</summary><link rel='replies' type='application/atom+xml' href='http://hallvards.blogspot.com/feeds/5107493929241542974/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6977069&amp;postID=5107493929241542974' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6977069/posts/default/5107493929241542974'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6977069/posts/default/5107493929241542974'/><link rel='alternate' type='text/html' href='http://hallvards.blogspot.com/2008/03/tdm6-knitting-your-own-threads.html' title='TDM#6: Knitting Your Own Threads'/><author><name>Hallvard Vassbotn</name><uri>http://www.blogger.com/profile/09527199955524812466</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://vassbotn.googlepages.com/hallvard_vassbotn.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6977069.post-4008371224435094919</id><published>2008-02-12T22:25:00.001+01:00</published><updated>2008-02-12T22:25:18.900+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='TDM'/><category scheme='http://www.blogger.com/atom/ns#' term='Win32'/><title type='text'>TDM#5: Slimming the Fat off Your Apps</title><summary type='text'>I think that the best TDM article title I've had is Slimming the Fat off Your Apps. It was published in November 1998 and we're still in the Delphi 4 era (but as always many people were still using the older versions, D2 and D3). The article intro said:  "Hallvard Vassbotn wants to slim the fat off your software: tune in here if you want [your programs] to be leaner and fitter..." The core points</summary><link rel='replies' type='application/atom+xml' href='http://hallvards.blogspot.com/feeds/4008371224435094919/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6977069&amp;postID=4008371224435094919' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6977069/posts/default/4008371224435094919'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6977069/posts/default/4008371224435094919'/><link rel='alternate' type='text/html' href='http://hallvards.blogspot.com/2008/02/tdm5-slimming-fat-off-your-apps.html' title='TDM#5: Slimming the Fat off Your Apps'/><author><name>Hallvard Vassbotn</name><uri>http://www.blogger.com/profile/09527199955524812466</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://vassbotn.googlepages.com/hallvard_vassbotn.jpg'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6977069.post-7849158572185892394</id><published>2008-01-30T22:26:00.001+01:00</published><updated>2008-01-30T22:26:51.466+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Hack'/><category scheme='http://www.blogger.com/atom/ns#' term='TDM'/><category scheme='http://www.blogger.com/atom/ns#' term='Win32'/><title type='text'>TDM#4: Delphi 4 Bugs and Fixes</title><summary type='text'>Delphi 4, released in the summer of 1998, was one of the most notorious Delphi releases ever. The initial release contained  a large number of serious bugs, and it later became clear that the release date had been pushed by management and/or marketing and not sanctioned by technical and R&amp;D.  While all of this is water under the bridge, one very visible bug, the so-called TListBox ItemIndex bug, </summary><link rel='replies' type='application/atom+xml' href='http://hallvards.blogspot.com/feeds/7849158572185892394/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6977069&amp;postID=7849158572185892394' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6977069/posts/default/7849158572185892394'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6977069/posts/default/7849158572185892394'/><link rel='alternate' type='text/html' href='http://hallvards.blogspot.com/2008/01/tdm4-delphi-4-bugs-and-fixes.html' title='TDM#4: Delphi 4 Bugs and Fixes'/><author><name>Hallvard Vassbotn</name><uri>http://www.blogger.com/profile/09527199955524812466</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://vassbotn.googlepages.com/hallvard_vassbotn.jpg'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6977069.post-6564955713052080416</id><published>2008-01-26T21:18:00.001+01:00</published><updated>2008-01-30T16:21:33.105+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='TDM'/><title type='text'>TDM#3: The Rise and Fall of TObject</title><summary type='text'> "Consider yourself an Delphi expert? Here is a test question for you: Can you name the 8 methods of TObject that are part of the process of constructing and destroying objects in Object Pascal" That was the introductionary question of my The Rise and Fall of TObject article published in The Delphi Magazine, July 1998. Now we're in the era of Delphi 3, with Delphi 4 just being released.  The </summary><link rel='replies' type='application/atom+xml' href='http://hallvards.blogspot.com/feeds/6564955713052080416/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6977069&amp;postID=6564955713052080416' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6977069/posts/default/6564955713052080416'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6977069/posts/default/6564955713052080416'/><link rel='alternate' type='text/html' href='http://hallvards.blogspot.com/2008/01/tdm3-rise-and-fall-of-tobject.html' title='TDM#3: The Rise and Fall of TObject'/><author><name>Hallvard Vassbotn</name><uri>http://www.blogger.com/profile/09527199955524812466</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://vassbotn.googlepages.com/hallvard_vassbotn.jpg'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6977069.post-14976856657439873</id><published>2008-01-24T22:00:00.001+01:00</published><updated>2008-01-24T22:00:42.504+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Hack'/><category scheme='http://www.blogger.com/atom/ns#' term='TDM'/><title type='text'>TDM#2: Hooking Heapcheck</title><summary type='text'>Inspired by the apparent popularity if my YAST article, a few months later, in July 1996, I published my second Delphi Magazine article - called Hooking HeapCheck. While the article is mainly irrelevant to 32-bit Delphis, it does show what is possible to achieve with a little hacking. The gist of the article is to expand a mostly useless, parameterless Delphi 1 memory manager callback-function, </summary><link rel='replies' type='application/atom+xml' href='http://hallvards.blogspot.com/feeds/14976856657439873/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6977069&amp;postID=14976856657439873' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6977069/posts/default/14976856657439873'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6977069/posts/default/14976856657439873'/><link rel='alternate' type='text/html' href='http://hallvards.blogspot.com/2008/01/tdm2-hooking-heapcheck.html' title='TDM#2: Hooking Heapcheck'/><author><name>Hallvard Vassbotn</name><uri>http://www.blogger.com/profile/09527199955524812466</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://vassbotn.googlepages.com/hallvard_vassbotn.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6977069.post-8971516805181733433</id><published>2008-01-22T22:20:00.001+01:00</published><updated>2008-01-23T22:29:55.075+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='TDM'/><title type='text'>TDM#1: Yet Another Stack Tracer</title><summary type='text'> "Have you ever had any really hard-to-find bugs in your code? If not, you can skip this article, otherwise you’d better keep on reading!" The above quote was the enticing introduction to my first full-feature Delphi Magazine article with the ironic title Yet Another Stack Tracer (or YAST for short). It was published in the seventh TDM issue, March 1996. The contents page said:  "YAST: Yet </summary><link rel='replies' type='application/atom+xml' href='http://hallvards.blogspot.com/feeds/8971516805181733433/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6977069&amp;postID=8971516805181733433' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6977069/posts/default/8971516805181733433'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6977069/posts/default/8971516805181733433'/><link rel='alternate' type='text/html' href='http://hallvards.blogspot.com/2008/01/tdm1-yet-another-stack-tracer.html' title='TDM#1: Yet Another Stack Tracer'/><author><name>Hallvard Vassbotn</name><uri>http://www.blogger.com/profile/09527199955524812466</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://vassbotn.googlepages.com/hallvard_vassbotn.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6977069.post-7768516724834170707</id><published>2008-01-22T22:05:00.001+01:00</published><updated>2008-01-22T22:05:06.608+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='TDM'/><category scheme='http://www.blogger.com/atom/ns#' term='Blog'/><title type='text'>Republishing my old The Delphi Magazine articles</title><summary type='text'>As you probably know The Delphi Magazine is no longer in publication. As their web-site indicates the articles and source code repository will only be online for a short while longer, but it is still possible to order the excellent value-for-money 1GB USB stick with all magazine issues and code. TDM was generally accepted as the best source of technical articles about Delphi and development </summary><link rel='replies' type='application/atom+xml' href='http://hallvards.blogspot.com/feeds/7768516724834170707/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6977069&amp;postID=7768516724834170707' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6977069/posts/default/7768516724834170707'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6977069/posts/default/7768516724834170707'/><link rel='alternate' type='text/html' href='http://hallvards.blogspot.com/2008/01/republishing-my-old-delphi-magazine.html' title='Republishing my old The Delphi Magazine articles'/><author><name>Hallvard Vassbotn</name><uri>http://www.blogger.com/profile/09527199955524812466</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://vassbotn.googlepages.com/hallvard_vassbotn.jpg'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6977069.post-1425552254874650245</id><published>2007-11-02T07:29:00.001+01:00</published><updated>2007-11-02T07:29:38.768+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DN4DP'/><title type='text'>DN4DP: The Delphi Language Chapter</title><summary type='text'> We have finally come to an end in the long running series of of The Delphi Language Chapter teasers from Jon Shemitz’ .NET 2.0 for Delphi Programmers book.  All the chapter excerpts that I have posted can be seen by clicking on the DN4DP blog label. As a service to our readers, I'm also including a full list of all the post links here. Classic Delphi and .NET book in the making  Come get a free </summary><link rel='replies' type='application/atom+xml' href='http://hallvards.blogspot.com/feeds/1425552254874650245/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6977069&amp;postID=1425552254874650245' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6977069/posts/default/1425552254874650245'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6977069/posts/default/1425552254874650245'/><link rel='alternate' type='text/html' href='http://hallvards.blogspot.com/2007/11/dn4dp-delphi-language-chapter.html' title='DN4DP: The Delphi Language Chapter'/><author><name>Hallvard Vassbotn</name><uri>http://www.blogger.com/profile/09527199955524812466</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://vassbotn.googlepages.com/hallvard_vassbotn.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6977069.post-1907968199925380997</id><published>2007-11-01T07:56:00.001+01:00</published><updated>2007-11-01T07:56:49.091+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DN4DP'/><title type='text'>DN4DP#30: Delphi vs C#</title><summary type='text'>This post continues the series of The Delphi Language Chapter teasers from Jon Shemitz’ .NET 2.0 for Delphi Programmers book.  Last time we looked at .NET and Win32 constructors. This is the final post in this long running series and it covers the main differences between Delphi and C#. Note that I do not get any royalties from the book and I highly recommend that you get your own copy – for </summary><link rel='replies' type='application/atom+xml' href='http://hallvards.blogspot.com/feeds/1907968199925380997/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6977069&amp;postID=1907968199925380997' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6977069/posts/default/1907968199925380997'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6977069/posts/default/1907968199925380997'/><link rel='alternate' type='text/html' href='http://hallvards.blogspot.com/2007/11/dn4dp30-delphi-vs-c.html' title='DN4DP#30: Delphi vs C#'/><author><name>Hallvard Vassbotn</name><uri>http://www.blogger.com/profile/09527199955524812466</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://vassbotn.googlepages.com/hallvard_vassbotn.jpg'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6977069.post-2937026876135654254</id><published>2007-10-31T07:56:00.001+01:00</published><updated>2007-10-31T07:56:20.898+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DN4DP'/><title type='text'>DN4DP#29: .NET vs Win32: Constructors</title><summary type='text'>This post continues the series of The Delphi Language Chapter teasers from Jon Shemitz’ .NET 2.0 for Delphi Programmers book.  Last time we looked at class references. This posts covers .NET vs Win32 constructors. Note that I do not get any royalties from the book and I highly recommend that you get your own copy – for instance at Amazon.  "Constructors  While it is a good rule in Win32 to have </summary><link rel='replies' type='application/atom+xml' href='http://hallvards.blogspot.com/feeds/2937026876135654254/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6977069&amp;postID=2937026876135654254' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6977069/posts/default/2937026876135654254'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6977069/posts/default/2937026876135654254'/><link rel='alternate' type='text/html' href='http://hallvards.blogspot.com/2007/10/dn4dp29-net-vs-win32-constructors.html' title='DN4DP#29: .NET vs Win32: Constructors'/><author><name>Hallvard Vassbotn</name><uri>http://www.blogger.com/profile/09527199955524812466</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://vassbotn.googlepages.com/hallvard_vassbotn.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6977069.post-6984561484281026596</id><published>2007-10-30T08:58:00.001+01:00</published><updated>2007-10-30T08:58:45.332+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DN4DP'/><title type='text'>DN4DP#28: .NET vs Win32: Class references</title><summary type='text'>This post continues the series of The Delphi Language Chapter teasers from Jon Shemitz’ .NET 2.0 for Delphi Programmers book.  Last time we looked at differences in abstract class behavior. Here we look at class references. Note that I do not get any royalties from the book and I highly recommend that you get your own copy – for instance at Amazon.  "Class references   For the most part, the </summary><link rel='replies' type='application/atom+xml' href='http://hallvards.blogspot.com/feeds/6984561484281026596/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6977069&amp;postID=6984561484281026596' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6977069/posts/default/6984561484281026596'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6977069/posts/default/6984561484281026596'/><link rel='alternate' type='text/html' href='http://hallvards.blogspot.com/2007/10/dn4dp28-net-vs-win32-class-references.html' title='DN4DP#28: .NET vs Win32: Class references'/><author><name>Hallvard Vassbotn</name><uri>http://www.blogger.com/profile/09527199955524812466</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://vassbotn.googlepages.com/hallvard_vassbotn.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6977069.post-5970838564775532976</id><published>2007-10-28T14:32:00.001+01:00</published><updated>2007-10-28T14:38:02.822+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DN4DP'/><title type='text'>DN4DP#27: .NET vs Win32: Abstract classes</title><summary type='text'>This post continues the series of The Delphi Language Chapter teasers from Jon Shemitz’ .NET 2.0 for Delphi Programmers book.  Last time we looked at initialization and finalization sections. This post covers some minor differences in abstract class behavior. Note that I do not get any royalties from the book and I highly recommend that you get your own copy – for instance at Amazon.  "Abstract </summary><link rel='replies' type='application/atom+xml' href='http://hallvards.blogspot.com/feeds/5970838564775532976/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6977069&amp;postID=5970838564775532976' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6977069/posts/default/5970838564775532976'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6977069/posts/default/5970838564775532976'/><link rel='alternate' type='text/html' href='http://hallvards.blogspot.com/2007/10/dn4dp26-net-vs-win32-abstract-classes.html' title='DN4DP#27: .NET vs Win32: Abstract classes'/><author><name>Hallvard Vassbotn</name><uri>http://www.blogger.com/profile/09527199955524812466</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://vassbotn.googlepages.com/hallvard_vassbotn.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6977069.post-2695571942931173523</id><published>2007-10-26T23:25:00.001+02:00</published><updated>2007-10-28T09:30:18.214+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DN4DP'/><title type='text'>DN4DP#26: .NET vs Win32: Initialization and finalization</title><summary type='text'>This post continues the series of The Delphi Language Chapter teasers from Jon Shemitz’ .NET 2.0 for Delphi Programmers book.  Last time we looked at the .NET and Win32 casting issues. Here we quickly covers some potential gotchas related to initialization and finalization sections. Note that I do not get any royalties from the book and I highly recommend that you get your own copy – for instance</summary><link rel='replies' type='application/atom+xml' href='http://hallvards.blogspot.com/feeds/2695571942931173523/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6977069&amp;postID=2695571942931173523' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6977069/posts/default/2695571942931173523'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6977069/posts/default/2695571942931173523'/><link rel='alternate' type='text/html' href='http://hallvards.blogspot.com/2007/10/dn4dp26-net-vs-win32-initialization-and.html' title='DN4DP#26: .NET vs Win32: Initialization and finalization'/><author><name>Hallvard Vassbotn</name><uri>http://www.blogger.com/profile/09527199955524812466</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://vassbotn.googlepages.com/hallvard_vassbotn.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6977069.post-3426280889821946841</id><published>2007-10-23T21:30:00.001+02:00</published><updated>2007-10-23T21:39:36.197+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Hack'/><category scheme='http://www.blogger.com/atom/ns#' term='Win32'/><title type='text'>Sergey Antonov implements Yield for Delphi!</title><summary type='text'>The Russian Delphi programmer Sergey Antonov (or Антонов Сергей - aka. 0xffff) is a real hacker in the positive sense. He approached me with some intriguing assembly code that implements the equivalent of the C# yield statement! Yield makes it easier to implement enumerators (you know the simple classes or records with methods like GetCurrent and MoveNext that enables the for-in statement). </summary><link rel='replies' type='application/atom+xml' href='http://hallvards.blogspot.com/feeds/3426280889821946841/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6977069&amp;postID=3426280889821946841' title='7 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6977069/posts/default/3426280889821946841'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6977069/posts/default/3426280889821946841'/><link rel='alternate' type='text/html' href='http://hallvards.blogspot.com/2007/10/sergey-antonov-implements-yield-for.html' title='Sergey Antonov implements Yield for Delphi!'/><author><name>Hallvard Vassbotn</name><uri>http://www.blogger.com/profile/09527199955524812466</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://vassbotn.googlepages.com/hallvard_vassbotn.jpg'/></author><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6977069.post-8919341729409831450</id><published>2007-10-20T22:12:00.001+02:00</published><updated>2007-10-28T09:34:50.122+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DN4DP'/><title type='text'>DN4DP#25: .NET vs Win32: Casting</title><summary type='text'>This post continues the series of The Delphi Language Chapter teasers from Jon Shemitz’ .NET 2.0 for Delphi Programmers book.  Last time we looked at the .NET and Win32 differences for untyped var and out parameters. Here we look at casting issues. Note that I do not get any royalties from the book and I highly recommend that you get your own copy – for instance at Amazon.  "Casting  There are </summary><link rel='replies' type='application/atom+xml' href='http://hallvards.blogspot.com/feeds/8919341729409831450/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6977069&amp;postID=8919341729409831450' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6977069/posts/default/8919341729409831450'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6977069/posts/default/8919341729409831450'/><link rel='alternate' type='text/html' href='http://hallvards.blogspot.com/2007/10/dn4dp25-net-vs-win32-casting.html' title='DN4DP#25: .NET vs Win32: Casting'/><author><name>Hallvard Vassbotn</name><uri>http://www.blogger.com/profile/09527199955524812466</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://vassbotn.googlepages.com/hallvard_vassbotn.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6977069.post-8034002918443325467</id><published>2007-10-17T16:46:00.001+02:00</published><updated>2007-10-20T22:10:17.497+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Win32'/><category scheme='http://www.blogger.com/atom/ns#' term='D2007'/><title type='text'>More fun with Enumerators</title><summary type='text'>As part of the new language syntax inherited from Delphi.NET, native Delphi now (since Delphi 2005) supports for-in loops (known as foreach in C#). The new syntax is easy to read, and it reduces the clutter of maintaining a loop index variable, checking boundary conditions (typically 0 and Count-1) and indexing into the array or list.   While Delphi has special built-in support for for-in for (</summary><link rel='replies' type='application/atom+xml' href='http://hallvards.blogspot.com/feeds/8034002918443325467/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6977069&amp;postID=8034002918443325467' title='17 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6977069/posts/default/8034002918443325467'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6977069/posts/default/8034002918443325467'/><link rel='alternate' type='text/html' href='http://hallvards.blogspot.com/2007/10/more-fun-with-enumerators.html' title='More fun with Enumerators'/><author><name>Hallvard Vassbotn</name><uri>http://www.blogger.com/profile/09527199955524812466</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://vassbotn.googlepages.com/hallvard_vassbotn.jpg'/></author><thr:total>17</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6977069.post-3774622060429911570</id><published>2007-10-07T13:37:00.001+02:00</published><updated>2007-10-28T09:36:59.575+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DN4DP'/><title type='text'>DN4DP#24: .NET vs Win32: Untyped parameters</title><summary type='text'>This post continues the series of The Delphi Language Chapter teasers from Jon Shemitz’ .NET 2.0 for Delphi Programmers book.  The previous post listed the Win32 specific language and RTL features. The next few posts will focus on minor differences in implementation between Win32 and .NET - starting with differences in the detailed semantics of untyped var and out parameters. Note that I do not </summary><link rel='replies' type='application/atom+xml' href='http://hallvards.blogspot.com/feeds/3774622060429911570/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6977069&amp;postID=3774622060429911570' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6977069/posts/default/3774622060429911570'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6977069/posts/default/3774622060429911570'/><link rel='alternate' type='text/html' href='http://hallvards.blogspot.com/2007/10/dn4dp24-net-vs-win32-untyped-parameters.html' title='DN4DP#24: .NET vs Win32: Untyped parameters'/><author><name>Hallvard Vassbotn</name><uri>http://www.blogger.com/profile/09527199955524812466</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://vassbotn.googlepages.com/hallvard_vassbotn.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6977069.post-545760873189528284</id><published>2007-10-05T22:08:00.001+02:00</published><updated>2007-10-05T22:08:22.956+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DN4DP'/><title type='text'>DN4DP#23: .NET only: Obsolete features</title><summary type='text'>This post continues the series of The Delphi Language Chapter teasers from Jon Shemitz’ .NET 2.0 for Delphi Programmers book.  The previous post showed how to use the mysterious P/Invoke features. This time we'll list the Win32 specific features of the language and RTL that didn't make it to the .NET side. Note that I do not get any royalties from the book and I highly recommend that you get your</summary><link rel='replies' type='application/atom+xml' href='http://hallvards.blogspot.com/feeds/545760873189528284/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6977069&amp;postID=545760873189528284' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6977069/posts/default/545760873189528284'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6977069/posts/default/545760873189528284'/><link rel='alternate' type='text/html' href='http://hallvards.blogspot.com/2007/10/dn4dp23-net-only-obsolete-features.html' title='DN4DP#23: .NET only: Obsolete features'/><author><name>Hallvard Vassbotn</name><uri>http://www.blogger.com/profile/09527199955524812466</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://vassbotn.googlepages.com/hallvard_vassbotn.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6977069.post-3660788067691845173</id><published>2007-10-02T13:16:00.000+02:00</published><updated>2007-10-05T22:00:21.302+02:00</updated><title type='text'>My article on CodeGear RAD Studio 2007</title><summary type='text'>As some of you may know, I've recently written an article/review on the new CodeGear RAD Studio 2007. It was originally written in Norwegian (my first technical article in Norwegian - that was hard:)) and published on the Hardware Business site hwb.no:http://www.hwb.no/test/utvikling/codegear_rad_studio_2007_/43487Due to popular demand, I've translated the article into English and sent it to Nick</summary><link rel='replies' type='application/atom+xml' href='http://hallvards.blogspot.com/feeds/3660788067691845173/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6977069&amp;postID=3660788067691845173' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6977069/posts/default/3660788067691845173'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6977069/posts/default/3660788067691845173'/><link rel='alternate' type='text/html' href='http://hallvards.blogspot.com/2007/10/my-article-on-codegear-rad-studio-2007.html' title='My article on CodeGear RAD Studio 2007'/><author><name>Hallvard Vassbotn</name><uri>http://www.blogger.com/profile/09527199955524812466</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://vassbotn.googlepages.com/hallvard_vassbotn.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6977069.post-1816999866646538693</id><published>2007-10-01T21:56:00.001+02:00</published><updated>2007-10-01T21:56:19.872+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DN4DP'/><title type='text'>DN4DP#22: .NET only: P/Invoke magic</title><summary type='text'>This post continues the series of The Delphi Language Chapter teasers from Jon Shemitz’ .NET 2.0 for Delphi Programmers book.  Last time we're explored an undocumented corner of the language. This time we'll explore the exotic (and cryptic?) world of P/Invoke. Note that I do not get any royalties from the book and I highly recommend that you get your own copy – for instance at Amazon.  "P/Invoke </summary><link rel='replies' type='application/atom+xml' href='http://hallvards.blogspot.com/feeds/1816999866646538693/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6977069&amp;postID=1816999866646538693' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6977069/posts/default/1816999866646538693'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6977069/posts/default/1816999866646538693'/><link rel='alternate' type='text/html' href='http://hallvards.blogspot.com/2007/10/dn4dp22-net-only-pinvoke-magic.html' title='DN4DP#22: .NET only: P/Invoke magic'/><author><name>Hallvard Vassbotn</name><uri>http://www.blogger.com/profile/09527199955524812466</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://vassbotn.googlepages.com/hallvard_vassbotn.jpg'/></author><thr:total>0</thr:total></entry></feed>