<?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-19696866</id><updated>2011-11-27T17:01:49.433-08:00</updated><category term='software release'/><category term='Tip'/><category term='Delphi Wizard Framework'/><category term='Delphi-XE'/><category term='Delphi'/><title type='text'>Ramblings of a Delphi Addict</title><subtitle type='html'>A blog mostly about Delphi programming.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://delphiaddict.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19696866/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://delphiaddict.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>SKamradt</name><uri>http://www.blogger.com/profile/16762334852308664245</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>13</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-19696866.post-8269066356574828950</id><published>2010-10-15T19:20:00.004-07:00</published><updated>2010-10-15T19:34:11.453-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Delphi'/><category scheme='http://www.blogger.com/atom/ns#' term='Tip'/><category scheme='http://www.blogger.com/atom/ns#' term='Delphi-XE'/><title type='text'>Delphi Tip : Avoiding Project101</title><summary type='text'>It is inevitable.  In my hurry to test something I created yet another console application and started entering some code. Funny thing how the project numbers keep mounting, and I have no recollection what any of these small test applications do since every default project goes into the same directory.The solution turned out to be quite simple.  Remove the WRITE access to the default project </summary><link rel='replies' type='application/atom+xml' href='http://delphiaddict.blogspot.com/feeds/8269066356574828950/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19696866&amp;postID=8269066356574828950' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19696866/posts/default/8269066356574828950'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19696866/posts/default/8269066356574828950'/><link rel='alternate' type='text/html' href='http://delphiaddict.blogspot.com/2010/10/delphi-tip-avoiding-project101.html' title='Delphi Tip : Avoiding Project101'/><author><name>SKamradt</name><uri>http://www.blogger.com/profile/16762334852308664245</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_0oDRZw-8nEo/TLkNnBysi0I/AAAAAAAAATw/z5LNxS12Xo4/s72-c/SaveProject101.png' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19696866.post-8287776254556821987</id><published>2008-12-19T08:43:00.006-08:00</published><updated>2008-12-19T09:58:05.315-08:00</updated><title type='text'>Delphi Wizard Framework - SetAllowDeletion</title><summary type='text'>In my previous posts about my wizard framework, I discussed some of the original design decisions, as well as how to perform simple forward navigation.The Delphi Wizard Framework is currently being hosted by google code hosting, which I briefly reviewed in a previous post.One of the problems that I ran into quickly after starting this system was the issue of displaying a wizard form that doesn't </summary><link rel='replies' type='application/atom+xml' href='http://delphiaddict.blogspot.com/feeds/8287776254556821987/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19696866&amp;postID=8287776254556821987' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19696866/posts/default/8287776254556821987'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19696866/posts/default/8287776254556821987'/><link rel='alternate' type='text/html' href='http://delphiaddict.blogspot.com/2008/12/delphi-wizard-framework.html' title='Delphi Wizard Framework - SetAllowDeletion'/><author><name>SKamradt</name><uri>http://www.blogger.com/profile/16762334852308664245</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19696866.post-4848302817407391056</id><published>2008-12-14T17:42:00.006-08:00</published><updated>2008-12-19T10:18:59.151-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Delphi Wizard Framework'/><title type='text'>The Delphi Wizard Framework - Navigation</title><summary type='text'>In a previous entry, I discussed some of the design decisions that allowed me to reach the current solution.  One more decision which greatly impacted the design of the framework... I wanted to make sure that it could be data driven.One of the projects that I was working on at the time was an editor for an XML datafile.  For simplicity sake, the file had a structure something like the following:&lt;</summary><link rel='replies' type='application/atom+xml' href='http://delphiaddict.blogspot.com/feeds/4848302817407391056/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19696866&amp;postID=4848302817407391056' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19696866/posts/default/4848302817407391056'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19696866/posts/default/4848302817407391056'/><link rel='alternate' type='text/html' href='http://delphiaddict.blogspot.com/2008/12/delphi-wizard-framework-navigation.html' title='The Delphi Wizard Framework - Navigation'/><author><name>SKamradt</name><uri>http://www.blogger.com/profile/16762334852308664245</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19696866.post-336327112864780856</id><published>2008-12-10T19:23:00.002-08:00</published><updated>2008-12-10T19:38:28.425-08:00</updated><title type='text'>Google Code Hosting -- Painless Open Source Management</title><summary type='text'>Google Code Hosting really makes it simple to host open sourced projects.  Especially if you like Subversion.  In my few days with it I have tried just about all of the basic features and have found them easy to use and manage.  Initial setup was very painless.  The only desirable thing that is missing would be some method of adding to an rss/atom feed.  Wait, thats what my blog and twitter are </summary><link rel='replies' type='application/atom+xml' href='http://delphiaddict.blogspot.com/feeds/336327112864780856/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19696866&amp;postID=336327112864780856' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19696866/posts/default/336327112864780856'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19696866/posts/default/336327112864780856'/><link rel='alternate' type='text/html' href='http://delphiaddict.blogspot.com/2008/12/google-code-hosting-painless-open.html' title='Google Code Hosting -- Painless Open Source Management'/><author><name>SKamradt</name><uri>http://www.blogger.com/profile/16762334852308664245</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19696866.post-1868538243804720415</id><published>2008-12-10T18:12:00.003-08:00</published><updated>2008-12-14T18:34:35.547-08:00</updated><title type='text'>The Delphi Wizard Framework - Design Decisions</title><summary type='text'>The Delphi Wizard Framework, as I introduced in the previous post, was originally designed to replace a complex configuration system which was put together using a TNotebook component (yes, from the Delphi 1 days) on a single form.  The first problem this faced was adding pages was more complex than it needed to be.  The second problem was re-using entire pages in another project became a copy </summary><link rel='replies' type='application/atom+xml' href='http://delphiaddict.blogspot.com/feeds/1868538243804720415/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19696866&amp;postID=1868538243804720415' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19696866/posts/default/1868538243804720415'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19696866/posts/default/1868538243804720415'/><link rel='alternate' type='text/html' href='http://delphiaddict.blogspot.com/2008/12/delphi-wizard-framework-design.html' title='The Delphi Wizard Framework - Design Decisions'/><author><name>SKamradt</name><uri>http://www.blogger.com/profile/16762334852308664245</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19696866.post-6742206601631374798</id><published>2008-12-07T18:31:00.003-08:00</published><updated>2008-12-07T18:46:05.397-08:00</updated><title type='text'>Introducing the Delphi Wizard Framework</title><summary type='text'>I just posted my latest version of my wizard framework to http://code.google.com/p/delphiwizardframework/.  This is some general purpose code that I have found myself using in many of my projects, as most of them at some point involve the need to step a user through many different "wizard" screens.  The concept behind it is quite simple, rather than code the button clicks on each form, instead </summary><link rel='replies' type='application/atom+xml' href='http://delphiaddict.blogspot.com/feeds/6742206601631374798/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19696866&amp;postID=6742206601631374798' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19696866/posts/default/6742206601631374798'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19696866/posts/default/6742206601631374798'/><link rel='alternate' type='text/html' href='http://delphiaddict.blogspot.com/2008/12/introducing-delphi-wizard-framework.html' title='Introducing the Delphi Wizard Framework'/><author><name>SKamradt</name><uri>http://www.blogger.com/profile/16762334852308664245</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19696866.post-7826999472850479041</id><published>2008-10-08T13:53:00.006-07:00</published><updated>2008-12-19T10:25:30.563-08:00</updated><title type='text'>Fun with Generics.collections</title><summary type='text'>I guess the best way to learn about new language features are to put them in practice, and with that I jumped into using the TDictionary to keep track of some xml nodes I was editing.  It was very easy to implement, but what got me stumped was then how to iterate thru the entire list and apply changes to all of the nodes at once.Thats when I recalled the new for ... in ... syntax.  Using it was </summary><link rel='replies' type='application/atom+xml' href='http://delphiaddict.blogspot.com/feeds/7826999472850479041/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19696866&amp;postID=7826999472850479041' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19696866/posts/default/7826999472850479041'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19696866/posts/default/7826999472850479041'/><link rel='alternate' type='text/html' href='http://delphiaddict.blogspot.com/2008/10/fun-with-genericscollections.html' title='Fun with Generics.collections'/><author><name>SKamradt</name><uri>http://www.blogger.com/profile/16762334852308664245</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19696866.post-1671187930859216439</id><published>2008-09-02T12:07:00.002-07:00</published><updated>2008-09-02T12:11:21.213-07:00</updated><title type='text'>Google Chrome now available</title><summary type='text'>Download and play with it now.  http://tools.google.com/chrome/?hl=en-USVery small footprint, very fast browser.First look, browser has much more room compared to IE/Firefox out of the box....although my webmail provider (not Gmail of course) doesn't recognize the browser yet so it doesn't give me the rich experience I'm used too.</summary><link rel='replies' type='application/atom+xml' href='http://delphiaddict.blogspot.com/feeds/1671187930859216439/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19696866&amp;postID=1671187930859216439' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19696866/posts/default/1671187930859216439'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19696866/posts/default/1671187930859216439'/><link rel='alternate' type='text/html' href='http://delphiaddict.blogspot.com/2008/09/google-chrome-now-available.html' title='Google Chrome now available'/><author><name>SKamradt</name><uri>http://www.blogger.com/profile/16762334852308664245</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19696866.post-1375423501001606768</id><published>2007-10-21T14:01:00.000-07:00</published><updated>2007-10-21T14:20:26.620-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='software release'/><title type='text'>Sychronizing source code directories</title><summary type='text'>One of the big problems I have faced by using Vista Ultimate on my primary development machines as a host OS for virtual PC development environments has been the fact that Vista Ultimate (and I am assuming other versions of Vista as well) have problems copying extremely large files.  It was part of this frustration that led us to develop AngeliaSync, a folder synchronization utility which does an</summary><link rel='replies' type='application/atom+xml' href='http://delphiaddict.blogspot.com/feeds/1375423501001606768/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19696866&amp;postID=1375423501001606768' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19696866/posts/default/1375423501001606768'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19696866/posts/default/1375423501001606768'/><link rel='alternate' type='text/html' href='http://delphiaddict.blogspot.com/2007/10/sychronizing-source-code-directories.html' title='Sychronizing source code directories'/><author><name>SKamradt</name><uri>http://www.blogger.com/profile/16762334852308664245</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19696866.post-115627765654292124</id><published>2006-08-22T13:14:00.000-07:00</published><updated>2006-08-28T19:16:04.326-07:00</updated><title type='text'>Avoiding circular refrences</title><summary type='text'>Sometimes its the simple things that make it all worth while. As I once again took out my fork and began to separate out a huge pile of spaghetti code that was left for me, I needed to come up with a better method to avoid the circular reference trap. I had several units which contained classes which were directly referencing the main form. The circular reference here was troubling me as if I </summary><link rel='replies' type='application/atom+xml' href='http://delphiaddict.blogspot.com/feeds/115627765654292124/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19696866&amp;postID=115627765654292124' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19696866/posts/default/115627765654292124'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19696866/posts/default/115627765654292124'/><link rel='alternate' type='text/html' href='http://delphiaddict.blogspot.com/2006/08/avoiding-circular-refrences.html' title='Avoiding circular refrences'/><author><name>SKamradt</name><uri>http://www.blogger.com/profile/16762334852308664245</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19696866.post-115627374619849484</id><published>2006-08-22T12:09:00.000-07:00</published><updated>2006-08-22T13:16:36.710-07:00</updated><title type='text'>Windows Live Writer</title><summary type='text'>This is interesting, the new Windows Live Writer can write to my blogger blog.  It supports multiple blog accounts, and has the ability to upload images. It is still in beta, but definately worth a look.</summary><link rel='replies' type='application/atom+xml' href='http://delphiaddict.blogspot.com/feeds/115627374619849484/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19696866&amp;postID=115627374619849484' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19696866/posts/default/115627374619849484'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19696866/posts/default/115627374619849484'/><link rel='alternate' type='text/html' href='http://delphiaddict.blogspot.com/2006/08/windows-live-writer.html' title='Windows Live Writer'/><author><name>SKamradt</name><uri>http://www.blogger.com/profile/16762334852308664245</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19696866.post-115627190420386529</id><published>2006-08-22T11:38:00.000-07:00</published><updated>2006-08-22T11:42:41.573-07:00</updated><title type='text'>Good to grant!</title><summary type='text'>Sometimes it helps to have knowledge of life before Google. When attempting to navigate to the Managed VCL pages at http://www.managedvcl.com, I discovered that they were not working properly and I was immediately prompted by some sort of error message in obvious Russian. Not being fluent in that language, I thought I would run it thru the translator at Google... but they don't have a translation</summary><link rel='replies' type='application/atom+xml' href='http://delphiaddict.blogspot.com/feeds/115627190420386529/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19696866&amp;postID=115627190420386529' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19696866/posts/default/115627190420386529'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19696866/posts/default/115627190420386529'/><link rel='alternate' type='text/html' href='http://delphiaddict.blogspot.com/2006/08/good-to-grant.html' title='Good to grant!'/><author><name>SKamradt</name><uri>http://www.blogger.com/profile/16762334852308664245</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19696866.post-113406650616394878</id><published>2005-12-08T10:21:00.000-08:00</published><updated>2005-12-08T10:46:15.800-08:00</updated><title type='text'>Delphi Co-existence in a .Net 2.0 world</title><summary type='text'>It wasn't very long after the release of the latest Microsoft .net 2.0 framework that applications were getting written to it, and the applications which we deployed using Delphi (and the .net 1.x frameworks) abruptly ceased to function.The funny thing is that the portion that I had written for .net was a mutant dll file which allowed me to bridge from our legacy win32 application into the ACT! </summary><link rel='replies' type='application/atom+xml' href='http://delphiaddict.blogspot.com/feeds/113406650616394878/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19696866&amp;postID=113406650616394878' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19696866/posts/default/113406650616394878'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19696866/posts/default/113406650616394878'/><link rel='alternate' type='text/html' href='http://delphiaddict.blogspot.com/2005/12/delphi-co-existence-in-net-20-world.html' title='Delphi Co-existence in a .Net 2.0 world'/><author><name>SKamradt</name><uri>http://www.blogger.com/profile/16762334852308664245</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
