<?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: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>2011-12-20T16:17:56.744+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?max-results=100'/><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=101&amp;max-results=100'/><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>100</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='12 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>12</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><entry><id>tag:blogger.com,1999:blog-6977069.post-1681869962173801704</id><published>2007-09-30T08:45:00.001+02:00</published><updated>2007-09-30T19:24:37.955+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DN4DP'/><title type='text'>DN4DP#21: .NET only: Undocumented corner</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 covered the differenced between classic single-cast events vs .NET-style multi-cast events. This time we'll dive into an undocumented corner of the language. Note that I do not get any royalties from the book and I highly recommend that you get your own </summary><link rel='replies' type='application/atom+xml' href='http://hallvards.blogspot.com/feeds/1681869962173801704/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6977069&amp;postID=1681869962173801704' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6977069/posts/default/1681869962173801704'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6977069/posts/default/1681869962173801704'/><link rel='alternate' type='text/html' href='http://hallvards.blogspot.com/2007/09/dn4dp21-net-only-undocumented-corner.html' title='DN4DP#21: .NET only: Undocumented corner'/><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-8894678765987134688</id><published>2007-09-28T20:38:00.001+02:00</published><updated>2007-09-28T20:38:53.767+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DN4DP'/><title type='text'>DN4DP#20: .NET only: Multi-cast events</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 scared by unsafe code. Here we discuss the syntax for normal Delphi events vs .NET-style multicast events. 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.  "Multi-cast events  </summary><link rel='replies' type='application/atom+xml' href='http://hallvards.blogspot.com/feeds/8894678765987134688/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6977069&amp;postID=8894678765987134688' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6977069/posts/default/8894678765987134688'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6977069/posts/default/8894678765987134688'/><link rel='alternate' type='text/html' href='http://hallvards.blogspot.com/2007/09/dn4dp20-net-only-multi-cast-events.html' title='DN4DP#20: .NET only: Multi-cast events'/><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-1164011863106657296</id><published>2007-09-26T20:46:00.001+02:00</published><updated>2007-10-28T09:44:13.806+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DN4DP'/><title type='text'>DN4DP#19: .NET only: Unsafe code</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 a new array syntax supported in .NET. This post covers the dangerous sounding concept of unsafe code. 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.  "Unsafe code Delphi</summary><link rel='replies' type='application/atom+xml' href='http://hallvards.blogspot.com/feeds/1164011863106657296/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6977069&amp;postID=1164011863106657296' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6977069/posts/default/1164011863106657296'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6977069/posts/default/1164011863106657296'/><link rel='alternate' type='text/html' href='http://hallvards.blogspot.com/2007/09/dn4dp19-net-only-unsafe-code.html' title='DN4DP#19: .NET only: Unsafe code'/><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-2604007047349006224</id><published>2007-09-24T21:12:00.001+02:00</published><updated>2007-10-28T09:46:34.498+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DN4DP'/><title type='text'>DN4DP#18: .NET only: New array syntax</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 multi-unit namespace support. Now we will jump to a new array syntax supported in .NET. 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.  "New array syntax While native </summary><link rel='replies' type='application/atom+xml' href='http://hallvards.blogspot.com/feeds/2604007047349006224/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6977069&amp;postID=2604007047349006224' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6977069/posts/default/2604007047349006224'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6977069/posts/default/2604007047349006224'/><link rel='alternate' type='text/html' href='http://hallvards.blogspot.com/2007/09/dn4dp18-net-only-new-array-syntax.html' title='DN4DP#18: .NET only: New array syntax'/><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-1105526838926736209</id><published>2007-09-22T23:06:00.001+02:00</published><updated>2007-10-28T09:49:05.694+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DN4DP'/><title type='text'>DN4DP#17: .NET only: Multi-unit namespaces</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 covered platform differences for floating-point semantics. This time we'll look at namespace support. 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.  "Multi-unit namespaces </summary><link rel='replies' type='application/atom+xml' href='http://hallvards.blogspot.com/feeds/1105526838926736209/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6977069&amp;postID=1105526838926736209' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6977069/posts/default/1105526838926736209'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6977069/posts/default/1105526838926736209'/><link rel='alternate' type='text/html' href='http://hallvards.blogspot.com/2007/09/dn4dp17-net-only-multi-unit-namespaces.html' title='DN4DP#17: .NET only: Multi-unit namespaces'/><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-4158660624601514686</id><published>2007-09-21T21:31:00.001+02:00</published><updated>2007-10-28T09:50:16.936+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DN4DP'/><title type='text'>DN4DP#16: .NET only: Floating-point semantics</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 covered support for .NET Attributes. This time we will look at platform differences when it comes to floating-point operations. 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.</summary><link rel='replies' type='application/atom+xml' href='http://hallvards.blogspot.com/feeds/4158660624601514686/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6977069&amp;postID=4158660624601514686' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6977069/posts/default/4158660624601514686'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6977069/posts/default/4158660624601514686'/><link rel='alternate' type='text/html' href='http://hallvards.blogspot.com/2007/09/dn4dp16-net-only-floating-point.html' title='DN4DP#16: .NET only: Floating-point semantics'/><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-8235795470175814125</id><published>2007-09-20T21:57:00.001+02:00</published><updated>2007-10-28T09:51:58.469+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DN4DP'/><title type='text'>DN4DP#15: .NET only: Attributes support</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 covered support for .NET Boxing operations. We continue with the .NET specific topic of Attributes support. 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.  "Attributes </summary><link rel='replies' type='application/atom+xml' href='http://hallvards.blogspot.com/feeds/8235795470175814125/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6977069&amp;postID=8235795470175814125' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6977069/posts/default/8235795470175814125'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6977069/posts/default/8235795470175814125'/><link rel='alternate' type='text/html' href='http://hallvards.blogspot.com/2007/09/dn4dp14-net-only-attributes-support.html' title='DN4DP#15: .NET only: Attributes support'/><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-8027289316216937621</id><published>2007-09-18T18:33:00.001+02:00</published><updated>2007-09-18T18:33:10.931+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DN4DP'/><title type='text'>DN4DP#14: .NET platform support: Boxing</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 covered overloaded default array properties. The next few posts will be .NET specific - starting out with support for Boxing operations. 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/8027289316216937621/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6977069&amp;postID=8027289316216937621' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6977069/posts/default/8027289316216937621'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6977069/posts/default/8027289316216937621'/><link rel='alternate' type='text/html' href='http://hallvards.blogspot.com/2007/09/dn4dp14-net-platform-support-boxing.html' title='DN4DP#14: .NET platform support: Boxing'/><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-2163780994996724791</id><published>2007-09-17T21:36:00.001+02:00</published><updated>2007-09-17T21:36:17.755+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DN4DP'/><title type='text'>DN4DP#13: Overloaded default array properties</title><summary type='text'>It's been a while now, but this post continues the series of The Delphi Language Chapter teasers from Jon Shemitz’ .NET 2.0 for Delphi Programmers book.  What a good time to continue this series just after the major Delphi for .NET 2.0 launch, CodeGear RAD Studio 2007! The previous post covered the exotic topic of Record Helpers. Today we'll look at another exotic-ish topic - overloaded default </summary><link rel='replies' type='application/atom+xml' href='http://hallvards.blogspot.com/feeds/2163780994996724791/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6977069&amp;postID=2163780994996724791' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6977069/posts/default/2163780994996724791'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6977069/posts/default/2163780994996724791'/><link rel='alternate' type='text/html' href='http://hallvards.blogspot.com/2007/09/dn4dp13-overloaded-default-array.html' title='DN4DP#13: Overloaded default array properties'/><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-5308210404017977578</id><published>2007-09-07T22:01:00.001+02:00</published><updated>2007-09-07T22:01:28.448+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ODC'/><title type='text'>RAD Studio 2007 launch in Oslo, Friday Sept 14th</title><summary type='text'>The largest Delphi meetup.com group in the world (121 members and counting!), Oslo Delphi Club,  is arranging a launch event for the new Delphi and C++Builder version called RAD Studio 2007. This is the version that, amongst other things,  introduces full support for .NET 2.0 and Generics in Delphi for .NET (as shown here). If you're in or close to Oslo, Norway make sure you're not missing this </summary><link rel='replies' type='application/atom+xml' href='http://hallvards.blogspot.com/feeds/5308210404017977578/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6977069&amp;postID=5308210404017977578' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6977069/posts/default/5308210404017977578'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6977069/posts/default/5308210404017977578'/><link rel='alternate' type='text/html' href='http://hallvards.blogspot.com/2007/09/rad-studio-2007-launch-in-oslo-friday.html' title='RAD Studio 2007 launch in Oslo, Friday Sept 14th'/><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-377270937176953579</id><published>2007-08-28T21:42:00.001+02:00</published><updated>2007-08-28T21:42:21.626+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Highlander'/><category scheme='http://www.blogger.com/atom/ns#' term='DotNet'/><category scheme='http://www.blogger.com/atom/ns#' term='Generics'/><title type='text'>Highlander2 Beta: Generics in Delphi for .NET</title><summary type='text'>CodeGear's Delphi Product Manager Nick Hodges has once again released me from an NDA - now for the beta testing of what has been dubbed Highlander2 - the version of RAD Studio 2007 (renamed from BDS 2007) that includes an updated Delphi for .NET personality, compatible with .NET 2.0. New stuff There are many new features in this version, including:  Delphi for .NET now targets .NET 2.0, including</summary><link rel='replies' type='application/atom+xml' href='http://hallvards.blogspot.com/feeds/377270937176953579/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6977069&amp;postID=377270937176953579' title='15 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6977069/posts/default/377270937176953579'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6977069/posts/default/377270937176953579'/><link rel='alternate' type='text/html' href='http://hallvards.blogspot.com/2007/08/highlander2-beta-generics-in-delphi-for.html' title='Highlander2 Beta: Generics in Delphi for .NET'/><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>15</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6977069.post-3308799799587346366</id><published>2007-07-04T21:18:00.001+02:00</published><updated>2007-07-04T21:18:00.129+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Infront'/><category scheme='http://www.blogger.com/atom/ns#' term='Win32'/><title type='text'>Delphi programmers wanted!</title><summary type='text'>Our company, Infront AS,  is growing fast - both in terms of customers, revenue and employees. We're in the process of expanding our Client Development Team with one or two new persons. The Company:  ~20 persons  Fast growing, making profit  Realtime financial information and online trading  Customers: brokers, banks, institutions, day traders The Job:  Tools: Delphi, Subversion, FogBugz, </summary><link rel='replies' type='application/atom+xml' href='http://hallvards.blogspot.com/feeds/3308799799587346366/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6977069&amp;postID=3308799799587346366' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6977069/posts/default/3308799799587346366'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6977069/posts/default/3308799799587346366'/><link rel='alternate' type='text/html' href='http://hallvards.blogspot.com/2007/07/delphi-programmers-wanted.html' title='Delphi programmers wanted!'/><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-6854993127740777915</id><published>2007-06-22T19:58:00.001+02:00</published><updated>2007-07-04T22:14:32.836+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Infront'/><category scheme='http://www.blogger.com/atom/ns#' term='Blog'/><title type='text'>Testing WLW Maps</title><summary type='text'>I've just updated to WLW 1.0 beta 2. It has a number of nice (new and old) features. Last time I tried the Insert Map feature crashed the application, so now I'm going to try again. To avoid attracting stalkers, I will not post a map of my home, but rather the place where I work, Infront AS:  View map  I can't directly upload images to my Blogger.com account, but I don't know if that is why the </summary><link rel='replies' type='application/atom+xml' href='http://hallvards.blogspot.com/feeds/6854993127740777915/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6977069&amp;postID=6854993127740777915' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6977069/posts/default/6854993127740777915'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6977069/posts/default/6854993127740777915'/><link rel='alternate' type='text/html' href='http://hallvards.blogspot.com/2007/06/testing-wlw-maps.html' title='Testing WLW Maps'/><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-7768458435329735109</id><published>2007-06-22T19:29:00.001+02:00</published><updated>2007-06-22T19:29:21.286+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Blog'/><title type='text'>Sorry about the old post flooding!</title><summary type='text'>Changing this blog to use a template caused most of the oldest (pre Window Live Writer authored) posts to have "interesting" formatting - with cramped text, code with no end-of-lines, bold headlines in the middle of the text, and so on. I have been cleaning up the formatting of some of these old posts and this caused the RSS and Atom feeds to include these "updated" posts. It looks there is no </summary><link rel='replies' type='application/atom+xml' href='http://hallvards.blogspot.com/feeds/7768458435329735109/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6977069&amp;postID=7768458435329735109' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6977069/posts/default/7768458435329735109'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6977069/posts/default/7768458435329735109'/><link rel='alternate' type='text/html' href='http://hallvards.blogspot.com/2007/06/sorry-about-old-post-flooding.html' title='Sorry about the old post flooding!'/><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-1433747540503914237</id><published>2007-06-20T22:39:00.001+02:00</published><updated>2007-06-21T20:48:38.214+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Blog'/><title type='text'>Blog site transition, phase one done</title><summary type='text'>Welcome to a new and brighter blog! ;) I've started off with one of the standard templates. I like this one because it wastes less space at the sides, making the articles appear somewhat shorter than they are (he-he). The code syntax items should still render with the classic TP white and yellow on a blue background, but to be honest I was growing a little tired of it in the text itself. Now the </summary><link rel='replies' type='application/atom+xml' href='http://hallvards.blogspot.com/feeds/1433747540503914237/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6977069&amp;postID=1433747540503914237' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6977069/posts/default/1433747540503914237'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6977069/posts/default/1433747540503914237'/><link rel='alternate' type='text/html' href='http://hallvards.blogspot.com/2007/06/blog-site-transition-phase-one-done.html' title='Blog site transition, phase one done'/><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-2747703420910004004</id><published>2007-06-19T22:27:00.001+02:00</published><updated>2007-06-21T20:50:57.895+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Blog'/><title type='text'>Work in progress: Blog design in flux</title><summary type='text'>As you may have noticed, I'm in the process of upgrading my Blogger template to get access to some new design tools they have. This means that colors and code syntax highlighting will be wrong for a little while...</summary><link rel='replies' type='application/atom+xml' href='http://hallvards.blogspot.com/feeds/2747703420910004004/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6977069&amp;postID=2747703420910004004' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6977069/posts/default/2747703420910004004'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6977069/posts/default/2747703420910004004'/><link rel='alternate' type='text/html' href='http://hallvards.blogspot.com/2007/06/work-in-progress-blog-design-in-flux.html' title='Work in progress: Blog design in flux'/><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-1624647782369793154</id><published>2007-05-30T20:59:00.001+02:00</published><updated>2007-06-21T20:53:31.116+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DN4DP'/><title type='text'>DN4DP#12: Record Helpers</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 explained how destructors and Free works in .NET. This one covers record helpers. 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.  "Record Helpers Just as you can have class </summary><link rel='replies' type='application/atom+xml' href='http://hallvards.blogspot.com/feeds/1624647782369793154/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6977069&amp;postID=1624647782369793154' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6977069/posts/default/1624647782369793154'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6977069/posts/default/1624647782369793154'/><link rel='alternate' type='text/html' href='http://hallvards.blogspot.com/2007/05/dn4dp12-record-helpers.html' title='DN4DP#12: Record Helpers'/><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-3674277550606800796</id><published>2007-05-30T20:58:00.001+02:00</published><updated>2007-06-21T20:53:31.117+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DN4DP'/><title type='text'>DN4DP#11: The try-finally-Free pattern</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 covered class helpers and why they were invented. This post looks in more detail at the TObjectHelper class helper and the Free method. Note that I do not get any royalties from the book and I highly recommend that you get your own copy – for instance at </summary><link rel='replies' type='application/atom+xml' href='http://hallvards.blogspot.com/feeds/3674277550606800796/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6977069&amp;postID=3674277550606800796' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6977069/posts/default/3674277550606800796'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6977069/posts/default/3674277550606800796'/><link rel='alternate' type='text/html' href='http://hallvards.blogspot.com/2007/05/dn4dp11-try-finally-free-pattern.html' title='DN4DP#11: The try-finally-Free pattern'/><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-2200839463148383920</id><published>2007-05-30T20:57:00.001+02:00</published><updated>2007-06-21T20:53:31.117+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><category scheme='http://www.blogger.com/atom/ns#' term='DN4DP'/><title type='text'>DN4DP#10: With a little help from your friends</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 how you can import identifiers that happens to conflict with Pascal keywords. This post includes the section on class helpers. Note that I do not get any royalties from the book and I highly recommend that you get your own copy – for instance at </summary><link rel='replies' type='application/atom+xml' href='http://hallvards.blogspot.com/feeds/2200839463148383920/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6977069&amp;postID=2200839463148383920' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6977069/posts/default/2200839463148383920'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6977069/posts/default/2200839463148383920'/><link rel='alternate' type='text/html' href='http://hallvards.blogspot.com/2007/05/dn4dp10-with-little-help-from-your.html' title='DN4DP#10: With a little help from your friends'/><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-7879744117792203304</id><published>2007-05-19T11:50:00.001+02:00</published><updated>2007-06-21T20:53:31.117+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DN4DP'/><title type='text'>DN4DP#9: Escaping keywords</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 covered the internationalization of Pascal identifiers. This time we will see how you can use imported identifiers that conflict with Pascal keywords. 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/7879744117792203304/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6977069&amp;postID=7879744117792203304' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6977069/posts/default/7879744117792203304'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6977069/posts/default/7879744117792203304'/><link rel='alternate' type='text/html' href='http://hallvards.blogspot.com/2007/05/dn4dp9-escaping-keywords.html' title='DN4DP#9: Escaping keywords'/><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-8573562989815185910</id><published>2007-05-18T22:03:00.001+02:00</published><updated>2007-07-04T22:14:32.837+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Infront'/><category scheme='http://www.blogger.com/atom/ns#' term='Win32'/><title type='text'>Use the full FastMM! Consider donating!</title><summary type='text'>A few years ago, it would be interesting to ask what memory manager (MM) you are using in your Delphi projects. You had the old-in-the-tooth in-the-box 32-bit Delphi RTM MM that was the default MM in Delphi 2 through Delphi 7, simple wrappers around Win32 API HeapAlloc, freeware alternatives such as MultiMM, RecyclerMM, PSD, AAHpDeFr, Bucket, and commercial alternatives such as SmartHeap, Nexus </summary><link rel='replies' type='application/atom+xml' href='http://hallvards.blogspot.com/feeds/8573562989815185910/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6977069&amp;postID=8573562989815185910' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6977069/posts/default/8573562989815185910'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6977069/posts/default/8573562989815185910'/><link rel='alternate' type='text/html' href='http://hallvards.blogspot.com/2007/05/use-full-fastmm-consider-donating.html' title='Use the full FastMM! Consider donating!'/><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-7054986266076544559</id><published>2007-05-16T22:35:00.001+02:00</published><updated>2007-06-21T21:00:15.682+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Hack'/><category scheme='http://www.blogger.com/atom/ns#' term='RTTI'/><title type='text'>Hack#17: Virtual class variables, Part II</title><summary type='text'>In Part I of this blog post we introduced the concept of virtual class variables - a feature currently (Delphi 2007) lacking from Object Pascal (and most other languages). We also covered a potential syntax and suggested some compiler implementation details. In this post we will continue by looking at some hacks to try and implement the functionality of virtual class fields manually by using some</summary><link rel='replies' type='application/atom+xml' href='http://hallvards.blogspot.com/feeds/7054986266076544559/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6977069&amp;postID=7054986266076544559' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6977069/posts/default/7054986266076544559'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6977069/posts/default/7054986266076544559'/><link rel='alternate' type='text/html' href='http://hallvards.blogspot.com/2007/05/hack17-virtual-class-variables-part-ii.html' title='Hack#17: Virtual class variables, Part II'/><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-5232884476809168281</id><published>2007-05-07T00:01:00.001+02:00</published><updated>2007-06-21T20:53:31.118+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DN4DP'/><title type='text'>DN4DP#8: Unicode identifiers</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 included the section on the new inlining support of the compiler. This post briefly covers the internationalization of Pascal identifiers (Klingon code, anyone?). Note that I do not get any royalties from the book and I highly recommend that you get your own </summary><link rel='replies' type='application/atom+xml' href='http://hallvards.blogspot.com/feeds/5232884476809168281/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6977069&amp;postID=5232884476809168281' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6977069/posts/default/5232884476809168281'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6977069/posts/default/5232884476809168281'/><link rel='alternate' type='text/html' href='http://hallvards.blogspot.com/2007/05/dn4dp8-unicode-identifiers.html' title='DN4DP#8: Unicode identifiers'/><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-6388711504802030910</id><published>2007-05-04T21:27:00.001+02:00</published><updated>2007-06-21T21:00:15.682+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Hack'/><category scheme='http://www.blogger.com/atom/ns#' term='Win32'/><category scheme='http://www.blogger.com/atom/ns#' term='RTTI'/><title type='text'>Hack#17: Virtual class variables, Part I</title><summary type='text'>[Note: This blog post was inspired by an email conversation I had with Patrick van Logchem - more details on this in Part II] Proper Object Pascal support for class var variables was first introduced in Delphi 8 for .NET and later in Delphi 2005 for Win32. Functionally class vars in Object Pascal (and most other languages, for that matter) work like class-scoped global variables, i.e. their </summary><link rel='replies' type='application/atom+xml' href='http://hallvards.blogspot.com/feeds/6388711504802030910/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6977069&amp;postID=6388711504802030910' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6977069/posts/default/6388711504802030910'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6977069/posts/default/6388711504802030910'/><link rel='alternate' type='text/html' href='http://hallvards.blogspot.com/2007/05/hack17-virtual-class-variables-part-i.html' title='Hack#17: Virtual class variables, Part I'/><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>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6977069.post-3779015681700060684</id><published>2007-04-27T21:42:00.001+02:00</published><updated>2007-06-20T23:11:03.654+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='D2007'/><title type='text'>Psst, a special price for you, my friend...</title><summary type='text'>An item that may interest you is available at eBay now, click here. PS: I still have another Delphi 2007 licence.</summary><link rel='replies' type='application/atom+xml' href='http://hallvards.blogspot.com/feeds/3779015681700060684/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6977069&amp;postID=3779015681700060684' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6977069/posts/default/3779015681700060684'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6977069/posts/default/3779015681700060684'/><link rel='alternate' type='text/html' href='http://hallvards.blogspot.com/2007/04/psst-special-price-for-you-my-friend.html' title='Psst, a special price for you, my friend...'/><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-8445774177979548682</id><published>2007-04-17T21:46:00.001+02:00</published><updated>2007-06-21T20:53:31.118+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Win32'/><category scheme='http://www.blogger.com/atom/ns#' term='DN4DP'/><title type='text'>DN4DP#7: Inlined routines</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 covered the new for in loop and the pattern for introducing enumeration support to your own classes. This post includes the section on the inlining support of the compiler. Note that I do not get any royalties from the book and I highly recommend that you get </summary><link rel='replies' type='application/atom+xml' href='http://hallvards.blogspot.com/feeds/8445774177979548682/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6977069&amp;postID=8445774177979548682' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6977069/posts/default/8445774177979548682'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6977069/posts/default/8445774177979548682'/><link rel='alternate' type='text/html' href='http://hallvards.blogspot.com/2007/04/dn4dp7-inlined-routines.html' title='DN4DP#7: Inlined routines'/><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-2095557669824670002</id><published>2007-04-11T16:17:00.000+02:00</published><updated>2007-06-20T23:12:06.185+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><title type='text'>Subversion in Delphi's Tools menu</title><summary type='text'>Joe White writes about how to add Tools menu items with Subversion commands here.For some reason, the Submit button didn't work on his Comments page (running IE6), so I'll just write my comment here:Nice, thanks!I've been meaning to do the same thing for a while, but kept postponing it. Shame about the space-before-macro requirement in the Tools menu - you should probably log it in QC.I didn't </summary><link rel='replies' type='application/atom+xml' href='http://hallvards.blogspot.com/feeds/2095557669824670002/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6977069&amp;postID=2095557669824670002' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6977069/posts/default/2095557669824670002'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6977069/posts/default/2095557669824670002'/><link rel='alternate' type='text/html' href='http://hallvards.blogspot.com/2007/04/subversion-in-delphis-tools-menu.html' title='Subversion in Delphi&apos;s Tools menu'/><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>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6977069.post-9012047135171092891</id><published>2007-04-08T14:34:00.001+02:00</published><updated>2007-06-21T21:00:15.683+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Hack'/><category scheme='http://www.blogger.com/atom/ns#' term='RTTI'/><title type='text'>Hack#16: Published field RTTI replacement trick</title><summary type='text'>We're back to fixing the interesting (learning-wise) problem of the flickering TProgressBar on Windows Vista. We have already looked at two relatively dirty and intrusive hacks that either overwrites the TClass reference inside each progress bar instance or overwrites the dynamic method table pointer of the original TProgressBar VMT. There are other related code page overwrite hacks that we may </summary><link rel='replies' type='application/atom+xml' href='http://hallvards.blogspot.com/feeds/9012047135171092891/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6977069&amp;postID=9012047135171092891' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6977069/posts/default/9012047135171092891'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6977069/posts/default/9012047135171092891'/><link rel='alternate' type='text/html' href='http://hallvards.blogspot.com/2007/04/hack16-published-field-rtti-replacement.html' title='Hack#16: Published field RTTI replacement trick'/><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-2716837647068680626</id><published>2007-04-03T23:15:00.001+02:00</published><updated>2007-06-21T20:53:31.119+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Win32'/><category scheme='http://www.blogger.com/atom/ns#' term='DN4DP'/><title type='text'>DN4DP#6: Enumerating collections</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 showed how it is now possible to override the meaning of language operators. This time we'll cover the new for in loop and the pattern for introducing enumeration support to your own classes.  Note that I do not get any royalties from the book and I highly </summary><link rel='replies' type='application/atom+xml' href='http://hallvards.blogspot.com/feeds/2716837647068680626/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6977069&amp;postID=2716837647068680626' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6977069/posts/default/2716837647068680626'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6977069/posts/default/2716837647068680626'/><link rel='alternate' type='text/html' href='http://hallvards.blogspot.com/2007/04/dn4dp6-enumerating-collections.html' title='DN4DP#6: Enumerating collections'/><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-9216319724746126176</id><published>2007-03-31T23:00:00.001+02:00</published><updated>2007-06-21T20:53:31.120+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Win32'/><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><category scheme='http://www.blogger.com/atom/ns#' term='DN4DP'/><title type='text'>DN4DP#5: Redefining the operators</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 talked about the new record syntax. This time we will look at the exciting new operator overloading capabilities.  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.  "Redefining the </summary><link rel='replies' type='application/atom+xml' href='http://hallvards.blogspot.com/feeds/9216319724746126176/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6977069&amp;postID=9216319724746126176' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6977069/posts/default/9216319724746126176'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6977069/posts/default/9216319724746126176'/><link rel='alternate' type='text/html' href='http://hallvards.blogspot.com/2007/03/dn4dp5-redefining-operators.html' title='DN4DP#5: Redefining the operators'/><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-2189613265153530125</id><published>2007-03-23T23:50:00.001+01:00</published><updated>2007-06-20T23:09:09.517+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Hack'/><title type='text'>Hack#15: Overriding message and dynamic methods at run-time</title><summary type='text'>Last time we looked at a way of completely changing the class of a running object instance. As we discussed there, that hacking technique had a number of problems. But there are many ways to skin a cat (sorry, cat lovers!), and in the case of trying to fix the TProgressBar flickering issue on Windows Vista without changing the interface declaration of TProgressBar there are at least three other </summary><link rel='replies' type='application/atom+xml' href='http://hallvards.blogspot.com/feeds/2189613265153530125/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6977069&amp;postID=2189613265153530125' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6977069/posts/default/2189613265153530125'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6977069/posts/default/2189613265153530125'/><link rel='alternate' type='text/html' href='http://hallvards.blogspot.com/2007/03/hack15-overriding-message-and-dynamic.html' title='Hack#15: Overriding message and dynamic methods at run-time'/><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-5312597626754970537</id><published>2007-03-22T22:53:00.001+01:00</published><updated>2007-06-21T21:00:15.683+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Hack'/><category scheme='http://www.blogger.com/atom/ns#' term='Win32'/><category scheme='http://www.blogger.com/atom/ns#' term='RTTI'/><title type='text'>Hack#14: Changing the class of an object at run-time</title><summary type='text'>Sometimes (such as when you for one reason or another need to stay backwards compatible with binary dcus) you may have to employ a hack or two. One such hack is to change the actual run-time class of an object instance. You might need to do this to override a virtual, dynamic or message method, for instance. Vista and ProgressBar flickering One such case; for some reason (most probably a bug fix)</summary><link rel='replies' type='application/atom+xml' href='http://hallvards.blogspot.com/feeds/5312597626754970537/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6977069&amp;postID=5312597626754970537' title='7 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6977069/posts/default/5312597626754970537'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6977069/posts/default/5312597626754970537'/><link rel='alternate' type='text/html' href='http://hallvards.blogspot.com/2007/03/hack14-changing-class-of-object-at-run.html' title='Hack#14: Changing the class of an object at run-time'/><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-5711991801961648856</id><published>2007-03-21T22:47:00.001+01:00</published><updated>2007-06-20T23:12:06.186+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='D2007'/><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><title type='text'>Delphi 2007 ESD arrived - one gotcha</title><summary type='text'>We ordered Delphi 2007 ESD from the local Norwegian CodeGear distributor alfacode.no a few days ago and earlier today the email with download link and licence keys arrived (the DVD will arrive in a couple of weeks, they say). I downloaded the installer stub that then downloads and installs the required binaries - it all worked very smoothly. After the install was done Delphi 2007 ran fine. But I </summary><link rel='replies' type='application/atom+xml' href='http://hallvards.blogspot.com/feeds/5711991801961648856/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6977069&amp;postID=5711991801961648856' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6977069/posts/default/5711991801961648856'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6977069/posts/default/5711991801961648856'/><link rel='alternate' type='text/html' href='http://hallvards.blogspot.com/2007/03/delphi-2007-esd-arrived-one-gotcha.html' title='Delphi 2007 ESD arrived - one gotcha'/><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-4900817457835734842</id><published>2007-03-19T13:38:00.000+01:00</published><updated>2007-06-21T20:51:48.663+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Vista'/><title type='text'>Application Shutdown Changes in Windows Vista</title><summary type='text'>Microsoft Vista new best practices, implementation and APIs for application shutdown notification and behavior: Application Shutdown Changes in Windows Vista</summary><link rel='replies' type='application/atom+xml' href='http://hallvards.blogspot.com/feeds/4900817457835734842/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6977069&amp;postID=4900817457835734842' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6977069/posts/default/4900817457835734842'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6977069/posts/default/4900817457835734842'/><link rel='alternate' type='text/html' href='http://hallvards.blogspot.com/2007/03/application-shutdown-changes-in-windows.html' title='Application Shutdown Changes in Windows Vista'/><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-712770959032993402</id><published>2007-03-19T12:40:00.000+01:00</published><updated>2007-06-20T23:11:03.654+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='D2007'/><title type='text'>The Delphi Geek: Delphi 2007 is here!</title><summary type='text'>Primoz Gabrijelcic has created a summary with links to all blog posts about the Delphi 2007 beta: The Delphi Geek: Delphi 2007 is here!</summary><link rel='replies' type='application/atom+xml' href='http://hallvards.blogspot.com/feeds/712770959032993402/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6977069&amp;postID=712770959032993402' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6977069/posts/default/712770959032993402'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6977069/posts/default/712770959032993402'/><link rel='alternate' type='text/html' href='http://hallvards.blogspot.com/2007/03/delphi-geek-delphi-2007-is-here.html' title='The Delphi Geek: Delphi 2007 is here!'/><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-1498640942459210627</id><published>2007-03-19T11:45:00.000+01:00</published><updated>2007-06-21T20:51:48.663+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Vista'/><title type='text'>Vista User Account Control and Command Line Applications</title><summary type='text'>Fredrik Haglund has a good post on Vista and UAC: Vista User Account Control and Command Line Applications</summary><link rel='related' href='http://blogs.codegear.com/fhaglund/archive/2007/03/19/33207.aspx' title='Vista User Account Control and Command Line Applications'/><link rel='replies' type='application/atom+xml' href='http://hallvards.blogspot.com/feeds/1498640942459210627/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6977069&amp;postID=1498640942459210627' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6977069/posts/default/1498640942459210627'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6977069/posts/default/1498640942459210627'/><link rel='alternate' type='text/html' href='http://hallvards.blogspot.com/2007/03/vista-user-account-control-and-command.html' title='Vista User Account Control and Command Line Applications'/><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-1382537050095392791</id><published>2007-03-14T22:24:00.001+01:00</published><updated>2007-06-21T20:53:31.121+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DN4DP'/><title type='text'>DN4DP#4: Setting new records</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 talked about the new capability of nesting types and constants inside other class declarations. This time we will look at the extended and OOP-like syntax and functionality for plain old record types. Note that I do not get any royalties from the book and I </summary><link rel='replies' type='application/atom+xml' href='http://hallvards.blogspot.com/feeds/1382537050095392791/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6977069&amp;postID=1382537050095392791' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6977069/posts/default/1382537050095392791'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6977069/posts/default/1382537050095392791'/><link rel='alternate' type='text/html' href='http://hallvards.blogspot.com/2007/03/dn4dp4-setting-new-records.html' title='DN4DP#4: Setting new records'/><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-4794990766118748445</id><published>2007-03-11T21:59:00.001+01:00</published><updated>2007-06-21T20:51:48.664+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Hack'/><category scheme='http://www.blogger.com/atom/ns#' term='Win32'/><category scheme='http://www.blogger.com/atom/ns#' term='Highlander'/><category scheme='http://www.blogger.com/atom/ns#' term='Vista'/><category scheme='http://www.blogger.com/atom/ns#' term='D2007'/><title type='text'>Review: Delphi 2007 for Win32 (Beta) - part three</title><summary type='text'> Read the part one and two first. What's new in the VCL There are quite a few bugfixes in the VCL (as well as the RTL), but we'll not go into them in detail here. While remaining binary .dcu compatible, CodeGear has managed the feat of adding new functionality and even new properties on the existing TCustomForm class.  The GlassFrame property hack In particular, all forms now have a GlassFrame </summary><link rel='replies' type='application/atom+xml' href='http://hallvards.blogspot.com/feeds/4794990766118748445/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6977069&amp;postID=4794990766118748445' title='10 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6977069/posts/default/4794990766118748445'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6977069/posts/default/4794990766118748445'/><link rel='alternate' type='text/html' href='http://hallvards.blogspot.com/2007/03/review-delphi-2007-for-win32-beta-part_11.html' title='Review: Delphi 2007 for Win32 (Beta) - part three'/><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>10</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6977069.post-130138792796708621</id><published>2007-03-06T20:22:00.001+01:00</published><updated>2007-06-21T20:51:48.664+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Hack'/><category scheme='http://www.blogger.com/atom/ns#' term='Win32'/><category scheme='http://www.blogger.com/atom/ns#' term='Highlander'/><category scheme='http://www.blogger.com/atom/ns#' term='Vista'/><category scheme='http://www.blogger.com/atom/ns#' term='D2007'/><title type='text'>Review: Delphi 2007 for Win32 (Beta) - part two</title><summary type='text'>Read part one here first. What more is new in the compiler?  New published vs $M+ behavior The new "W1055 PUBLISHED caused RTTI ($M+) to be added to type '%s' " warning is interesting. It solves one of the issues we discussed earlier. In earlier versions of the compiler, if you compiled code like this:&lt;!-- Highlighted Pascal code generated by DelphiDabbler PasH --&gt;type  TMyClass = class  private</summary><link rel='replies' type='application/atom+xml' href='http://hallvards.blogspot.com/feeds/130138792796708621/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6977069&amp;postID=130138792796708621' title='12 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6977069/posts/default/130138792796708621'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6977069/posts/default/130138792796708621'/><link rel='alternate' type='text/html' href='http://hallvards.blogspot.com/2007/03/review-delphi-2007-for-win32-beta-part_06.html' title='Review: Delphi 2007 for Win32 (Beta) - part two'/><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>12</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6977069.post-8028328345134903628</id><published>2007-03-01T23:25:00.000+01:00</published><updated>2007-06-21T20:51:48.665+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Hack'/><category scheme='http://www.blogger.com/atom/ns#' term='Win32'/><category scheme='http://www.blogger.com/atom/ns#' term='Highlander'/><category scheme='http://www.blogger.com/atom/ns#' term='Vista'/><category scheme='http://www.blogger.com/atom/ns#' term='D2007'/><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><title type='text'>Review: Delphi 2007 for Win32 (Beta) - part one</title><summary type='text'>Nick Hodges of CodeGear contacted me and gave me permission to talk about the upcoming Delphi 2007 for Win32 product - codenamed Spacely. Note that this review is based on a pre-release Beta build 2063 from mid February. Anything you see here is subject to change in the release version.The installerHere are a few screenshots of how the new installer looks like - click them to see them in full </summary><link rel='replies' type='application/atom+xml' href='http://hallvards.blogspot.com/feeds/8028328345134903628/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6977069&amp;postID=8028328345134903628' title='16 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6977069/posts/default/8028328345134903628'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6977069/posts/default/8028328345134903628'/><link rel='alternate' type='text/html' href='http://hallvards.blogspot.com/2007/03/review-delphi-2007-for-win32-beta-part.html' title='Review: Delphi 2007 for Win32 (Beta) - part one'/><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>16</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6977069.post-116915117262708832</id><published>2007-01-18T21:12:00.000+01:00</published><updated>2007-06-21T20:50:57.895+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Blog'/><title type='text'>The Five Things Meme</title><summary type='text'>You probably know the drill by now. The good Dr. Bob tagged me with this infectious Five Things Meme and now I'm supposed to tell five things about myself that you probably didn't know. Oh - the excitement! ;) If you fall asleep halfway through the list - come back tomorrow. Ok - here we go:  In my childhood and youth I have had part-time jobs as a paperboy, flower delivery, painter (on walls, </summary><link rel='replies' type='application/atom+xml' href='http://hallvards.blogspot.com/feeds/116915117262708832/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6977069&amp;postID=116915117262708832' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6977069/posts/default/116915117262708832'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6977069/posts/default/116915117262708832'/><link rel='alternate' type='text/html' href='http://hallvards.blogspot.com/2007/01/five-things-meme.html' title='The Five Things Meme'/><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-116595685609117097</id><published>2006-12-12T21:54:00.000+01:00</published><updated>2006-12-15T22:56:07.583+01:00</updated><title type='text'>The history of the CodeGear name</title><summary type='text'>A while back, Michael Swindell (Borland CodeGear), posted the story about how the CodeGear name was picked to the delphi.nontech newsgroup. First it was established that Michael had recently bought the domain name codegear.com. Then someone asked:  Can you tell us how much cost you that ? And Michael's reply was an interesting read of the story behind the name:  one BILLION dollars.... &lt;g&gt; heh...</summary><link rel='replies' type='application/atom+xml' href='http://hallvards.blogspot.com/feeds/116595685609117097/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6977069&amp;postID=116595685609117097' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6977069/posts/default/116595685609117097'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6977069/posts/default/116595685609117097'/><link rel='alternate' type='text/html' href='http://hallvards.blogspot.com/2006/12/history-of-codegear-name.html' title='The history of the CodeGear name'/><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-116594076058492451</id><published>2006-12-12T17:26:00.000+01:00</published><updated>2007-06-20T23:13:17.569+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ODC'/><title type='text'>Don't miss the Oslo Delphi Day, Dec 15th 2006!</title><summary type='text'>In a joined operation between Alfacode AS (and Thomas Fjeld), CodeGear Stockholm (represented by Fredrik Haglund) and the Oslo Delphi Club, we are arranging the Oslo Delphi Day on Friday December 15th.  The key attraction is three presentations held by tech Speaker Extraordinaire, Chad Z. Hower (aka Kudzu) of Indy and IntraWeb fame. In addition there will be few sessions by Fredrik and myself. </summary><link rel='replies' type='application/atom+xml' href='http://hallvards.blogspot.com/feeds/116594076058492451/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6977069&amp;postID=116594076058492451' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6977069/posts/default/116594076058492451'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6977069/posts/default/116594076058492451'/><link rel='alternate' type='text/html' href='http://hallvards.blogspot.com/2006/12/dont-miss-oslo-delphi-day-dec-15th.html' title='Don&apos;t miss the Oslo Delphi Day, Dec 15th 2006!'/><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-116431655964182841</id><published>2006-11-23T22:15:00.000+01:00</published><updated>2007-06-21T20:53:31.123+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DN4DP'/><title type='text'>DN4DP#3: Nesting habits</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 learned about the new class member visibility specifiers that are available, abstract classes and final methods. This time we will look at the syntax and semantics of nested classes. Note that I do not get any royalties from the book and I highly recommend </summary><link rel='replies' type='application/atom+xml' href='http://hallvards.blogspot.com/feeds/116431655964182841/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6977069&amp;postID=116431655964182841' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6977069/posts/default/116431655964182841'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6977069/posts/default/116431655964182841'/><link rel='alternate' type='text/html' href='http://hallvards.blogspot.com/2006/11/dn4dp3-nesting-habits.html' title='DN4DP#3: Nesting habits'/><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-116431632093379178</id><published>2006-11-23T22:12:00.000+01:00</published><updated>2007-06-20T23:13:17.570+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ODC'/><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><title type='text'>Borland and CodeGear</title><summary type='text'>As most of you will already know, Borland has now moved its developer tools group into a separate company called CodeGear. CodeGear, which will still be wholly owned by Borland, will continue to develop, sell and support developer tools like Delphi, C++Builder, JBuilder and Interbase. There are also indications that they are moving into the webspace with support for languages such as PHP, Pyhon, </summary><link rel='replies' type='application/atom+xml' href='http://hallvards.blogspot.com/feeds/116431632093379178/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6977069&amp;postID=116431632093379178' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6977069/posts/default/116431632093379178'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6977069/posts/default/116431632093379178'/><link rel='alternate' type='text/html' href='http://hallvards.blogspot.com/2006/11/borland-and-codegear.html' title='Borland and CodeGear'/><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-115955829850088001</id><published>2006-09-29T21:31:00.000+02:00</published><updated>2007-06-20T23:12:06.186+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Hack'/><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><title type='text'>Hack#13: Access globals faster ($ImportedData)</title><summary type='text'>There is an aura of magic around Delphi packages. Packages allow you to share Delphi code at a much higher level than is possible with plain old DLLs. Writing a DLL-based library API involves writing flat non-OOP global routines and avoiding any data types more advanced than integers, doubles, static arrays, PChar and records. You cannot share or exchange classes, objects, global variables or let</summary><link rel='replies' type='application/atom+xml' href='http://hallvards.blogspot.com/feeds/115955829850088001/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6977069&amp;postID=115955829850088001' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6977069/posts/default/115955829850088001'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6977069/posts/default/115955829850088001'/><link rel='alternate' type='text/html' href='http://hallvards.blogspot.com/2006/09/hack13-access-globals-faster.html' title='Hack#13: Access globals faster ($ImportedData)'/><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-115912358053097884</id><published>2006-09-24T20:46:00.000+02:00</published><updated>2007-06-20T23:12:30.740+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'>Hack#12: Create smaller .EXE files ($SetPEFlags)</title><summary type='text'>No, this post is not about so-called EXE-compressors - I don't believe in using them. And it is not a pure hack in the sense that we're breaking any rules - its just about documenting an undocumented and unknown feature of the Delphi 2006 Win32 compiler (it is not implemented in D7 - I don't know about D2005 yet as I don't have it installed on this laptop anymore).  Background infoWhen you </summary><link rel='replies' type='application/atom+xml' href='http://hallvards.blogspot.com/feeds/115912358053097884/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6977069&amp;postID=115912358053097884' title='10 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6977069/posts/default/115912358053097884'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6977069/posts/default/115912358053097884'/><link rel='alternate' type='text/html' href='http://hallvards.blogspot.com/2006/09/hack12-create-smaller-exe-files.html' title='Hack#12: Create smaller .EXE files ($SetPEFlags)'/><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>10</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6977069.post-115884199462265007</id><published>2006-09-21T14:33:00.000+02:00</published><updated>2007-06-20T23:12:54.078+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ODC'/><title type='text'>ODC#2: 1st Oslo Delphi Club event was great!</title><summary type='text'>Unbelievable, but true - only two weeks after the Oslo Delphi Club was created we have 48 members and counting! And on Wednesday September 20th we gathered not less than 21 members to the first ever meeting at the local Peppe's Pizza joint to share good food, beverages, background stories and enthusiasm of Delphi, DevCo and the Oslo Delphi Club.  The room I had booked was packed to the last seat.</summary><link rel='replies' type='application/atom+xml' href='http://hallvards.blogspot.com/feeds/115884199462265007/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6977069&amp;postID=115884199462265007' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6977069/posts/default/115884199462265007'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6977069/posts/default/115884199462265007'/><link rel='alternate' type='text/html' href='http://hallvards.blogspot.com/2006/09/odc2-1st-oslo-delphi-club-event-was.html' title='ODC#2: 1st Oslo Delphi Club event was great!'/><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-115825924739962855</id><published>2006-09-14T20:40:00.000+02:00</published><updated>2007-06-20T23:12:54.079+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ODC'/><title type='text'>ODC#1: First ever Oslo Delphi Club meeting!</title><summary type='text'>The Oslo Delphi Meetup group has now been created and the first meeting is scheduled to be Wednesday September 20th, at a local pizza place. If you are a Delphi programmer situated in or close to Oslo, make sure you join the group and signup for the meeting.   PS. IMO, the Oslo Delphi group hasn't finalized its name yet. The archetypical English name that meetup.com uses is The Oslo Delphi Meetup</summary><link rel='replies' type='application/atom+xml' href='http://hallvards.blogspot.com/feeds/115825924739962855/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6977069&amp;postID=115825924739962855' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6977069/posts/default/115825924739962855'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6977069/posts/default/115825924739962855'/><link rel='alternate' type='text/html' href='http://hallvards.blogspot.com/2006/09/odc1-first-ever-oslo-delphi-club.html' title='ODC#1: First ever Oslo Delphi Club meeting!'/><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-115807902075009950</id><published>2006-09-12T18:37:00.000+02:00</published><updated>2007-06-21T20:53:31.123+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Hack'/><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><category scheme='http://www.blogger.com/atom/ns#' term='DN4DP'/><title type='text'>DN4DP#2: Protecting your privates</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 learned about the new kinds of class members that have become available; class fields, class static methods, class properties and class constructors. This time we will look at the new class member visibility specifiers that are available, abstract classes and </summary><link rel='replies' type='application/atom+xml' href='http://hallvards.blogspot.com/feeds/115807902075009950/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6977069&amp;postID=115807902075009950' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6977069/posts/default/115807902075009950'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6977069/posts/default/115807902075009950'/><link rel='alternate' type='text/html' href='http://hallvards.blogspot.com/2006/09/dn4dp2-protecting-your-privates.html' title='DN4DP#2: Protecting your privates'/><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>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6977069.post-115800464489996473</id><published>2006-09-11T21:57:00.000+02:00</published><updated>2007-06-21T21:00:15.683+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Hack'/><category scheme='http://www.blogger.com/atom/ns#' term='Win32'/><category scheme='http://www.blogger.com/atom/ns#' term='RTTI'/><title type='text'>Hack#11: Get the GUID of an interface reference</title><summary type='text'>Recently Randy Magruder approached me with a very interesting sounding project he is working on:  "What I'd like to do is effectively add/remove new interfaces to a class at runtime, and invoke them. I have done enough that I can use the OTAServices model in Delphi to pass in additional interfaces, add them to an internal list, and override the QueryInterface behavior to return something in a </summary><link rel='replies' type='application/atom+xml' href='http://hallvards.blogspot.com/feeds/115800464489996473/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6977069&amp;postID=115800464489996473' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6977069/posts/default/115800464489996473'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6977069/posts/default/115800464489996473'/><link rel='alternate' type='text/html' href='http://hallvards.blogspot.com/2006/09/hack11-get-guid-of-interface-reference.html' title='Hack#11: Get the GUID of an interface reference'/><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>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6977069.post-115766105926567688</id><published>2006-09-07T22:30:00.000+02:00</published><updated>2007-06-20T23:13:59.651+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ODC'/><title type='text'>Oslo Delphi Meetup Group started!</title><summary type='text'>We have now started the Oslo Delphi Meetup Group (or "Brukergruppen for Delphi i Oslo" as it is called in Norwegian). If you have a chance to participate in upcoming meetings in Oslo and is interested in Delphi (I assume you are - why else would you be here;)) please sign up as a member here.  Membership is free, but using the meetup.com site isn't (there is a monthly fee). For the time being </summary><link rel='replies' type='application/atom+xml' href='http://hallvards.blogspot.com/feeds/115766105926567688/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6977069&amp;postID=115766105926567688' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6977069/posts/default/115766105926567688'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6977069/posts/default/115766105926567688'/><link rel='alternate' type='text/html' href='http://hallvards.blogspot.com/2006/09/oslo-delphi-meetup-group-started.html' title='Oslo Delphi Meetup Group started!'/><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-115757504929694798</id><published>2006-09-06T22:37:00.000+02:00</published><updated>2007-10-28T09:21:19.768+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='RTTI'/><title type='text'>Extended Class RTTI</title><summary type='text'>As has been mentioned earlier, Delphi (since version 7) supports extended RTTI on the methods of a class - by compiling the class with $METHODINFO ON defined. This RTTI includes the signature information of the public and published methods. Delphi uses this to implement scripting of Delphi code in the WebSnap framework - see ObjAuto and friends for the details. I have now been able to write my </summary><link rel='replies' type='application/atom+xml' href='http://hallvards.blogspot.com/feeds/115757504929694798/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6977069&amp;postID=115757504929694798' title='12 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6977069/posts/default/115757504929694798'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6977069/posts/default/115757504929694798'/><link rel='alternate' type='text/html' href='http://hallvards.blogspot.com/2006/09/extended-class-rtti.html' title='Extended Class RTTI'/><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>12</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6977069.post-115703537150812078</id><published>2006-08-31T16:32:00.000+02:00</published><updated>2007-06-23T22:08:47.271+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Win32'/><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><category scheme='http://www.blogger.com/atom/ns#' term='DN4DP'/><title type='text'>DN4DP#1: Getting classy</title><summary type='text'>As most of you will know by now, I was the tech editor of Jon Shemitz’ great .NET 2.0 for Delphi Programmers book and I wrote chapter 10 on The Delphi Language – covering what’s new in the language since Delphi 7. Jon has made one chapter available for download. To give you some extra teasers from the book, I will in the coming months post a few excerpts of The Delphi Language chapter. Note that </summary><link rel='replies' type='application/atom+xml' href='http://hallvards.blogspot.com/feeds/115703537150812078/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6977069&amp;postID=115703537150812078' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6977069/posts/default/115703537150812078'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6977069/posts/default/115703537150812078'/><link rel='alternate' type='text/html' href='http://hallvards.blogspot.com/2006/08/dn4dp1-getting-classy_31.html' title='DN4DP#1: Getting classy'/><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-115688321251034872</id><published>2006-08-29T22:26:00.000+02:00</published><updated>2007-07-04T22:14:32.837+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Infront'/><category scheme='http://www.blogger.com/atom/ns#' term='ODC'/><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><title type='text'>Nordic Delphi meetup groups</title><summary type='text'>Last week I had a very nice meeting and dinner with DevCo’s Nordic representatives Fredrik Haglund (Developer Relations and Evangelist) and Dan Nygren (Account Manager). We had some interesting discussions about everything from nuclear power plants to Delphi and DevCo. These guys are very dedicated and on a mission to make DevCo and Delphi succeed even better than under the Borland umbrella.One </summary><link rel='replies' type='application/atom+xml' href='http://hallvards.blogspot.com/feeds/115688321251034872/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6977069&amp;postID=115688321251034872' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6977069/posts/default/115688321251034872'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6977069/posts/default/115688321251034872'/><link rel='alternate' type='text/html' href='http://hallvards.blogspot.com/2006/08/nordic-delphi-meetup-groups.html' title='Nordic Delphi meetup groups'/><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-115567142484432971</id><published>2006-08-15T21:50:00.000+02:00</published><updated>2007-10-28T09:18:54.444+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Hack'/><category scheme='http://www.blogger.com/atom/ns#' term='RTTI'/><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><title type='text'>Extended Interface RTTI</title><summary type='text'>To support the most basic mechanisms of its SOAP architecture, Delphi has supported extended interface RTTI since version 7. As we saw in the previous article, all interfaces support basic RTTI information such as the name of the interface, its GUID, unit, parent interface and number of methods. To enable extended RTTI on an interface, compile it with {$M+}, {$TYPINFO ON} or {$METHODINFO ON} </summary><link rel='replies' type='application/atom+xml' href='http://hallvards.blogspot.com/feeds/115567142484432971/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6977069&amp;postID=115567142484432971' title='16 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6977069/posts/default/115567142484432971'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6977069/posts/default/115567142484432971'/><link rel='alternate' type='text/html' href='http://hallvards.blogspot.com/2006/08/extended-interface-rtti.html' title='Extended Interface RTTI'/><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>16</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6977069.post-115126391951469722</id><published>2006-06-25T21:31:00.000+02:00</published><updated>2007-06-23T21:56:12.657+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DN4DP'/><title type='text'>.NET 2.0 for Delphi programmers available now</title><summary type='text'>Jon Shemitz’ classic .NET 2.0 for Delphi Programmers book is now available in hardcover and shipping from Amazon and other online and old-fashioned book shops. I don’t have my own copy yet – if you already have yours, you can be the first to write an Amazon review. Read my review of it here. As I’ve mentioned before there is a sample chapter online at Jon’s site. Highly recommended!</summary><link rel='replies' type='application/atom+xml' href='http://hallvards.blogspot.com/feeds/115126391951469722/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6977069&amp;postID=115126391951469722' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6977069/posts/default/115126391951469722'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6977069/posts/default/115126391951469722'/><link rel='alternate' type='text/html' href='http://hallvards.blogspot.com/2006/06/net-20-for-delphi-programmers.html' title='.NET 2.0 for Delphi programmers available now'/><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>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6977069.post-114945449499233008</id><published>2006-06-04T22:54:00.000+02:00</published><updated>2007-06-23T21:51:43.689+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='RTTI'/><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><title type='text'>Simple Interface RTTI</title><summary type='text'>Delphi supports getting RTTI for all interfaces, but it does not include method information for “normal” interfaces.&lt;!-- Highlighted Pascal code generated by DelphiDabbler PasH --&gt;type  {$M-}  IMyMMInterface = interface    procedure Foo;  end;  By using the built-in TypeInfo function on the interface type, we get a pointer to the RTTI structure the compiler has generated for it, a pointer to a </summary><link rel='replies' type='application/atom+xml' href='http://hallvards.blogspot.com/feeds/114945449499233008/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6977069&amp;postID=114945449499233008' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6977069/posts/default/114945449499233008'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6977069/posts/default/114945449499233008'/><link rel='alternate' type='text/html' href='http://hallvards.blogspot.com/2006/06/simple-interface-rtti.html' title='Simple Interface RTTI'/><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>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6977069.post-114945364116875869</id><published>2006-06-04T22:28:00.000+02:00</published><updated>2007-06-23T21:47:59.638+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Blog'/><title type='text'>Blog feed: atom2rss converter down</title><summary type='text'>As one of my diligent readers made me aware of, the free service I've been using to convert Blogger's Atom-only based XML feed to the more widespread RSS format has stopped working for some time now. The service I used is documented here:http://www.2rss.com/software.php?page=atom2rssWhen I initially created this blog, I included a link of the following formathttp://www.2rss.com/atom2rss.php?atom=</summary><link rel='replies' type='application/atom+xml' href='http://hallvards.blogspot.com/feeds/114945364116875869/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6977069&amp;postID=114945364116875869' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6977069/posts/default/114945364116875869'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6977069/posts/default/114945364116875869'/><link rel='alternate' type='text/html' href='http://hallvards.blogspot.com/2006/06/blog-feed-atom2rss-converter-down.html' title='Blog feed: atom2rss converter down'/><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-114945193389990377</id><published>2006-06-04T22:12:00.000+02:00</published><updated>2007-06-23T21:46:31.390+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Hack'/><category scheme='http://www.blogger.com/atom/ns#' term='Win32'/><category scheme='http://www.blogger.com/atom/ns#' term='RTTI'/><title type='text'>Digging into SOAP and WebSnap</title><summary type='text'>In previous articles on this blog we have dissected the internal workings of published methods, and lamented the (assumed) fact that the RTTI for them does not include signature information. We then developed a dirty (and pretty useless) hack to dig out the parameters of a published method by matching it with the RTTI of an event that references the method at runtime. As I briefly mentioned in my</summary><link rel='replies' type='application/atom+xml' href='http://hallvards.blogspot.com/feeds/114945193389990377/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6977069&amp;postID=114945193389990377' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6977069/posts/default/114945193389990377'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6977069/posts/default/114945193389990377'/><link rel='alternate' type='text/html' href='http://hallvards.blogspot.com/2006/06/digging-into-soap-and-websnap.html' title='Digging into SOAP and WebSnap'/><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-114883982787680417</id><published>2006-05-28T20:10:00.000+02:00</published><updated>2007-10-28T09:18:31.996+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Hack'/><category scheme='http://www.blogger.com/atom/ns#' term='RTTI'/><title type='text'>David Glassborow on extended RTTI</title><summary type='text'>It turns out the story (part one, two and three) about getting RTTI for published method parameters isn’t over yet :-). In Delphi 7, Borland extended the RTTI capabilities in order to support SOAP and WebSnap by introducing the (then undocumented) $METHODINFO compiler directive. We’ll look at this in more detail later, but in the mean time make sure you go to David Glassborow’s blog to read his </summary><link rel='replies' type='application/atom+xml' href='http://hallvards.blogspot.com/feeds/114883982787680417/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6977069&amp;postID=114883982787680417' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6977069/posts/default/114883982787680417'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6977069/posts/default/114883982787680417'/><link rel='alternate' type='text/html' href='http://hallvards.blogspot.com/2006/05/david-glassborow-on-extended-rtti.html' title='David Glassborow on extended RTTI'/><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-114810899077135122</id><published>2006-05-20T09:09:00.000+02:00</published><updated>2007-06-23T21:44:57.043+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Hack'/><category scheme='http://www.blogger.com/atom/ns#' term='RTTI'/><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><title type='text'>Published fields details</title><summary type='text'>In the previous article we looked at how published fields are used by the IDE and VCL to make component references easy to use and to find class references from component type strings. Now we want to dig deeper down into the implementation details of published fields. Starting with analyzing the assembly code in TObject.FieldAddress I was able to reconstruct these approximate Pascal structures:&lt;!</summary><link rel='replies' type='application/atom+xml' href='http://hallvards.blogspot.com/feeds/114810899077135122/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6977069&amp;postID=114810899077135122' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6977069/posts/default/114810899077135122'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6977069/posts/default/114810899077135122'/><link rel='alternate' type='text/html' href='http://hallvards.blogspot.com/2006/05/published-fields-details.html' title='Published fields details'/><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-114761783125440180</id><published>2006-05-14T16:43:00.000+02:00</published><updated>2007-06-23T21:41:45.668+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='RTTI'/><title type='text'>Published fields</title><summary type='text'>In our little series about reverse engineering the undocumented fields of the Delphi VMT, we have come to the FieldTable field. This field points to structures that describe the published fields of a class. In Delphi, published fields must be object references and are mainly used by forms and datamodules to store component references in logically named and easy to use fields (the alternative </summary><link rel='replies' type='application/atom+xml' href='http://hallvards.blogspot.com/feeds/114761783125440180/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6977069&amp;postID=114761783125440180' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6977069/posts/default/114761783125440180'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6977069/posts/default/114761783125440180'/><link rel='alternate' type='text/html' href='http://hallvards.blogspot.com/2006/05/published-fields.html' title='Published fields'/><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-114737930039141922</id><published>2006-05-11T22:28:00.000+02:00</published><updated>2007-06-23T21:38:01.735+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Hack'/><category scheme='http://www.blogger.com/atom/ns#' term='RTTI'/><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><title type='text'>Hack #10: Getting the parameters of published methods</title><summary type='text'>This hack is not normally very useful, but inspired by a comment on the first published methods article, I started to investigate how it could be done. Recall that the compiler currently does not encode the method signature when generating RTTI for published methods – only the code address and name string is stored.So initially, it seems impossible to obtain this information. But let’s backtrack </summary><link rel='replies' type='application/atom+xml' href='http://hallvards.blogspot.com/feeds/114737930039141922/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6977069&amp;postID=114737930039141922' title='8 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6977069/posts/default/114737930039141922'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6977069/posts/default/114737930039141922'/><link rel='alternate' type='text/html' href='http://hallvards.blogspot.com/2006/05/hack-10-getting-parameters-of.html' title='Hack #10: Getting the parameters of published methods'/><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>8</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6977069.post-114737810355328939</id><published>2006-05-11T22:08:00.000+02:00</published><updated>2007-06-23T20:58:54.160+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DN4DP'/><title type='text'>Come get a free sample chapter!</title><summary type='text'> Jon Shemitz has made a chapter called Strings and Files from his upcoming .NET 2.0 for Delphi Programmers book available for download (I was the tech editor of the book). Click this link to go to his book site and download the chapter. You can also take a look at the front matter (including a most generous acknowledgement – thanks Jon!) and the impressive index. When you have read the great </summary><link rel='replies' type='application/atom+xml' href='http://hallvards.blogspot.com/feeds/114737810355328939/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6977069&amp;postID=114737810355328939' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6977069/posts/default/114737810355328939'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6977069/posts/default/114737810355328939'/><link rel='alternate' type='text/html' href='http://hallvards.blogspot.com/2006/05/come-get-free-sample-chapter.html' title='Come get a free sample 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>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6977069.post-114660100239441017</id><published>2006-05-02T22:16:00.000+02:00</published><updated>2007-06-23T20:57:02.099+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='RTTI'/><title type='text'>Under the hood of published methods</title><summary type='text'>Now that we have covered what published methods are, how the IDE and VCL uses them in .DFM streaming and how to use them polymorphically, we are ready to dive deeper to see how they are implemented under the hood.If you have been following this series of articles about the polymorphic features of the Delphi language, you will have noticed that the VMT contains a MethodTable field, currently </summary><link rel='replies' type='application/atom+xml' href='http://hallvards.blogspot.com/feeds/114660100239441017/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6977069&amp;postID=114660100239441017' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6977069/posts/default/114660100239441017'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6977069/posts/default/114660100239441017'/><link rel='alternate' type='text/html' href='http://hallvards.blogspot.com/2006/05/under-hood-of-published-methods.html' title='Under the hood of published methods'/><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>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6977069.post-114643198598937907</id><published>2006-04-30T23:19:00.000+02:00</published><updated>2007-06-23T20:55:05.032+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><title type='text'>Pure interfaces in Delphi</title><summary type='text'>In a comment on the recent interface-list blog post Huseyn asks:  “In Delphi we expect all interfaces be descendants of IUnknown [or IInterface - HV], but in [the] C world there are many even more basic interfaces which are not inherited from IUnknown. I came across one of them in a DLL which I need to use. But I couldn't do it using Delphi.” It is true that a Delphi interface declaration always </summary><link rel='replies' type='application/atom+xml' href='http://hallvards.blogspot.com/feeds/114643198598937907/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6977069&amp;postID=114643198598937907' title='10 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6977069/posts/default/114643198598937907'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6977069/posts/default/114643198598937907'/><link rel='alternate' type='text/html' href='http://hallvards.blogspot.com/2006/04/pure-interfaces-in-delphi.html' title='Pure interfaces in 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>10</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6977069.post-114631149067710109</id><published>2006-04-29T13:26:00.000+02:00</published><updated>2007-06-23T20:53:33.016+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='RTTI'/><title type='text'>Getting a list of implemented interfaces</title><summary type='text'>Frenk asked in the non-tech newsgroup: "Is there some way to find out which interfaces (interface list) a particular component implements (I don't know [the interfaces], so querying is not possible)?" Yes, there is.Call TObject.GetInterfaceTable to get a pointer to the list of interfaces a specific class implements - see System.pas for details. Note that this does not include interfaces that you </summary><link rel='replies' type='application/atom+xml' href='http://hallvards.blogspot.com/feeds/114631149067710109/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6977069&amp;postID=114631149067710109' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6977069/posts/default/114631149067710109'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6977069/posts/default/114631149067710109'/><link rel='alternate' type='text/html' href='http://hallvards.blogspot.com/2006/04/getting-list-of-implemented-interfaces.html' title='Getting a list of implemented interfaces'/><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-114616662270086430</id><published>2006-04-27T21:37:00.000+02:00</published><updated>2007-06-23T20:51:40.328+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Hack'/><category scheme='http://www.blogger.com/atom/ns#' term='RTTI'/><title type='text'>Published methods</title><summary type='text'>Normally not thought of (or used as) an object-oriented features, published methods rely in RTTI to enable runtime lookup of methods by using a string with the method name. This is used extensively by the IDE and VCL when you are writing event handlers at design time. When you create a new event handler (by double-clicking on an empty event value in the Object Inspector) or when you associate an </summary><link rel='replies' type='application/atom+xml' href='http://hallvards.blogspot.com/feeds/114616662270086430/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6977069&amp;postID=114616662270086430' title='7 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6977069/posts/default/114616662270086430'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6977069/posts/default/114616662270086430'/><link rel='alternate' type='text/html' href='http://hallvards.blogspot.com/2006/04/published-methods_27.html' title='Published methods'/><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-114470302352823073</id><published>2006-04-10T23:03:00.000+02:00</published><updated>2007-06-23T20:49:54.026+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Hack'/><category scheme='http://www.blogger.com/atom/ns#' term='RTTI'/><title type='text'>Hack #9: Dynamic method table structure</title><summary type='text'>One of the compiler magic slots in a class’ virtual method table (VMT) is a pointer to that class’ dynamic method table (DMT). A class only has a DMT if it declares or overrides one or more dynamic (or message) methods. The DMT contains a 16-bit (word) Count followed by an array[0..Count-1] of Smallint indices and an array[0..Count-1] of pointers containing  the code address of the dynamic method</summary><link rel='replies' type='application/atom+xml' href='http://hallvards.blogspot.com/feeds/114470302352823073/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6977069&amp;postID=114470302352823073' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6977069/posts/default/114470302352823073'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6977069/posts/default/114470302352823073'/><link rel='alternate' type='text/html' href='http://hallvards.blogspot.com/2006/04/hack-9-dynamic-method-table-structure.html' title='Hack #9: Dynamic method table structure'/><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>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6977069.post-114448228829142409</id><published>2006-04-08T09:44:00.000+02:00</published><updated>2007-06-23T20:47:05.781+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='RTTI'/><title type='text'>Dynamic methods compiler implementation</title><summary type='text'>In a previous article, we have covered how the compiler implements non-virtual and virtual method calls. We have also discussed the rationale and semantics of dynamic methods. You’ll recall that dynamic methods works just like virtual methods, only slower. In this article we’ll dig down into the compiler magic and RTL support that is used to support dynamic methods. Note that most of the </summary><link rel='replies' type='application/atom+xml' href='http://hallvards.blogspot.com/feeds/114448228829142409/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6977069&amp;postID=114448228829142409' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6977069/posts/default/114448228829142409'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6977069/posts/default/114448228829142409'/><link rel='alternate' type='text/html' href='http://hallvards.blogspot.com/2006/04/dynamic-methods-compiler.html' title='Dynamic methods compiler implementation'/><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-114418260577645914</id><published>2006-04-04T22:30:00.000+02:00</published><updated>2007-06-23T20:44:13.894+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Win32'/><category scheme='http://www.blogger.com/atom/ns#' term='RTTI'/><title type='text'>Dynamic methods and inherited</title><summary type='text'>In an earlier blog post we covered how virtual methods and inherited calls work. In Delphi there is another kind of polymorphic method, the dynamic method. Note that this polymorphism series targets only the native Win32 platform, but suffice to mention that in Delphi for .NET, dynamic methods are actually identical to virtual methods. In Win32, message methods use the same underlying compiler </summary><link rel='replies' type='application/atom+xml' href='http://hallvards.blogspot.com/feeds/114418260577645914/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6977069&amp;postID=114418260577645914' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6977069/posts/default/114418260577645914'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6977069/posts/default/114418260577645914'/><link rel='alternate' type='text/html' href='http://hallvards.blogspot.com/2006/04/dynamic-methods-and-inherited.html' title='Dynamic methods and inherited'/><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-114390706574320204</id><published>2006-04-01T17:46:00.000+02:00</published><updated>2007-07-04T22:14:32.837+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Infront'/><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><title type='text'>Book review: The Pragmatic Programmer</title><summary type='text'> After finishing tech editing and reviewing Jon Shemitz’ excellent upcoming .NET 2.0 for Delphi programmers, I’ve got some more spare time to write blog articles and to read. Thanks to David Cummins and Pearson Publishing Group, we at Infront now have a small library of high-quality tech books, ranging from C# and .NET, to C++, security, hacking, methodology, science and more (the Delphi side we </summary><link rel='replies' type='application/atom+xml' href='http://hallvards.blogspot.com/feeds/114390706574320204/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6977069&amp;postID=114390706574320204' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6977069/posts/default/114390706574320204'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6977069/posts/default/114390706574320204'/><link rel='alternate' type='text/html' href='http://hallvards.blogspot.com/2006/04/book-review-pragmatic-programmer.html' title='Book review: The Pragmatic Programmer'/><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>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6977069.post-114323911194673565</id><published>2006-03-24T23:25:00.000+01:00</published><updated>2007-06-23T20:39:35.603+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Hack'/><category scheme='http://www.blogger.com/atom/ns#' term='RTTI'/><title type='text'>Hack #8: Explicit VMT calls</title><summary type='text'>To accommodate the COM binary protocol in the pre-interface Delphi 2 era, all user-defined virtual methods have positive VMT offsets. This also means that TObject-defined virtual methods have negative VMT offsets. In addition the VMT also contains a number of “magic” fields to support features such as parent class link, instance size, class name, dynamic method table, published methods table, </summary><link rel='replies' type='application/atom+xml' href='http://hallvards.blogspot.com/feeds/114323911194673565/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6977069&amp;postID=114323911194673565' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6977069/posts/default/114323911194673565'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6977069/posts/default/114323911194673565'/><link rel='alternate' type='text/html' href='http://hallvards.blogspot.com/2006/03/hack-8-explicit-vmt-calls.html' title='Hack #8: Explicit VMT calls'/><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-114323907672702894</id><published>2006-03-24T23:24:00.000+01:00</published><updated>2007-06-23T20:37:21.525+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Hack'/><category scheme='http://www.blogger.com/atom/ns#' term='Win32'/><category scheme='http://www.blogger.com/atom/ns#' term='RTTI'/><title type='text'>Method calls compiler implementation</title><summary type='text'>To support its many language features, the Delphi compiler uses a number of different data structures and machine code generation patterns. To help in understanding how the Delphi language features are implemented, to make it easier to recognize these patterns when debugging at the assembly level, and to make it possible to know what you're doing if you want to run-time patch code, I'll discuss </summary><link rel='replies' type='application/atom+xml' href='http://hallvards.blogspot.com/feeds/114323907672702894/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6977069&amp;postID=114323907672702894' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6977069/posts/default/114323907672702894'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6977069/posts/default/114323907672702894'/><link rel='alternate' type='text/html' href='http://hallvards.blogspot.com/2006/03/method-calls-compiler-implementation.html' title='Method calls compiler implementation'/><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></feed>
