<?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-19137168</id><updated>2011-04-21T23:24:13.763+02:00</updated><category term='delphi borland merchandize'/><title type='text'>Holger's Thoughts on Delphi</title><subtitle type='html'>Interesting posts and code snippets for Delphi and some C# snippets. Programming topics include Indy Sockets and ECO.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://delphi2006.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19137168/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://delphi2006.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Holger</name><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>71</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-19137168.post-7150242638862485218</id><published>2006-12-10T15:37:00.000+01:00</published><updated>2006-12-10T15:39:25.468+01:00</updated><title type='text'>Bye bye Blogspot</title><content type='html'>Ok, some people might know already. I will not continue this blog here. I have my new home at &lt;a href="http://www.flickdotnet.de"&gt;http://www.flickdotnet.de&lt;/a&gt; and the RSS feed can be accessed using &lt;a href="http://flickdotnet.de/blogs/MainFeed.aspx"&gt;this URL&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Main reason is that I can offer much more content on my new site, which is run by Community Server. Furthermore, I do not like blogger.com doing so many things for me. For example, I hate that it speaks German now - I do not find any of the functions as I am used to an English GUI.&lt;br /&gt;So, bye from here. Hope to see you on Flickdotnet.de!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19137168-7150242638862485218?l=delphi2006.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://delphi2006.blogspot.com/feeds/7150242638862485218/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19137168&amp;postID=7150242638862485218' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19137168/posts/default/7150242638862485218'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19137168/posts/default/7150242638862485218'/><link rel='alternate' type='text/html' href='http://delphi2006.blogspot.com/2006/12/bye-bye-blogspot.html' title='Bye bye Blogspot'/><author><name>Holger</name><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-19137168.post-4509614903760517052</id><published>2006-11-03T12:30:00.000+01:00</published><updated>2006-11-03T12:41:53.648+01:00</updated><title type='text'>ECO compared to Microsoft's "Entity Data Model"</title><content type='html'>Today, the following topic was brought up by Chad Z. Hower, who is active in both the Borland and now also the Microsoft developer community,  in one of Borland's newsgroups:&lt;tt&gt;&lt;br /&gt;&lt;/tt&gt;&lt;blockquote&gt;&lt;tt&gt;&gt; [..] Yes ECO has potential. But:&lt;br /&gt;&gt;&lt;br /&gt;&gt;1) Does it lose any "umph" when EDM is released?&lt;br /&gt;&lt;/tt&gt;&lt;/blockquote&gt;That made Jesper Högström, Borland ECO Manager R&amp;D, post the following, detailed comparison of ECO and EDM, which I learned today stands for 'Entity Data Model'.&lt;br /&gt;&lt;br /&gt;&lt;quote&gt;&lt;br /&gt;&lt;/quote&gt;&lt;blockquote&gt;With EDM, you do mean something other than Enterprise Data Management as outlined on http://www.microsoft.com/sql/solutions/edm/overview.mspx and http://msdn2.microsoft.com/en-us/sql/aa336354.aspx?&lt;br /&gt;&lt;br /&gt;I assume you are, as that seems to be more enhancements to SQL Server, which would be of potential value to ECO users as well (should they chose to deploy on Sql Server).&lt;br /&gt;&lt;br /&gt;Next I ran into Electronic Document Management. Hmm. No, you probably didn't mean that either.&lt;br /&gt;&lt;br /&gt;Continued to search and finally found Entity Data Model. Finally we're getting somewhere. Of all the 25^3 TLAs, what is their coverage? Do they really need to overload EDM so badly? :)&lt;br /&gt;&lt;br /&gt;Anders took a brief look at it and commented on &lt;a href="http://blogs.borland.com/andersivner/archive/2006/06/26.aspx"&gt;his blog&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;A link to the overview document is &lt;a href="http://www.microsoft.com/downloads/details.aspx?familyid=E9BA57AA-2A27-4658-AD04-4380A2DF836C&amp;amp;displaylang=en"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;I personally think it's good we get someone to compare with. If you're the only one making a particular offer you're either years ahead of the competition or selling pre-bent already-rusty nails. The fact that other now try to do what we have been doing for almost a decade sort of eliminates the pre-bent nails option :)&lt;br /&gt;&lt;br /&gt;EDM seems to offer a pain-relief to a lot of people. We will still stand very strong in comparison.&lt;br /&gt;&lt;br /&gt;ECO is a model driven platform. It allows you to specify the logical layout of the business domain of your application using standard UML notation for class diagrams and state machines. OCL (again a UML standard) is used to define constraints on classes, synthesize data (something like calculated fields, but also used to derive associations - with full support for "virtual derivations" to be redefined in subclasses).&lt;br /&gt;&lt;br /&gt;State machines allow you to specify triggers, guards and entry/exit actions using OCL and Eco Acion Language (EAL). EAL is more or less OCL but the constraint that it mustn't change any business state has been lifted. In other words you can write EAL statements to assign values, create instances or delete objects.&lt;br /&gt;&lt;br /&gt;Persistence is done on a large number of backends, with shifting from say SQL Server to Oracle being as easy as dropping and connecting a component or two. ECO generates standard SQL is a SQL based backend is chosed. It is also possible to collect the business data from any number of a heterogenous set of backends thanks to the powerful OR mapping engine in ECO. Your customer objects can come from a SQLServer DB while your invoice objects are fetched from an Oracle DB. All that is transparent to the end user (but in all honesty requires the developer to set it up :) ).&lt;br /&gt;&lt;br /&gt;Note that this backend agnostic model is also presentation layer agnostic. You can surface the UI in winforms, ASP.Net, wrap it in web services and we have plans to extend that list even further.&lt;br /&gt;&lt;br /&gt;Coding on model level allows you to focus on delivering what the customer pays for - solving business problems. The code you need to write is more to the point and significantly shorter. The data you need is there when you need it thanks to the lazy evaluation in ECO. The consistency of your business layer is kept intact, including both ends of bi-directional associations. We have built-in support for undo/redo, transactions, evaluation, subscription, persistence, model inspection, synchronization between clients and more.&lt;br /&gt;&lt;br /&gt;Furthermore, ECO doesn't preclude you from using other mean and lean technologies. Not to say that we hardwired interoperability with everything from cryptography algorithms over device drivers to enterprise phone books, but hey, you are all programmers. It's all software. No magic.&lt;br /&gt;&lt;br /&gt;--Jesper&lt;br /&gt;R&amp;amp;D Manager ECO&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19137168-4509614903760517052?l=delphi2006.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://delphi2006.blogspot.com/feeds/4509614903760517052/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19137168&amp;postID=4509614903760517052' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19137168/posts/default/4509614903760517052'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19137168/posts/default/4509614903760517052'/><link rel='alternate' type='text/html' href='http://delphi2006.blogspot.com/2006/11/eco-compared-to-microsofts-entity-data.html' title='ECO compared to Microsoft&apos;s &quot;Entity Data Model&quot;'/><author><name>Holger</name><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-19137168.post-116111060767233752</id><published>2006-10-17T20:37:00.001+02:00</published><updated>2006-10-17T20:43:35.374+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='delphi borland merchandize'/><title type='text'>New Beginning</title><content type='html'>&lt;p&gt;Well, no. Right for the start: I am not leaving the Borland Community. I just finished my University degree last month and thus a new stage in my life started.&lt;/p&gt;&lt;br /&gt;&lt;p&gt; In this whole process my computer room aka "office" got a general "tidy-up". I should have done this way earlier. However, it can be somewhat fascinating what I have used/worked with about 6 years ago. Be it the first handheld scanner, the 10 MBit LAN cables with the funny looking connections and resistors or Borland stuff. I found two things in particular. The first item was my very first version of Delphi that I got as a present in ... I think 1986. I am not sure when it was exactly though to be honest.&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/7785/373/1600/delphi2.png"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;" src="http://photos1.blogger.com/blogger/7785/373/400/delphi2.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;Another nice goodie I found was this "märklin" model train with the Borland logo. I have no idea what the reason to create those was, but I won this at a Borland event  this spring. Bernd Ua told me it must have been around 2000 that these were given away to customers.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/7785/373/1600/borlandtrain.png"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;" src="http://photos1.blogger.com/blogger/7785/373/400/borlandtrain.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;I also found one more item, which I will not depict here. You guys can make a guess though. It is related to Borland, but it did not have the name "Borland" on it. So what is it?&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19137168-116111060767233752?l=delphi2006.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://delphi2006.blogspot.com/feeds/116111060767233752/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19137168&amp;postID=116111060767233752' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19137168/posts/default/116111060767233752'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19137168/posts/default/116111060767233752'/><link rel='alternate' type='text/html' href='http://delphi2006.blogspot.com/2006/10/new-beginning.html' title='New Beginning'/><author><name>Holger</name><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-19137168.post-115883716817965720</id><published>2006-09-21T13:07:00.000+02:00</published><updated>2006-10-17T20:37:56.443+02:00</updated><title type='text'>Thanks Jeremy!</title><content type='html'>So, here I was, telling you guys about my tool that has to be invoked using the command line in order to fix the ECO III code generation issues.&lt;br /&gt;&lt;br /&gt;And now... Well, Jeremy North took my source and made it an IDE plugin. So no more command line. So far the thing looks awesome. Will tinker with it a little bit more, before releasing it.&lt;br /&gt;&lt;br /&gt;Thanks again, Jeremy!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19137168-115883716817965720?l=delphi2006.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://delphi2006.blogspot.com/feeds/115883716817965720/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19137168&amp;postID=115883716817965720' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19137168/posts/default/115883716817965720'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19137168/posts/default/115883716817965720'/><link rel='alternate' type='text/html' href='http://delphi2006.blogspot.com/2006/09/thanks-jeremy.html' title='Thanks Jeremy!'/><author><name>Holger</name><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-19137168.post-115871157224923796</id><published>2006-09-20T02:11:00.000+02:00</published><updated>2006-10-17T20:37:56.378+02:00</updated><title type='text'>ECO: Code generation in BDS 2006 and Delphi .NET</title><content type='html'>Okay, you all know by now, I am a huge fan of ECO. Today I found out though that if you keep making modifications to your model and constantly generate code for Delphi .NET that the code generator will generate code that does simply not compile.&lt;br /&gt;&lt;br /&gt;Firstly, deactivate the option "One file per class" for the code generation in Delphi (see screenshot) in case you enabled it. It is set to "off" by default when you install BDS.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/7785/373/1600/unit.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://photos1.blogger.com/blogger/7785/373/400/unit.png" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;You get to this dialog using "Tools / Options...". There are two issues if you leave it checked:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;uses-clause: The uses clause is not being generated correctly if you e.g. have a method that returns another class which resides in another unit. You will have to add the references yourself.&lt;/li&gt;&lt;li&gt;duplicate names: if an association(-end) has the same name as a class you get type-conflicts and will have to use the full name and thus edit the code manually&lt;/li&gt;&lt;/ul&gt;Secondly, "begin"/"end" blocks are preceded by multiple empty lines. With every code generation invocation another empty line is being added.&lt;br /&gt;Finally - and this is the most annoying - Uml-tags will be generated everytime you invoke the code generator and thus the code becomes incompilable as well.&lt;br /&gt;&lt;br /&gt;I wrote a simple command-line tool, which automatically makes the necessary changes for the last two cases. The uses-clause and duplicate-names issue can be neglected as you can set the options to circumvent it.&lt;br /&gt;&lt;br /&gt;Be aware that this tools comes without any guarantee or liability. Use it at your own risk.&lt;br /&gt;&lt;br /&gt;You can download it from &lt;a href="http://cc.borland.com/item.aspx?id=24134"&gt;CodeCentral&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19137168-115871157224923796?l=delphi2006.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://delphi2006.blogspot.com/feeds/115871157224923796/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19137168&amp;postID=115871157224923796' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19137168/posts/default/115871157224923796'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19137168/posts/default/115871157224923796'/><link rel='alternate' type='text/html' href='http://delphi2006.blogspot.com/2006/09/eco-code-generation-in-bds-2006-and.html' title='ECO: Code generation in BDS 2006 and Delphi .NET'/><author><name>Holger</name><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-19137168.post-115740756925032106</id><published>2006-09-04T23:59:00.000+02:00</published><updated>2006-10-17T20:37:56.303+02:00</updated><title type='text'>Holger in public :-)</title><content type='html'>The next weeks are going to be busy for me - at least for what I am used to.&lt;br /&gt;&lt;br /&gt;First, I will be in &lt;span style="font-weight: bold;"&gt;Stockholm, Sweden&lt;/span&gt; next week. There are still a few seats available for an excellent Delphi Developer Group meeting there on the 14th. You will be able to meet the ECO Team, Henrik Jondell and Hellström. I will also host a session there, showing ECO with ASP.NET.&lt;br /&gt;&lt;br /&gt;Secondly, I will be a coach at the &lt;span style="font-weight: bold;"&gt;Code Camp at EKON 10 in Frankfurt, Germany&lt;/span&gt; on September 27th for the ECO section.&lt;br /&gt;&lt;br /&gt;Maybe, I will see you at one of the two events&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19137168-115740756925032106?l=delphi2006.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://delphi2006.blogspot.com/feeds/115740756925032106/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19137168&amp;postID=115740756925032106' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19137168/posts/default/115740756925032106'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19137168/posts/default/115740756925032106'/><link rel='alternate' type='text/html' href='http://delphi2006.blogspot.com/2006/09/holger-in-public.html' title='Holger in public :-)'/><author><name>Holger</name><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-19137168.post-115663679006295530</id><published>2006-08-27T01:57:00.000+02:00</published><updated>2006-10-17T20:37:56.231+02:00</updated><title type='text'>Russian MDA User Group</title><content type='html'>I just founbd out that the page http://mda-delphi.ru/ links to almost all my ECO blog articles... Thanks guys! I am sorry, I cannot provide the content in your native language as well.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19137168-115663679006295530?l=delphi2006.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://delphi2006.blogspot.com/feeds/115663679006295530/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19137168&amp;postID=115663679006295530' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19137168/posts/default/115663679006295530'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19137168/posts/default/115663679006295530'/><link rel='alternate' type='text/html' href='http://delphi2006.blogspot.com/2006/08/russian-mda-user-group.html' title='Russian MDA User Group'/><author><name>Holger</name><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-19137168.post-115503155859955446</id><published>2006-08-08T12:04:00.000+02:00</published><updated>2006-10-17T20:37:56.166+02:00</updated><title type='text'>Another link to my sessions...</title><content type='html'>Olaf Monien was so kind to bring this link to my attention:&lt;br /&gt;&lt;br /&gt;http://tinyurl.com/h4unj&lt;br /&gt;&lt;br /&gt;This will give you the chance to see all my sessions w/o having to click every single link from my previous post.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19137168-115503155859955446?l=delphi2006.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://delphi2006.blogspot.com/feeds/115503155859955446/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19137168&amp;postID=115503155859955446' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19137168/posts/default/115503155859955446'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19137168/posts/default/115503155859955446'/><link rel='alternate' type='text/html' href='http://delphi2006.blogspot.com/2006/08/another-link-to-my-sessions.html' title='Another link to my sessions...'/><author><name>Holger</name><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-19137168.post-115502602658351961</id><published>2006-08-08T10:30:00.000+02:00</published><updated>2006-10-17T20:37:56.101+02:00</updated><title type='text'>DevCon US: Holger's Sessions</title><content type='html'>So, as I browse bdn.borland.com today it seems that the voting for the sessions has started. If you'd like to see me at DevCon and are interested in ECO, so please vote for my sessions  if you like to :-)&lt;br /&gt;&lt;br /&gt;I kept the topics pretty general, so I'll accept feedback what exactly to cover ...&lt;br /&gt;&lt;br /&gt;My sessions are:&lt;br /&gt;&lt;br /&gt;Report No: 32263&lt;br /&gt;ECO and ASP.NET : Authentication and Authorization by Holger Flick&lt;br /&gt;&lt;a href="http://qc.borland.com/wc/qcmain.aspx?d=32263"&gt;http://qc.borland.com/wc/qcmain.aspx?d=32263&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Report No: 32262&lt;br /&gt;Using ECO Services in Code by Holger Flick&lt;br /&gt;&lt;a href="http://qc.borland.com/wc/qcmain.aspx?d=32262"&gt;http://qc.borland.com/wc/qcmain.aspx?d=32262&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Report No: 32261       &lt;br /&gt;Synchronization and Resolving Conflicts in Multi-user ECO Applications by Holger Flick&lt;br /&gt;&lt;a href="http://qc.borland.com/wc/qcmain.aspx?d=32261"&gt;http://qc.borland.com/wc/qcmain.aspx?d=32261&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Report No: 32260          Status: Reported&lt;br /&gt;Building Scalable ECO Applications by Holger Flick&lt;br /&gt;&lt;a href="http://qc.borland.com/wc/qcmain.aspx?d=32260"&gt;http://qc.borland.com/wc/qcmain.aspx?d=32260&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Report No: 32259          Status: Reported&lt;br /&gt;Using and Extending ECO OCL by Holger Flick&lt;br /&gt;&lt;a href="http://qc.borland.com/wc/qcmain.aspx?d=32259"&gt;http://qc.borland.com/wc/qcmain.aspx?d=32259&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19137168-115502602658351961?l=delphi2006.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://delphi2006.blogspot.com/feeds/115502602658351961/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19137168&amp;postID=115502602658351961' title='11 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19137168/posts/default/115502602658351961'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19137168/posts/default/115502602658351961'/><link rel='alternate' type='text/html' href='http://delphi2006.blogspot.com/2006/08/devcon-us-holgers-sessions.html' title='DevCon US: Holger&apos;s Sessions'/><author><name>Holger</name><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>11</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19137168.post-115428689869512468</id><published>2006-07-30T21:11:00.000+02:00</published><updated>2006-10-17T20:37:56.030+02:00</updated><title type='text'>Nice docs anyone?!</title><content type='html'>Normally, when you acquire a new version of a software product, you'll never insert the old cds into your drive ever again. However, D8 and all later versions had a wonderful new feature: less documentation - sorry for the sarcasm.&lt;br /&gt;&lt;br /&gt;So, everybody got those nice D7 CDs out and opened those help files for VCL documentation. Today I even found a wizard on the net that makes it possible to use the old documentation files by default on CodeCentral: &lt;a href="http://cc.borland.com/item.aspx?id=23948"&gt;http://cc.borland.com/item.aspx?id=23948&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Thanks go to community member Thomas Müller for that one!&lt;br /&gt;&lt;br /&gt;I have not tried it myself yet, but I sure will get those old D7 CDs out of the cellar now ;)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19137168-115428689869512468?l=delphi2006.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://delphi2006.blogspot.com/feeds/115428689869512468/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19137168&amp;postID=115428689869512468' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19137168/posts/default/115428689869512468'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19137168/posts/default/115428689869512468'/><link rel='alternate' type='text/html' href='http://delphi2006.blogspot.com/2006/07/nice-docs-anyone.html' title='Nice docs anyone?!'/><author><name>Holger</name><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-19137168.post-115425665541026840</id><published>2006-07-30T12:47:00.000+02:00</published><updated>2006-10-17T20:37:55.961+02:00</updated><title type='text'>C# and VCL.NET - yes, it is possible</title><content type='html'>A recent newsgroup post made me blog about this simple fact:&lt;br /&gt;&lt;div style="text-align: center; font-weight: bold;"&gt;You can use VCL.NET in C#.&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;Period. It is possible. There are even examples available for free showing how it works.&lt;br /&gt;&lt;br /&gt;My friend and Delphi-Guru Bruce McGee uploaded his C# example using VCL.NET classes to CodeCentral. You may download it for free.  Registration in order to use Borland's CodeCentral Service might be necessary.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://cc.borland.com/Item.aspx?id=22691"&gt;Click here to download it.&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19137168-115425665541026840?l=delphi2006.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://delphi2006.blogspot.com/feeds/115425665541026840/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19137168&amp;postID=115425665541026840' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19137168/posts/default/115425665541026840'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19137168/posts/default/115425665541026840'/><link rel='alternate' type='text/html' href='http://delphi2006.blogspot.com/2006/07/c-and-vclnet-yes-it-is-possible.html' title='C# and VCL.NET - yes, it is possible'/><author><name>Holger</name><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-19137168.post-115364593673038921</id><published>2006-07-23T11:08:00.000+02:00</published><updated>2006-10-17T20:37:55.884+02:00</updated><title type='text'>ECO Pitfalls - an idea</title><content type='html'>I had two ideas this morning:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;it would be nice to make all the ECO Pitfalls a little PDF that cross-references everything and has an index&lt;/li&gt;&lt;li&gt;it would be nice if people would be able to suggest their personal difficulties getting started or issues that keep bugging them, so I can include it in the list&lt;/li&gt;&lt;/ul&gt;I know that there is only one item so far, but I have much more to come. My time is rather limited at the moment as my diplma thesis is due in .... oh  boy... less than three weeks.&lt;br /&gt;&lt;br /&gt;So, item number 1 will definitely happen, however, number 2 is something you have to initiate! So, comment on this very blog post - be it other suggestions about my idea or ideas for more pitfalls.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19137168-115364593673038921?l=delphi2006.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://delphi2006.blogspot.com/feeds/115364593673038921/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19137168&amp;postID=115364593673038921' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19137168/posts/default/115364593673038921'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19137168/posts/default/115364593673038921'/><link rel='alternate' type='text/html' href='http://delphi2006.blogspot.com/2006/07/eco-pitfalls-idea.html' title='ECO Pitfalls - an idea'/><author><name>Holger</name><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-19137168.post-115357248762814202</id><published>2006-07-22T14:35:00.000+02:00</published><updated>2006-10-17T20:37:55.820+02:00</updated><title type='text'>ECO Pitfalls #1: Synchronize ECO Code on idle</title><content type='html'>&lt;p&gt;Yes, I like Nick's numbering approach so much, that I will number all my posts that belong into a certain category too.&lt;/P&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;I will try to deal with common pitfalls that you may encounter when developing ECO applications. As some of you might now, I have been doing some ECO sessions in Germany and from the questions that I got during those, I derive these posts.&lt;/P&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;This first post will deal with a feature called "Synchronize ECO Code on idle". What does it do? Well, basically it means that ECO generates the code for your model, while you design the model. Meaning: You drop a class on your model surface and the source code immediatelly gets the code for the class. If you remove the class, the source code will lose the class too.&lt;/P&gt;&lt;br /&gt;&lt;br /&gt;&lt;P&gt;Well, this all sounds very nice and as much as I love ECO in BDS 2006, but from my practical experience - and this is my opinion, nothing more - I have to say:&lt;/P&gt;&lt;br /&gt;&lt;center&gt;"Switch it off!"&lt;/center&gt;&lt;br /&gt;It won't help, it will make things more complicated. You will run into issues when you rename classes or when you delete classes e.g.&lt;br /&gt;&lt;br /&gt;So go to the Tools / Options... dialog and remove the check, so that it is switched off. You will, however, have to generate the code manually. This can be done by the buttons on top of the model view. I always use 'Regenerate ECO code' -never the update one.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://photos1.blogger.com/blogger/7785/373/1600/ecocodegen1.gif"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://photos1.blogger.com/blogger/7785/373/400/ecocodegen1.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Another common misconception is that 'Regenerate code' will delete all the lines of code you added manually to the code, e.g. in the constructor of your classes or to derive attributes. This is wrong. ECO will keep your code. It only touches code it has generated.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://photos1.blogger.com/blogger/7785/373/1600/ecocodegen2.gif"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://photos1.blogger.com/blogger/7785/373/400/ecocodegen2.gif" border="0" alt="" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19137168-115357248762814202?l=delphi2006.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://delphi2006.blogspot.com/feeds/115357248762814202/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19137168&amp;postID=115357248762814202' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19137168/posts/default/115357248762814202'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19137168/posts/default/115357248762814202'/><link rel='alternate' type='text/html' href='http://delphi2006.blogspot.com/2006/07/eco-pitfalls-1-synchronize-eco-code-on.html' title='ECO Pitfalls #1: Synchronize ECO Code on idle'/><author><name>Holger</name><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-19137168.post-115330797679600519</id><published>2006-07-19T13:13:00.000+02:00</published><updated>2006-10-17T20:37:55.755+02:00</updated><title type='text'>Mark E. gets nicked</title><content type='html'>Nick Hodges, Delphi Product Manager, will have Mark Edington as his guest in his second Radio Show today (-- for me it will be to&lt;b&gt;night&lt;/b&gt;).&lt;br /&gt;&lt;br /&gt;Nick has done a great first show, talking about a lot of stuff regarding Delphi and DTG. Marco Cantu blogged about it. Simply go to www.delphifeeds.com to find Marco's summary.&lt;br /&gt;&lt;br /&gt;Mark Edington is a member of the Delphi R&amp;D team and this is a great shot to nag him about upcoming releases or stuff you would like to see in Delphi.  As Mark is "Mr. Quality", as Nick refers to him, this is also a possibiltiy for the community to point out parts of the product that you think need some improvement regarding quality.&lt;br /&gt;&lt;br /&gt;So be sure to join the broadcast, 2100 CET, that's 2000 UK time (or 9pm) also 2100 in the Netherlands (people who were in the chat the last time, will know why I mention this)&lt;br /&gt;!!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19137168-115330797679600519?l=delphi2006.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://delphi2006.blogspot.com/feeds/115330797679600519/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19137168&amp;postID=115330797679600519' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19137168/posts/default/115330797679600519'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19137168/posts/default/115330797679600519'/><link rel='alternate' type='text/html' href='http://delphi2006.blogspot.com/2006/07/mark-e-gets-nicked.html' title='Mark E. gets nicked'/><author><name>Holger</name><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-19137168.post-115299593071040248</id><published>2006-07-15T22:29:00.000+02:00</published><updated>2006-10-17T20:37:55.692+02:00</updated><title type='text'>2 Days of Fun</title><content type='html'>Friday....moving the mouse, so the screensaver switches off... but ... Windows XP boot screen? I am quite sure, I left the PC on... and why is it stuck in the boot screen? ...&lt;br /&gt;&lt;br /&gt;Well, nothing as sweet as pushing reset...10 seconds later...boot screen...same deal...&lt;br /&gt;&lt;br /&gt;Reset... F8... last known good install ... and a surprise: icons of software I uninstalled about 5 months ago appeared ... so I cleaned up the desktop, all worked again. I also had to uninstall the software, even though it wasn't really installed.&lt;br /&gt;&lt;br /&gt;Took me 3 hours. Ah, fine. I don't mind, once in a while. It was a MS update btw that was installed during the night and triggered the reboot. No idea what happened or what was installed exactly.&lt;br /&gt;&lt;br /&gt;Before I went to bed, I did some backups, left the PC running -- as always.&lt;br /&gt;&lt;br /&gt;Saturday...moving the mouse...the desktop is still there, but I need to install a new piece of software, which requires me to reboot... splash screen....still splash screen.... DAMN!&lt;br /&gt;&lt;br /&gt;So, I tried the same approach as yesterday. No luck.&lt;br /&gt;&lt;br /&gt;I tried using the recovery console. No luck.&lt;br /&gt;&lt;br /&gt;Then... I used a repair install... it hangs when trying to "install devices"...repeat 5 times. Still...NO LUCK.&lt;br /&gt;&lt;br /&gt;Final try, backing up the image from the HD I did yesterday.... oh well, here we go.&lt;br /&gt;&lt;br /&gt;Let's check the HD for errors.. ok, there is an inconsistency in the NTFS table....&lt;br /&gt;&lt;br /&gt;As I have a deadline for my diploma thesis, I start transfering all the data from my desktop PC to the laptop....&lt;br /&gt;&lt;br /&gt;... 5 hours later... laptop has now the same data as the desktop PC, which runs and reboots again... no idea what triggered the NTFS error... no idea why it happens right now as I need to get work done...&lt;br /&gt;&lt;br /&gt;I guess, we all have to deal with Murphy sooner or later...&lt;br /&gt;&lt;br /&gt;Two days. Time well-spent.&lt;br /&gt;&lt;br /&gt;But as a colleague told me today: "It's good, we love or job."&lt;br /&gt;&lt;br /&gt;Take that for the weekend -- may you have a more exciting one than me.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19137168-115299593071040248?l=delphi2006.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://delphi2006.blogspot.com/feeds/115299593071040248/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19137168&amp;postID=115299593071040248' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19137168/posts/default/115299593071040248'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19137168/posts/default/115299593071040248'/><link rel='alternate' type='text/html' href='http://delphi2006.blogspot.com/2006/07/2-days-of-fun.html' title='2 Days of Fun'/><author><name>Holger</name><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-19137168.post-115221521043835325</id><published>2006-07-06T21:44:00.000+02:00</published><updated>2006-10-17T20:37:55.618+02:00</updated><title type='text'>ECO III: Article</title><content type='html'>One of my articles was published on BDN. In the article you can learn how to use IOclServer, in particular how to handle the different results you might get.&lt;br /&gt;&lt;br /&gt;Best thing: The article is available in English and German.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://bdn.borland.com/article/33462"&gt;http://bdn.borland.com/article/33462&lt;/a&gt; (EN)&lt;br /&gt;&lt;a href="http://bdn.borland.com/article/33498"&gt;http://bdn.borland.com/article/33498&lt;/a&gt; (DE)&lt;br /&gt;&lt;br /&gt;I hope the article gives you some insights you did not know about. Enjoy reading!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19137168-115221521043835325?l=delphi2006.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://delphi2006.blogspot.com/feeds/115221521043835325/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19137168&amp;postID=115221521043835325' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19137168/posts/default/115221521043835325'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19137168/posts/default/115221521043835325'/><link rel='alternate' type='text/html' href='http://delphi2006.blogspot.com/2006/07/eco-iii-article.html' title='ECO III: Article'/><author><name>Holger</name><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-19137168.post-115169956908380479</id><published>2006-06-30T22:30:00.000+02:00</published><updated>2006-10-17T20:37:55.539+02:00</updated><title type='text'>ECO Newsgroup...yes, there is one!</title><content type='html'>.....it just has a long name!&lt;br /&gt;&lt;br /&gt;I was quite surprised that a lot of people do not know that there is an ECO-specific newsgroup on the Borland servers. It is called &lt;tt&gt;borland.public.delphi.modeldrivenarchitecture.eco&lt;/tt&gt;. The best thing about this group is that the ECO developers give advise whenever they can! So, subscribe this group in your newsreader when starting to develop ECO applications as it'll make your life much easier when running into difficulties!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19137168-115169956908380479?l=delphi2006.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://delphi2006.blogspot.com/feeds/115169956908380479/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19137168&amp;postID=115169956908380479' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19137168/posts/default/115169956908380479'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19137168/posts/default/115169956908380479'/><link rel='alternate' type='text/html' href='http://delphi2006.blogspot.com/2006/06/eco-newsgroupyes-there-is-one.html' title='ECO Newsgroup...yes, there is one!'/><author><name>Holger</name><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-19137168.post-115113957457908199</id><published>2006-06-24T10:54:00.000+02:00</published><updated>2006-10-17T20:37:55.474+02:00</updated><title type='text'>TDBGrid gets a face-lift</title><content type='html'>&lt;p&gt;I always wondered why Borland never changed the look and feel of TDBGrid. A lot of people use it and it looks just "old fashioned" compared to all the other components. However, the community has Jeremy North who did an amazing job to theme the TDBGird control and named it TThemeDBGrid. &lt;/p&gt;&lt;br /&gt;&lt;p&gt;And the best thing: He made it available for free in CodeContral, Borland's community data repository. So, be sure to search for 'Jeremy North' in your next CC search in the author-field. It's well worth looking at!&lt;/p&gt;&lt;br /&gt;&lt;p&gt;You can see screenshots of the component on Jeremy's blog at &lt;a href="http://jedqc.blogspot.com"&gt;http://jedqc.blogspot.com&lt;/a&gt;. Also be sure to look at his other great components at &lt;a href="http://www.jed-software.com"&gt;http://www.jed-software.com&lt;/a&gt;.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19137168-115113957457908199?l=delphi2006.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://delphi2006.blogspot.com/feeds/115113957457908199/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19137168&amp;postID=115113957457908199' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19137168/posts/default/115113957457908199'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19137168/posts/default/115113957457908199'/><link rel='alternate' type='text/html' href='http://delphi2006.blogspot.com/2006/06/tdbgrid-gets-face-lift.html' title='TDBGrid gets a face-lift'/><author><name>Holger</name><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-19137168.post-115030339184361759</id><published>2006-06-14T18:40:00.000+02:00</published><updated>2006-10-17T20:37:55.408+02:00</updated><title type='text'>Common ASP.NET Hurdles</title><content type='html'>Okay, some of you might say: "Yeah, I know, why does he blog about it." However, I decided to post a link to this article of the MSDN Magazine that points out 10 common mistakes that are being made when developing ASP.NET powered sites. May be it'll help somebody fix something that has been an annoyance...&lt;br /&gt;&lt;br /&gt;Look for it &lt;a href="http://tinyurl.com/nze28"&gt;here&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19137168-115030339184361759?l=delphi2006.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://delphi2006.blogspot.com/feeds/115030339184361759/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19137168&amp;postID=115030339184361759' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19137168/posts/default/115030339184361759'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19137168/posts/default/115030339184361759'/><link rel='alternate' type='text/html' href='http://delphi2006.blogspot.com/2006/06/common-aspnet-hurdles.html' title='Common ASP.NET Hurdles'/><author><name>Holger</name><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-19137168.post-115021255125255639</id><published>2006-06-13T16:50:00.000+02:00</published><updated>2006-10-17T20:37:55.342+02:00</updated><title type='text'>CodeCentral as you will like it and always wanted it!</title><content type='html'>Borland's - or soon to be DevCo's - forum to exchange sources, complete sample projects, third party components and other stuff that is related to their products is called CodeCentral. You can access it by using &lt;a href="http://cc.borland.com"&gt;http://cc.borland.com&lt;/a&gt;. However, now it even gets much more comfortable. &lt;a href="http://dcleggsblog.blogspot.com"&gt;David Clegg&lt;/a&gt; - he might actually change his name to David CCleg pretty soon if he spends more time on adding features (&lt;i&gt;grin&lt;/i&gt;) - implemented a web service for CodeCentral ("CC"). Furthermore, he supplies a client that completely integrates into the IDE. On his blog he states that it should only serve for demo purposes, but I think it is really usable if you need to search for something on CC. I find it much easier and more comfortable to use than browsing for it online. Dave also published an article on BDN that sums everything up. You can access it &lt;a href="http://bdn.borland.com/article/33517"&gt;here&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19137168-115021255125255639?l=delphi2006.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://delphi2006.blogspot.com/feeds/115021255125255639/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19137168&amp;postID=115021255125255639' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19137168/posts/default/115021255125255639'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19137168/posts/default/115021255125255639'/><link rel='alternate' type='text/html' href='http://delphi2006.blogspot.com/2006/06/codecentral-as-you-will-like-it-and.html' title='CodeCentral as you will like it and always wanted it!'/><author><name>Holger</name><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-19137168.post-114937548889484516</id><published>2006-06-04T00:49:00.000+02:00</published><updated>2006-10-17T20:37:55.269+02:00</updated><title type='text'>Finally! Another Delphi book!</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://images-eu.amazon.com/images/P/1590593863.03.LZZZZZZZ.jpg"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 320px;" src="http://images-eu.amazon.com/images/P/1590593863.03.LZZZZZZZ.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;The title ".NET 2.0 for Delphi Programmers" might sound misleading at first, but as I have seen the table of contents, which can be looked at &lt;a href="http://www.midnightbeach.com/.net"&gt;here&lt;/a&gt;, I immediatelly pre-ordered it. It is already available in the United States at Amazon.com, but not yet in Germany.&lt;br /&gt;&lt;br /&gt;The book is written for Delphi developers who want to get to know .NET. I was pretty overwhelmed when I looked at Delphi for .NET without actually knowing anything about .NET. At that time, there was only a book that dealt with C# to show what .NET was all about. However, right now I would have the choice to order a book that used Delphi instead of another language.&lt;br /&gt;&lt;br /&gt;So, count yourselves lucky and be happy that you can order a Delphi book that can get you started with .NET and gives you a whole lot of the details you need. I prepared two links: &lt;a href="http://tinyurl.com/pwpsx"&gt;United States&lt;/a&gt; and &lt;a href="http://tinyurl.com/ppg48"&gt;Germany&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Thanks Jon!&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Note:&lt;/b&gt; venkatesh pointed out that he found an eBook-version that is available for 30$. I just wanted to point it out, but have not googled for it yet.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19137168-114937548889484516?l=delphi2006.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://delphi2006.blogspot.com/feeds/114937548889484516/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19137168&amp;postID=114937548889484516' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19137168/posts/default/114937548889484516'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19137168/posts/default/114937548889484516'/><link rel='alternate' type='text/html' href='http://delphi2006.blogspot.com/2006/06/finally-another-delphi-book.html' title='Finally! Another Delphi book!'/><author><name>Holger</name><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-19137168.post-114933778641430700</id><published>2006-06-03T14:19:00.000+02:00</published><updated>2006-10-17T20:37:55.203+02:00</updated><title type='text'>IDE Hints revisited...</title><content type='html'>Jeremy North pinged me and wanted to wish me a nice weekend. He also said: "I want you to look at something. Simply install those packages I sent you into the IDE and tell me what you think."&lt;br /&gt;I did not know what it was, but I gladly complied and installed the packages, restarted Delphi and was purely amazed.&lt;br /&gt;&lt;br /&gt;See for yourself. Jeremy said this was basically just something has been fiddling around with, but all this stuff will be included in an upcoming product he is giving the finishing touches right night now. I will keep those packages installed as the IDE looks really nice this way!&lt;br /&gt;&lt;br /&gt;I am very eager to see what it is, to be honest, but I am quite sure, Jeremy will have more details soon. You can find Jeremy North's components at &lt;a href="http://www.jed-software.com"&gt;http://www.jed-software.com&lt;/a&gt; .&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/7785/373/1600/jeremy1.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://photos1.blogger.com/blogger/7785/373/400/jeremy1.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/7785/373/1600/jeremy2.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://photos1.blogger.com/blogger/7785/373/400/jeremy2.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19137168-114933778641430700?l=delphi2006.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://delphi2006.blogspot.com/feeds/114933778641430700/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19137168&amp;postID=114933778641430700' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19137168/posts/default/114933778641430700'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19137168/posts/default/114933778641430700'/><link rel='alternate' type='text/html' href='http://delphi2006.blogspot.com/2006/06/ide-hints-revisited.html' title='IDE Hints revisited...'/><author><name>Holger</name><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-19137168.post-114768544166523575</id><published>2006-05-15T11:24:00.000+02:00</published><updated>2006-10-17T20:37:55.060+02:00</updated><title type='text'>ECO: DateTime values in OCL</title><content type='html'>Today, Jonas Högström posted an excellent summary how to specify DateTime-values in OCL. He also commented on the effect different timezones have on it. A lot of people browse blogs first and thus I repost it here.&lt;br /&gt;&lt;br /&gt;The question came from Dmitriy Nagirnyak, a regular in the public newsgroup about ECO.&lt;pre style="color: rgb(102, 102, 102);" wrap=""&gt;&lt;/pre&gt;&lt;span style="font-style: italic; color: rgb(102, 102, 102);"&gt;Could somebody please explain the correct way for writing OCL with &lt;/span&gt;&lt;span style="font-style: italic; color: rgb(102, 102, 102);"&gt;DateTime. [?]&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);"&gt;These are the literals that OCL accepts:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);"&gt;Date: #yyyy-mm-dd&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);"&gt;Time: #hh:mm:ss &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);"&gt;Time: #hh:mm&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);"&gt;DateTime: #yyyy-mm-ddThh:mm:ss&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);"&gt;DateTime: #yyyy-mm-ddThh:mm&lt;br /&gt;&lt;br /&gt;It is independent of culture, religion, dst, timezone and any other &lt;/span&gt;&lt;span style="color: rgb(102, 102, 102);"&gt;setting that might vary on your computer. &lt;/span&gt;&lt;span style="color: rgb(102, 102, 102);"&gt;The Time literals will return a TimeSpan value. There is unfortunately&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);"&gt;no way to specify "days" in this literal...&lt;br /&gt;&lt;br /&gt;It will [be] - on second thought-  in the current timezone and current DST.&lt;br /&gt;DateTimeFormat however has no influence ofer the parsing of the literal.&lt;br /&gt;&lt;/span&gt;&lt;pre style="color: rgb(102, 102, 102);"&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19137168-114768544166523575?l=delphi2006.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://delphi2006.blogspot.com/feeds/114768544166523575/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19137168&amp;postID=114768544166523575' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19137168/posts/default/114768544166523575'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19137168/posts/default/114768544166523575'/><link rel='alternate' type='text/html' href='http://delphi2006.blogspot.com/2006/05/eco-datetime-values-in-ocl.html' title='ECO: DateTime values in OCL'/><author><name>Holger</name><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-19137168.post-114721442127688386</id><published>2006-05-10T00:34:00.000+02:00</published><updated>2006-10-17T20:37:54.994+02:00</updated><title type='text'>German ECO book available in English -soon-</title><content type='html'>I blogged about the fact that the German ECO book got an update. I was very amazed that Alois gave me even better news: it is being translated to English right now and Alois expects a first RC of it within the next  two weeks...&lt;br /&gt;&lt;br /&gt;If that's not great news, what is!?&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/7785/373/1600/alois.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://photos1.blogger.com/blogger/7785/373/400/alois.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19137168-114721442127688386?l=delphi2006.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://delphi2006.blogspot.com/feeds/114721442127688386/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19137168&amp;postID=114721442127688386' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19137168/posts/default/114721442127688386'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19137168/posts/default/114721442127688386'/><link rel='alternate' type='text/html' href='http://delphi2006.blogspot.com/2006/05/german-eco-book-available-in-english.html' title='German ECO book available in English -soon-'/><author><name>Holger</name><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>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19137168.post-114651078249977933</id><published>2006-05-01T21:11:00.000+02:00</published><updated>2006-10-17T20:37:54.926+02:00</updated><title type='text'>German ECO book gets an update!</title><content type='html'>Wow! Great work, Alois! The German ECO III book got lots and lots of new content. And even better: Alois announced in the newsgroups that an English version is in the works.&lt;br /&gt;&lt;br /&gt;And the best thing about it: it is all available for download for free right &lt;a href="http://www.ecospace.de/ecobook.html"&gt;here&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19137168-114651078249977933?l=delphi2006.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://delphi2006.blogspot.com/feeds/114651078249977933/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19137168&amp;postID=114651078249977933' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19137168/posts/default/114651078249977933'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19137168/posts/default/114651078249977933'/><link rel='alternate' type='text/html' href='http://delphi2006.blogspot.com/2006/05/german-eco-book-gets-update.html' title='German ECO book gets an update!'/><author><name>Holger</name><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-19137168.post-114651054508156864</id><published>2006-05-01T21:03:00.000+02:00</published><updated>2006-10-17T20:37:54.863+02:00</updated><title type='text'>Developer NOW!</title><content type='html'>A couple of weeks ago I mentioned that I was going to be at the SDC in Arnhem. However, as it turned out, there is yet another Delphi-related event earlier than that in Mülheim. As it is just around the corner for me, I'll be going there. So, if you cannot make it to Arnhem, maybe we will meet there.&lt;br /&gt;&lt;br /&gt;If this is the first time you hear about "Developer NOW!", have a look &lt;a href="http://info.borland.de/developernow/"&gt;here&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19137168-114651054508156864?l=delphi2006.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://delphi2006.blogspot.com/feeds/114651054508156864/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19137168&amp;postID=114651054508156864' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19137168/posts/default/114651054508156864'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19137168/posts/default/114651054508156864'/><link rel='alternate' type='text/html' href='http://delphi2006.blogspot.com/2006/05/developer-now.html' title='Developer NOW!'/><author><name>Holger</name><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-19137168.post-114538737638499457</id><published>2006-04-18T21:08:00.000+02:00</published><updated>2006-10-17T20:37:54.795+02:00</updated><title type='text'>Borland Developer Studio 2006 Update 2 is available!</title><content type='html'>Finally! Update 2 of BDS 2006  is available for download. I sure know what I will be doing tonight....&lt;br /&gt;&lt;br /&gt;Read all the details in this &lt;a href="http://bdn.borland.com/article/0,1410,33463,00.html"&gt;article&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19137168-114538737638499457?l=delphi2006.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://delphi2006.blogspot.com/feeds/114538737638499457/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19137168&amp;postID=114538737638499457' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19137168/posts/default/114538737638499457'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19137168/posts/default/114538737638499457'/><link rel='alternate' type='text/html' href='http://delphi2006.blogspot.com/2006/04/borland-developer-studio-2006-update-2.html' title='Borland Developer Studio 2006 Update 2 is available!'/><author><name>Holger</name><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-19137168.post-114493771847133668</id><published>2006-04-13T16:10:00.000+02:00</published><updated>2006-10-17T20:37:54.728+02:00</updated><title type='text'>Visiting the SDC 2006 in Papendal</title><content type='html'>I decided to visit the SDC 2006 in Papendal. I will be there on May 16th - the second day of the conference. I just thought it might be nice blogging about it, because maybe you might be there as well...&lt;br /&gt;&lt;br /&gt;I am already looking forward to having some chats with members of the Delphi Community in person!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19137168-114493771847133668?l=delphi2006.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://delphi2006.blogspot.com/feeds/114493771847133668/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19137168&amp;postID=114493771847133668' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19137168/posts/default/114493771847133668'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19137168/posts/default/114493771847133668'/><link rel='alternate' type='text/html' href='http://delphi2006.blogspot.com/2006/04/visiting-sdc-2006-in-papendal.html' title='Visiting the SDC 2006 in Papendal'/><author><name>Holger</name><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-19137168.post-114458633360580604</id><published>2006-04-09T14:35:00.000+02:00</published><updated>2006-10-17T20:37:54.664+02:00</updated><title type='text'>Is there no TMemo-alike in Winforms?</title><content type='html'>&lt;p&gt;Coming from a VCL background I was looking for a &lt;span style="font-style: italic;"&gt;TMemo &lt;/span&gt;in Winforms for the first time I used it. To spare you some time: there is no component like that in Winforms. Simply use the &lt;span style="font-style: italic;"&gt;TextBox&lt;/span&gt;, which is the &lt;span style="font-style: italic;"&gt;TEdit &lt;/span&gt;in Winforms, and set the &lt;span style="font-style: italic;"&gt;MultiLine &lt;/span&gt;property to &lt;span style="font-style: italic;"&gt;True&lt;/span&gt;. There you go. &lt;/p&gt;&lt;br /&gt;&lt;p&gt;Another striking difference is that Winforms handles the &lt;span style="font-style: italic;"&gt;Lines &lt;/span&gt;property as an "&lt;span style="font-style: italic;"&gt;Array of String&lt;/span&gt;", not &lt;span style="font-style: italic;"&gt;TStringlist&lt;/span&gt;, which is way more comfortable.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19137168-114458633360580604?l=delphi2006.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://delphi2006.blogspot.com/feeds/114458633360580604/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19137168&amp;postID=114458633360580604' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19137168/posts/default/114458633360580604'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19137168/posts/default/114458633360580604'/><link rel='alternate' type='text/html' href='http://delphi2006.blogspot.com/2006/04/is-there-no-tmemo-alike-in-winforms.html' title='Is there no TMemo-alike in Winforms?'/><author><name>Holger</name><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-19137168.post-114383891948299835</id><published>2006-03-31T22:41:00.000+02:00</published><updated>2006-10-17T20:37:54.599+02:00</updated><title type='text'>Delphi 2006; dcc32: "--secret-sign" compiler switch</title><content type='html'>&lt;p&gt;This is amazing! I fiddled around with PGP today. I wanted to sign my secret key and a couple of other keys, but - as always - I had to look up the name of the parameter for my command-line tool. A quick Google search reveiled that it was "--secret-sign". So I selected the text and copied the parameter into the clipboard. Changed back to the command window, pasted and pressed ENTER. Hmm... &lt;br /&gt;&lt;br /&gt;This is what I saw on the screen:&lt;/p&gt; &lt;br /&gt;&lt;code&gt;&lt;br /&gt;C:\Documents and Settings\holger\apps\GnuPG&gt;dcc32 clpbrdhist.dpr --secret-sign&lt;br /&gt;Borland Delphi for Win32 compiler version 18.0&lt;br /&gt;Copyright (c) 1983,2005 Borland Software Corporation (experimental compiler switch help)&lt;br /&gt;&lt;br /&gt;Syntax: dcc32 --secret-sign [options] filename [options]&lt;br /&gt;  The --secret-sign parameter enables the following options:&lt;br /&gt;  -NATIVE64BIT = Build 64-Bit executable (experimental)&lt;br /&gt;  -ENABLE-GENERICS = Enable generics (experimental)&lt;br /&gt;  -COMPRESS = Compress executable for in-place decompression (experimental)&lt;br /&gt;&lt;br /&gt;  Use at your own risk!&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;p&gt;Wow! What's that? I pasted the parameter to the string that was still there due to the command line history I use quite a lot. At first I could not believe my eyes, but then I simply typed the followingin my source directory:&lt;/p&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;C:\Documents and Settings\holger\source\clipbrdhist&gt;dcc32 --secret-sign -NATIVE64BIT clpbrdhist.dpr&lt;/code&gt;&lt;br /&gt;&lt;p&gt;Then I wondered that it really compiled and yielded an executable. Then, I tried to execute it and had to realize: It did not work! I do not have Win64, nor do I have a 64-Bit processor... the message was:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;Fatal error: Cannot execute clpbrdhist.exe -- operation not supported&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;p&gt;Well, I guess, somebody of you has to try it on a Win64 system with a decent processor. However, I tried the "-compress" switch and it really decreased the size of the executable quite a bit! And I could not "feel" any performance decrease compared to the non-compressed exe. This is really cool!&lt;/p&gt;&lt;br /&gt;&lt;p&gt;The other switch is pretty useless, as I have no idea how the syntax would have to look like in order to use it... Well, maybe somebody way smarter than me will find out :-)&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19137168-114383891948299835?l=delphi2006.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://delphi2006.blogspot.com/feeds/114383891948299835/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19137168&amp;postID=114383891948299835' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19137168/posts/default/114383891948299835'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19137168/posts/default/114383891948299835'/><link rel='alternate' type='text/html' href='http://delphi2006.blogspot.com/2006/03/delphi-2006-dcc32-secret-sign-compiler.html' title='Delphi 2006; dcc32: &quot;--secret-sign&quot; compiler switch'/><author><name>Holger</name><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-19137168.post-114382933481577875</id><published>2006-03-31T20:19:00.000+02:00</published><updated>2006-10-17T20:37:54.519+02:00</updated><title type='text'>IntraWeb Studio: New Beta = WOW!</title><content type='html'>&lt;P&gt;Today, Hadi Hariri from Atozed Software surprised me with an email if I was interested to check out the new user interface of the next version of IntraWebStudio (IWS). I already mentioned that this very page has been designed with it, but to give it away right from the start: Wow! The new screen layout and usabilty are awesome! The complete user interface matches the look and feel of the next Microsoft product line and I think it is just great that I can use IWS with the same user controls that Microsoft Vista or Office will offer in the future.  also immediately noticed the major improvements in the document editor. It is much easyier to work with as almost every operation is on the toolbar now.&lt;/P&gt;&lt;br /&gt;&lt;P&gt;Just have a look what the main screen and the document editor will look&lt;br /&gt;like:&lt;/P&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/7785/373/1600/iws1.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://photos1.blogger.com/blogger/7785/373/400/iws1.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/7785/373/1600/iws2.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://photos1.blogger.com/blogger/7785/373/400/iws2.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19137168-114382933481577875?l=delphi2006.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://delphi2006.blogspot.com/feeds/114382933481577875/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19137168&amp;postID=114382933481577875' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19137168/posts/default/114382933481577875'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19137168/posts/default/114382933481577875'/><link rel='alternate' type='text/html' href='http://delphi2006.blogspot.com/2006/03/intraweb-studio-new-beta-wow.html' title='IntraWeb Studio: New Beta = WOW!'/><author><name>Holger</name><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-19137168.post-113994773112319632</id><published>2006-02-14T21:05:00.000+01:00</published><updated>2006-10-17T20:37:54.443+02:00</updated><title type='text'>New Webpage in the works</title><content type='html'>Some of you might already have noticed that you can access this page using "www.flickdotnet.de" as well. This will be the domain of my new webpage pretty soon. This is also the reason that there are not many posts from me right now, because I have to do a lot of work on the new page.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19137168-113994773112319632?l=delphi2006.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://delphi2006.blogspot.com/feeds/113994773112319632/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19137168&amp;postID=113994773112319632' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19137168/posts/default/113994773112319632'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19137168/posts/default/113994773112319632'/><link rel='alternate' type='text/html' href='http://delphi2006.blogspot.com/2006/02/new-webpage-in-works.html' title='New Webpage in the works'/><author><name>Holger</name><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-19137168.post-113932985597182220</id><published>2006-02-07T17:24:00.000+01:00</published><updated>2006-10-17T20:37:54.382+02:00</updated><title type='text'>Classes and the Stereotype-property</title><content type='html'>Today, I read something really interesting in Borland's public newsgroups about ECO III. I always wondered, just like the person, who was asking for help, what the Stereotype-property in ECO classes was used for.&lt;br /&gt;&lt;br /&gt;The answer is pretty simple: Nothing. &lt;br /&gt;&lt;br /&gt;ECO does not use this property at all, it is there for UML modeling purposes only and will not be transfered into your ECO sourcecode.&lt;br /&gt;&lt;br /&gt;However, you can access information on that property during runtime using UmlRt.&lt;br /&gt;&lt;br /&gt;Mr. Peter Morris also noted that he used it to categorize his classes. He proposes to google for the phrase "Modeling in Color" in order to get more information on that topic.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19137168-113932985597182220?l=delphi2006.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://delphi2006.blogspot.com/feeds/113932985597182220/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19137168&amp;postID=113932985597182220' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19137168/posts/default/113932985597182220'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19137168/posts/default/113932985597182220'/><link rel='alternate' type='text/html' href='http://delphi2006.blogspot.com/2006/02/classes-and-stereotype-property.html' title='Classes and the Stereotype-property'/><author><name>Holger</name><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-19137168.post-113925145543823037</id><published>2006-02-06T19:43:00.000+01:00</published><updated>2006-10-17T20:37:54.316+02:00</updated><title type='text'>ECO and Bold (again)</title><content type='html'>(My apologies to all RSS users, but the first version of this post simply disappeared from my Blogger-Account)&lt;br /&gt;&lt;br /&gt;Today, a user complained in a newsgroup about ECO III. Something did not work the same way as it worked in Bold, which was the Win32 predecessor of ECO, and called ECO a "drawback". &lt;br /&gt;&lt;br /&gt;Statements like that always make me mad. &lt;br /&gt;&lt;br /&gt;Just because something works differently in a completely reworked, remodeled framework, does not mean it is worse!&lt;br /&gt;&lt;br /&gt;In this case, the user was complaining that there were no more visual components included with ECO - at least I thought so. ECO, however, does use the data binding capabilties of the Winforms presentation layer (thanks, Jesper *grin*) in order to display information from the business model inside the GUI. It is a completely different concept, which is way more flexible than what Bold had, if I come to think of it.&lt;br /&gt;&lt;br /&gt;In ECO, there is simply no need for special components. You may use any Winforms component that supports data binding with ECO.&lt;br /&gt;&lt;br /&gt;For me that is not a "drawback", it is a major improvement.&lt;br /&gt;&lt;br /&gt;It is also amazing how easy it is to speak about a thing and mean two totally different things. I was talking about a "Treeview" component that can be dropped on a Winform. The user, who was complaining, spoke about something totally different that was called TBoldTreeView. Mr. Peter Morris was so kind to explain to me what the component did/does and I understand that it has nothing to do with displaying information like I thought.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19137168-113925145543823037?l=delphi2006.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://delphi2006.blogspot.com/feeds/113925145543823037/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19137168&amp;postID=113925145543823037' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19137168/posts/default/113925145543823037'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19137168/posts/default/113925145543823037'/><link rel='alternate' type='text/html' href='http://delphi2006.blogspot.com/2006/02/eco-and-bold-again.html' title='ECO and Bold (again)'/><author><name>Holger</name><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-19137168.post-113896869493901571</id><published>2006-02-03T13:08:00.000+01:00</published><updated>2006-10-17T20:37:54.253+02:00</updated><title type='text'>Microsoft offers most parts of "Windows XP Professional Resource Kit"  for free</title><content type='html'>I just read on the German IT news site &lt;a href="http://www.heise.de"&gt;heise.de&lt;/a&gt; that Microsoft published most of the content of the book titled "Windows XP Professional Resource Kit" on TechNet. That means you can read most of the content for free.&lt;br /&gt;&lt;br /&gt;Click here to get to the &lt;a href="http://www.microsoft.com/technet/prodtechnol/winxppro/reskit/default.mspx"&gt;index&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19137168-113896869493901571?l=delphi2006.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://delphi2006.blogspot.com/feeds/113896869493901571/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19137168&amp;postID=113896869493901571' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19137168/posts/default/113896869493901571'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19137168/posts/default/113896869493901571'/><link rel='alternate' type='text/html' href='http://delphi2006.blogspot.com/2006/02/microsoft-offers-most-parts-of-windows.html' title='Microsoft offers most parts of &quot;Windows XP Professional Resource Kit&quot;  for free'/><author><name>Holger</name><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-19137168.post-113836664764043104</id><published>2006-01-27T13:56:00.000+01:00</published><updated>2006-10-17T20:37:54.184+02:00</updated><title type='text'>Winter ...</title><content type='html'>Well, it's Winter in Germany and not only humans love it :-) &lt;br /&gt;&lt;br /&gt;&lt;A HREF='http://photos1.blogger.com/blogger/7785/373/1024/SIMG2923.jpg'&gt;&lt;IMG SRC='http://photos1.blogger.com/blogger/7785/373/400/SIMG2923.jpg' border=0 alt='' style='display:block;margin 0px auto 10px; cursor:hand; text-align:center'&gt;&lt;/A&gt;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&lt;a href='http://picasa.google.com/' target='ext'&gt;&lt;img src='http://photos1.blogger.com/pbp.gif' alt='Posted by Picasa' style='border: 0px none ; padding: 0px; background: transparent none repeat scroll 0% 50%; -moz-background-clip: initial; -moz-background-origin: initial; -moz-background-inline-policy: initial;' align='middle' border='0' /&gt;&lt;/a&gt; &lt;br /&gt;&lt;br /&gt;And yes, that is also the reason why I spent a lot of time outside instead of writing technical blog articles.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19137168-113836664764043104?l=delphi2006.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://delphi2006.blogspot.com/feeds/113836664764043104/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19137168&amp;postID=113836664764043104' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19137168/posts/default/113836664764043104'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19137168/posts/default/113836664764043104'/><link rel='alternate' type='text/html' href='http://delphi2006.blogspot.com/2006/01/winter.html' title='Winter ...'/><author><name>Holger</name><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-19137168.post-113806896225631698</id><published>2006-01-24T03:04:00.000+01:00</published><updated>2006-10-17T20:37:54.114+02:00</updated><title type='text'>"555" and IP addresses</title><content type='html'>This post is a little bit different from the last few. However, I have been asking this myself for quite some time, could not find any discussions about it on the net, so I thought I blog about it.&lt;br /&gt;&lt;br /&gt;We all know that all American movies have phone numbers that start with "555".  I noticed that whenever it is being talked about IP addresses in series and movies  something like "355." or "295." is being said. Hmmm... As far as I know the biggest possible address is "255.255.255.255". I really cannot believe that the writers of these shows overlooked this detail. I know about newer IP addressing versions, but these are not used on the internet yet as far as I know...&lt;br /&gt;&lt;br /&gt;So I am thinking: Are movies and series using IP addresses that are in a range outside real IP addresses for the very same reasons that movie phone numbers start with "555"?&lt;br /&gt;&lt;br /&gt;Just something to think about for the day. I am eager to hear your comments.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19137168-113806896225631698?l=delphi2006.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://delphi2006.blogspot.com/feeds/113806896225631698/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19137168&amp;postID=113806896225631698' title='7 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19137168/posts/default/113806896225631698'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19137168/posts/default/113806896225631698'/><link rel='alternate' type='text/html' href='http://delphi2006.blogspot.com/2006/01/555-and-ip-addresses.html' title='&quot;555&quot; and IP addresses'/><author><name>Holger</name><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>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19137168.post-113720102390880058</id><published>2006-01-14T02:00:00.000+01:00</published><updated>2006-10-17T20:37:54.051+02:00</updated><title type='text'>Command Line Switch Helps Testing Packages</title><content type='html'>I never realized this, but Jeremy North gave me a wonderful  idea when I had a look at his tool that lets you customize Delphi 2005 personalities for start-up.&lt;br /&gt;&lt;br /&gt;BDS has the command-line switch &lt;tt&gt;-r&lt;/tt&gt; which lets you define a registry key that is used instead of &lt;tt&gt;"BDS\4.0\" &lt;/tt&gt; by the IDE.&lt;br /&gt;&lt;br /&gt;So basically, if you start the BDS using: &lt;tt&gt;bds.exe -rTESTING&lt;/tt&gt; you end up with an IDE that looks just like a newly installed version. No custom packages, no custom components are loaded that have not been installed with the Borland Installer. Basically, if you e.g. installed IntraWeb that comes with Delphi 2006, that package will be loaded, because it is part of your default install.&lt;br /&gt;&lt;br /&gt;However, this environment is ideal if you want to check out packages that you are uncertain about and you can still keep your working environment undisturbed.&lt;br /&gt;&lt;br /&gt;If you develop for multiple customers you can build yourself two  shortcuts on your desktop. One shortcut executes &lt;tt&gt;bds.exe -rCUST_A&lt;/tt&gt; the other one calls &lt;tt&gt;bds.exe -rCUST_B&lt;/tt&gt;. So you have a customized IDE for your customers. &lt;br /&gt;&lt;br /&gt;Also take note of the fact that there is also the &lt;tt&gt;-p&lt;/tt&gt; command-line switch. That will only load a certain personality and can be combined with &lt;tt&gt;-r&lt;/tt&gt;.&lt;br /&gt;&lt;br /&gt;BDS 2006 is fast, but using these command-line switches will make it even more handy and snappy.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19137168-113720102390880058?l=delphi2006.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://delphi2006.blogspot.com/feeds/113720102390880058/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19137168&amp;postID=113720102390880058' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19137168/posts/default/113720102390880058'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19137168/posts/default/113720102390880058'/><link rel='alternate' type='text/html' href='http://delphi2006.blogspot.com/2006/01/command-line-switch-helps-testing.html' title='Command Line Switch Helps Testing Packages'/><author><name>Holger</name><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-19137168.post-113616559133290817</id><published>2006-01-02T01:57:00.000+01:00</published><updated>2006-10-17T20:37:53.984+02:00</updated><title type='text'>ECO: Using Building Blocks</title><content type='html'>My last post introduced you to the nice and pretty "Category" class. I also mentioned that you can use it in any ECO Application you might build. What I did not mention was... &lt;span style="font-weight: bold;"&gt;"&lt;/span&gt;&lt;b&gt;How?"&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Let me at first tell you how I built the Category class to make it easy inserting it into other applications. It is not difficult to use ECO classes from multiple packages in one ECO Space. The difficult thing to do is to refer to classes during design-time. In this example I will build an application that assigns categories to a product. That means I have to create an association from a class named "Product" to the already modeled "Category" class.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Step 1:&lt;/span&gt; Create a new ECO Package DLL. I used the C# personality for that. That is just my personal taste, of course. I can handle namespaces easier in C# that is the reason why I generate C# code for my models.&lt;br /&gt;&lt;br /&gt;For that, go to "File / New...", select "Other..."...&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/7785/373/1600/mod_1.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 360px; height: 276px;" src="http://photos1.blogger.com/blogger/7785/373/400/mod_1.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;... click on the correct personality and double-click the "ECO Package DLL" item.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/7785/373/1600/mod_2.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://photos1.blogger.com/blogger/7785/373/400/mod_2.png" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Step 2:&lt;/span&gt; Name your model library appropriatly, remember to use namespaces. From my own experience, you get name conflicts if you do not create proper namespaces.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/7785/373/1600/mod_3.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://photos1.blogger.com/blogger/7785/373/400/mod_3.png" alt="" border="0" /&gt;&lt;/a&gt;&lt;span style="font-weight: bold;"&gt;Step 3:&lt;/span&gt; Switch to the model view and rename "Package_1" to something that makes more sense. I named it "CategoryPkg" as it is the package for the category logic.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/7785/373/1600/mod_4.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://photos1.blogger.com/blogger/7785/373/400/mod_4.png" alt="" border="0" /&gt;&lt;/a&gt;&lt;span style="font-weight: bold;"&gt;Step 4:&lt;/span&gt; You are ready to double-click on the package to design your class model.  You can have a look at the previous post, what the class looks like.&lt;br /&gt;&lt;br /&gt;That's it. This will make sure that you can use the business logic you define in the library in any other ECO application, even during design-time.&lt;br /&gt;&lt;br /&gt;So, how do we actually include a model in another application during design-time? Well, I tried to find it in the help of D2006 and I actually could find zero on that topic. So, I will be very verbose and will try to give  you as much information as I can.&lt;br /&gt;&lt;br /&gt;First, create a new ECO application, of course, it could also be another library that is based on the other library. But we'll create a Delphi .NET Winforms Application in this example.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/7785/373/1600/mod_5.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://photos1.blogger.com/blogger/7785/373/400/mod_5.png" alt="" border="0" /&gt;&lt;/a&gt;Before we start to design the classes belonging to that application, we will add a reference to the library, which contains the class "Category". I always use the Project Manager, right-click the "References"-node and click on "Add Reference...".&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/7785/373/1600/mod_6.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://photos1.blogger.com/blogger/7785/373/400/mod_6.png" alt="" border="0" /&gt;&lt;/a&gt;Select the library-file using the "Browse..."-button and click on "OK" to apply the changes. it is very important that you &lt;span style="font-weight: bold;"&gt;build your project&lt;/span&gt; now. I said &lt;span style="font-weight: bold;"&gt;build&lt;/span&gt;, not compile. Just in case.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/7785/373/1600/mod_7.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://photos1.blogger.com/blogger/7785/373/400/mod_7.png" alt="" border="0" /&gt;&lt;/a&gt;The next step is to take care of the fact that we need the category class during design-time already. So right-click the exe-filename and choose the menu item named "Referred ECO Packages... ".&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/7785/373/1600/mod_8.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://photos1.blogger.com/blogger/7785/373/400/mod_8.jpg" alt="" border="0" /&gt;&lt;/a&gt;You have to browse for the "ecopkg"-file in your library project. Click on "Add..." to achieve that. Exactly, that means if you deploy a ECO library with classes to a customer, you also have to deploy all files named "ecopkg" as those contain the design-time information that make modeling with the classes in your library possible.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/7785/373/1600/mod_9.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://photos1.blogger.com/blogger/7785/373/400/mod_9.png" alt="" border="0" /&gt;&lt;/a&gt;Save your project and close it. Sadly, this is necessary for the Model View to pick up the new ECO Package. I might be wrong, but I found no other means how to do it.  If you did it correctly, you will have the referred ECO Package listed in the Model View as shown below.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/7785/373/1600/mod_12.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://photos1.blogger.com/blogger/7785/373/400/mod_12.png" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;After re-opening your project, open "Package_1" and add a class named "Product".&lt;br /&gt;&lt;br /&gt;Right-click on the modeling workspace and choose "Add / Shortcut...". This will make it possible for you to add the class "Category" to the model.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/7785/373/1600/mod_10.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://photos1.blogger.com/blogger/7785/373/400/mod_10.jpg" alt="" border="0" /&gt;&lt;/a&gt;In order to do it, you will have to expand the "References" node like I did it in the screenshot below. Be sure to select "Category" and not, like it is selected below, "MCategory", any other namespace or package. We want to add a shortcut to a class to the model, nothing else.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/7785/373/1600/mod_11.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://photos1.blogger.com/blogger/7785/373/400/mod_11.png" alt="" border="0" /&gt;&lt;/a&gt;Good. Now we have a shortcut (as in Windows it is shown using an arrow in the corner) to Category in our model. Simply add an association between the two classes as you do it with any other class.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/7785/373/1600/mod_13.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://photos1.blogger.com/blogger/7785/373/400/mod_13.jpg" alt="" border="0" /&gt;&lt;/a&gt;That's it. Yes, it is that easy. Build your project, switch to "Winform.pas" and implement the OnLoad event, for example. You will notice if you type the following code...&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/7785/373/1600/mod_14.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://photos1.blogger.com/blogger/7785/373/400/mod_14.png" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;that the Product has a property called "Category". Even more surprising, it is of type "Category", just as we wanted it to be.&lt;br /&gt;&lt;br /&gt;Isn't ECO just great? You just have to love it a little bit more because of this...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19137168-113616559133290817?l=delphi2006.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://delphi2006.blogspot.com/feeds/113616559133290817/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19137168&amp;postID=113616559133290817' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19137168/posts/default/113616559133290817'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19137168/posts/default/113616559133290817'/><link rel='alternate' type='text/html' href='http://delphi2006.blogspot.com/2006/01/eco-using-building-blocks.html' title='ECO: Using Building Blocks'/><author><name>Holger</name><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-19137168.post-113598787057994844</id><published>2005-12-31T01:00:00.000+01:00</published><updated>2006-10-17T20:37:53.918+02:00</updated><title type='text'>ECO: Categories And Recursive OCL</title><content type='html'>...and no custom OCL - this time. It's just &lt;b&gt;recursive&lt;/b&gt; this time. &lt;br /&gt;&lt;br /&gt;"Ouch, recursive, don't want to hear it..."  - Well, give it a shot... you'll like it, I am sure of it.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Categories&lt;/b&gt; pretty much appeared in any model given as an example how to build certain things using ECO. There was a class "Category" mostly all the time. But none of the examples really got into the details how to build a hierarchy of categories. Thus, you could use the "Category" class for &lt;b&gt;navigation in ASP.NET&lt;/b&gt;-projects e.g.&lt;br /&gt;&lt;br /&gt;Let me give you an &lt;b&gt;example&lt;/b&gt;: We want to list all the blogs of Borland employees. So my root category is "Borland". I distinguish in my example between "R&amp;D" and "DevRel". So my second level consists of those two "nodes". &lt;br /&gt;&lt;br /&gt;If you clicked on "Borland" and "DevRel" you get something like "&gt; Borland &gt; DevRel" in your navigation, so you know where you are. I heard the term &lt;b&gt;"breadcrumbs"&lt;/b&gt; for that kind of caption. &lt;br /&gt;&lt;br /&gt;As I am a very lazy programmer I want to let ECO handle most of the maintenance. I just want to specify the names and want to name a certain category a sub-category of another one (of course, with ECO you can also add children to a parent-node, i.e. vice-versa).&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/7785/373/1600/catmodel.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://photos1.blogger.com/blogger/7785/373/400/catmodel.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Summing up the model: The only non-derived attribute is "name", which identifies the category. All other attributes are read-only and maintained by ECO. ECO can determine the level of a category in the "category tree" and can also return the "full name" (aka breadcrumb) to you.  I achieve this using &lt;b&gt;recursive OCL&lt;/b&gt;.&lt;br /&gt;&lt;br /&gt;Let's have a look at the associations of Category first. There is only one association and it is directed at Category itself. Yes, it is possible, even if it looks funny at first. I changed the multiplicity, so that each Category can have multiple offspring (role: Children), but only one parent (role: Parent). You can change that of course, but this example is already complicated enough if you never handled recursion and ECO. This little trick allows us to access the name of the parent category by specifying "Parent.name".&lt;br /&gt;&lt;br /&gt;So I derived the level of a category like this:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/7785/373/1600/catlevel.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://photos1.blogger.com/blogger/7785/373/400/catlevel.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;And the breadcrumb-String is calculated using these lines of native OCL:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/7785/373/1600/catfullname.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://photos1.blogger.com/blogger/7785/373/400/catfullname.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;&lt;b&gt;Level:&lt;/b&gt;To understand it, start with one category. Its level is 0. Now think of one category with one sub category. Nothing changes for the "root", but the first child category has the level 1, as &lt;tt&gt;Parent.level + 1 = 0 + 1 = 0&lt;/tt&gt;. That's it. (Call my explanation a poor-man's-proof by induction... ;-) And yes, I know it is not complete or formally correct.)&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;b&gt;Full name:&lt;/b&gt;It works the same way as level, but instead of adding 1 to the level on our way up the tree, we add the name of the current category to the full name of the parent node.&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;Be aware that you &lt;b&gt;must have&lt;/b&gt; a starting condition/point. In this case it is that a category does not have any parent and thus is on the root level. Otherwise, you end up with an endless loop.&lt;br /&gt;&lt;br /&gt;As always, I created a tiny, simple demo application. I add the following objects to my Eco Space by code:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;b&gt;procedure&lt;/b&gt; TWinForm.TWinForm_Load(sender: System.&lt;b&gt;Object&lt;/b&gt;; &lt;br /&gt;                                        e: System.EventArgs);&lt;br /&gt;&lt;br /&gt;&lt;b&gt;var&lt;/b&gt;&lt;br /&gt;  cmain: Category;&lt;br /&gt;  csub : Category;&lt;br /&gt;  csubsub: Category;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;begin&lt;/b&gt;&lt;br /&gt;  cmain := Category.Create(EcoSpace);&lt;br /&gt;  cmain.name := &lt;font color="#9933CC"&gt;'Borland'&lt;/font&gt;;&lt;br /&gt;&lt;br /&gt;  csub := Category.Create( EcoSpace );&lt;br /&gt;  csub.name := &lt;font color="#9933CC"&gt;'R&amp;amp;D'&lt;/font&gt;;&lt;br /&gt;  csub.Parent := cmain;&lt;br /&gt;&lt;br /&gt;  csubsub := Category.Create(EcoSpace );&lt;br /&gt;  csubsub.name := &lt;font color="#9933CC"&gt;'Jonas H&amp;#246;gstr&amp;#246;m'&lt;/font&gt;;&lt;br /&gt;  csubsub.Parent := csub;&lt;br /&gt;&lt;br /&gt;  csubsub := Category.Create(EcoSpace );&lt;br /&gt;  csubsub.name := &lt;font color="#9933CC"&gt;'Jesper H&amp;#246;gstr&amp;#246;m'&lt;/font&gt;;&lt;br /&gt;  csubsub.Parent := csub;&lt;br /&gt;&lt;br /&gt;  csub := Category.Create( EcoSpace );&lt;br /&gt;  csub.name := &lt;font color="#9933CC"&gt;'DevRel'&lt;/font&gt;;&lt;br /&gt;  csub.Parent := cmain;&lt;br /&gt;  &lt;br /&gt;  csubsub := Category.Create(EcoSpace );&lt;br /&gt;  csubsub.name := &lt;font color="#9933CC"&gt;'John Kaster'&lt;/font&gt;;&lt;br /&gt;  csubsub.Parent := csub;&lt;br /&gt;&lt;b&gt;end&lt;/b&gt;;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Finally, I built a Winform with a simple grid that shows all the properties of the instances of the class "Category":&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/7785/373/1600/gridlevels.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://photos1.blogger.com/blogger/7785/373/400/gridlevels.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;One can easily see the possibilities this opens for web site development as you can build your navigation this way. Furthermore, you can include the "Category" class in lots of models. Take note of the fact that this approach is completely "pluggable" into any other model without using any functionality. You also never have to reinvent the wheel again for objects that have these characteristics.&lt;br /&gt;&lt;br /&gt;Have a Happy New Year everybody!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19137168-113598787057994844?l=delphi2006.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://delphi2006.blogspot.com/feeds/113598787057994844/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19137168&amp;postID=113598787057994844' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19137168/posts/default/113598787057994844'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19137168/posts/default/113598787057994844'/><link rel='alternate' type='text/html' href='http://delphi2006.blogspot.com/2005/12/eco-categories-and-recursive-ocl.html' title='ECO: Categories And Recursive OCL'/><author><name>Holger</name><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-19137168.post-113598654436018177</id><published>2005-12-31T00:46:00.000+01:00</published><updated>2006-10-17T20:37:53.855+02:00</updated><title type='text'>Layout changes</title><content type='html'>It's been pushed away by me long enough. I had to change from a coloured background to a white background, because of all the screenshots I post. It just did not look nice, with the white borders around the images instead of the orange background. &lt;br /&gt;&lt;br /&gt;I hope you like it as I think the text is also more readable, because of a clearer, black font on a white background.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19137168-113598654436018177?l=delphi2006.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://delphi2006.blogspot.com/feeds/113598654436018177/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19137168&amp;postID=113598654436018177' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19137168/posts/default/113598654436018177'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19137168/posts/default/113598654436018177'/><link rel='alternate' type='text/html' href='http://delphi2006.blogspot.com/2005/12/layout-changes.html' title='Layout changes'/><author><name>Holger</name><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-19137168.post-113568232358055693</id><published>2005-12-27T12:17:00.000+01:00</published><updated>2006-10-17T20:37:53.795+02:00</updated><title type='text'>IntraWeb 8.0 released</title><content type='html'>As I hinted in an earlier post, the Delphi Community gets a delayed Christmas Present. IntraWeb 8.0 has been released! Read all about it &lt;a href="http://tinyurl.com/cty5e"&gt;here&lt;/a&gt; on Olaf's Blog.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19137168-113568232358055693?l=delphi2006.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://delphi2006.blogspot.com/feeds/113568232358055693/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19137168&amp;postID=113568232358055693' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19137168/posts/default/113568232358055693'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19137168/posts/default/113568232358055693'/><link rel='alternate' type='text/html' href='http://delphi2006.blogspot.com/2005/12/intraweb-80-released.html' title='IntraWeb 8.0 released'/><author><name>Holger</name><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-19137168.post-113556249481617938</id><published>2005-12-26T02:53:00.000+01:00</published><updated>2006-10-17T20:37:53.731+02:00</updated><title type='text'>ECO: Custom Operations, Investments and Net Present Value</title><content type='html'>Yes, no typo. ECO in the same context as math and finances. If you have worked with Excel, you might have seen the financial formulae. ECO is missing those.&lt;br /&gt;&lt;br /&gt;So I extended ECO III a little bit and can check if an investment should be made or declined &lt;b&gt;without a single line of code&lt;/b&gt;. My OCL extentions also give you the ability to calculate the optimal interest rate your bank has to offer to you, so that you can proceed with your investment (&lt;span style="font-weight:bold;"&gt;change:&lt;/span&gt; called the internal rate of return, thanks Olaf for the translation assistance). Everything is based on the theory of the "net present value" (Wikipedia Germany has a detailed article on that e.g.).&lt;br /&gt;&lt;br /&gt;Christmas triggers funny things sometimes, for me it was going back 4 years and reliving the worst exam I ever had to take: Monetary Policy. That's all I am going to say about that. At least I can implement the stuff as an ECO Custom OCL Operation, eh? :-)&lt;br /&gt;&lt;br /&gt;I used my other extentions of the OCL language as well. Basically, I am building a huge library with custom operations. Right now, there is no real structure, which categories I am going to cover in the library. I simply implemented what came to mind and made sense to me.&lt;br /&gt;&lt;br /&gt;Back to the investment application.&lt;br /&gt;&lt;br /&gt;Let me show you the simple model. This model could be one building block of a huge financial application. Yes, it's only for demo purposes and it might be enhanced a lot. But it shows the power you have, when building custom operations in ECO. Remember: not a single line of code for the Winforms application that lets the user plan his or her investments needs to be written!&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/7785/373/1600/nvp_model.0.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://photos1.blogger.com/blogger/7785/373/400/nvp_model.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;we have one class for investments&lt;br /&gt;&lt;li&gt;another for payments for the investments&lt;br /&gt;&lt;li&gt;the idea is to create one "Payment" for every period that is to be considered in the calculation&lt;br /&gt;&lt;li&gt;the number of payments determines the total number of periods, we can consider this the asset depreciation range e.g.&lt;br /&gt;&lt;li&gt;currencies are not modelled&lt;br /&gt;&lt;li&gt;a "Payment" simply has an amount. Think of it as a yearly payment you get because of the initital investment to get started&lt;br /&gt;&lt;li&gt;an investment has a name, an inital amount that has to be paid for the investment, an interest rate and "sellPrice" that stands for the money that will be earned for the investment being sold after the usage&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;I will continue by showing you the main form of the application. Remember these things: If the net present value is positive, go ahead. If negative, continue planning. The optimal interest rate can be calculated if you solve the equation for "Net Present Value equals 0". &lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/7785/373/1600/npv1.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://photos1.blogger.com/blogger/7785/373/400/npv1.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;What you see is one investment for a new computer. I bought a computer for 2000 bucks, which I sold after 4 years for 1000 bucks and my bank's interest rate is 8% over that period of time. Can I realize it? Yes, as the "net present value" is positive. Hmmm. What would be optimal? An interest rate of &lt;tt&gt;0,098051&lt;/tt&gt;, because the NPV is almost 0 at that interest rate. A note: I used a regula falsi approximation to solve the equation.&lt;br /&gt;&lt;br /&gt;If you're not amazed by this... I sure am. Just think of the possibilities. I can easily build different scenarios with this application, compare them and consider all the consequences. Again: no code.&lt;br /&gt;&lt;br /&gt;So, how does the OCL look? Not very complex. Here's a screenshot that shows how to calculate the optimal interest rate:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/7785/373/1600/npv2.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://photos1.blogger.com/blogger/7785/373/400/npv2.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;What do you think about custom operations now? &lt;br /&gt;&lt;br /&gt;Furthermore, if anybody is interested in these extentions, let me know by commenting here. Suggestions are also welcome, of course.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19137168-113556249481617938?l=delphi2006.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://delphi2006.blogspot.com/feeds/113556249481617938/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19137168&amp;postID=113556249481617938' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19137168/posts/default/113556249481617938'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19137168/posts/default/113556249481617938'/><link rel='alternate' type='text/html' href='http://delphi2006.blogspot.com/2005/12/eco-custom-operations-investments-and.html' title='ECO: Custom Operations, Investments and Net Present Value'/><author><name>Holger</name><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>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19137168.post-113552125295901024</id><published>2005-12-25T15:26:00.000+01:00</published><updated>2006-10-17T20:37:53.664+02:00</updated><title type='text'>ECO: Custom Fun</title><content type='html'>Design-time and run-time: Both working fine. This is the first time, I've tried to build my own operations. As you can see in the following screenshot, my additional OCL methods are getting more complex by the minute. At first I used no parameters for the methods "getAgeInYears" and "getAgeInDays". Both methods calculate the current (in relation to today) age for a person's birthday. &lt;br /&gt;&lt;br /&gt;However, the method "getDiffToDate" (which I might have to rename as the name is not that good...) has two additional parameters. If you e.g. want to get the difference of two dates in days you'd write: &lt;ul&gt;&lt;li&gt;&lt;tt&gt;myDate.getDiffToDate( otherDate, 'd' )&lt;/tt&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;The 'd' specifies days. You could also use 'm' or 'y'. I think it is pretty obvious which result that would yield. 'm' will return the difference in months and 'y' will do the same in number of years.&lt;br /&gt;&lt;br /&gt;Now, the possibilities with ECO are really infinite. Just consider that you can build customized OCL operations for your customers. It really improves the structure of your code.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/7785/373/1600/newops.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://photos1.blogger.com/blogger/7785/373/400/newops.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;(Thanks to my friend Jim for his help to improve grammar, structure and spelling in my posts!)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19137168-113552125295901024?l=delphi2006.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://delphi2006.blogspot.com/feeds/113552125295901024/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19137168&amp;postID=113552125295901024' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19137168/posts/default/113552125295901024'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19137168/posts/default/113552125295901024'/><link rel='alternate' type='text/html' href='http://delphi2006.blogspot.com/2005/12/eco-custom-fun.html' title='ECO: Custom Fun'/><author><name>Holger</name><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-19137168.post-113551610748531282</id><published>2005-12-25T13:52:00.000+01:00</published><updated>2006-10-17T20:37:53.592+02:00</updated><title type='text'>ECO: Custom OCL Operations</title><content type='html'>Daniel Polistchuck posted some really interesting basics about writing custom OCL operations for ECO III. This got me started writing some really basic Date/Time-stuff. It is really easy to do, especially when you have a nice code template handy ;-)&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;create a new C# class file&lt;br /&gt;&lt;li&gt;select all and press &lt;tt&gt;Del&lt;/tt&gt;&lt;br /&gt;&lt;li&gt;type "newoclop" and press &lt;tt&gt;TAB&lt;/tt&gt;&lt;br /&gt;&lt;li&gt;fill in the gaps&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href ="http://tinyurl.com/86492"&gt;Download&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Right now I am writing a template that modifies your ECO Space, so that you can install these operations during design-time and run-time with ease.&lt;br /&gt;&lt;br /&gt;Stay tuned.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/7785/373/1600/template_action.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://photos1.blogger.com/blogger/7785/373/400/template_action.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19137168-113551610748531282?l=delphi2006.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://delphi2006.blogspot.com/feeds/113551610748531282/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19137168&amp;postID=113551610748531282' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19137168/posts/default/113551610748531282'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19137168/posts/default/113551610748531282'/><link rel='alternate' type='text/html' href='http://delphi2006.blogspot.com/2005/12/eco-custom-ocl-operations.html' title='ECO: Custom OCL Operations'/><author><name>Holger</name><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-19137168.post-113537140058011450</id><published>2005-12-23T21:48:00.000+01:00</published><updated>2006-10-17T20:37:53.519+02:00</updated><title type='text'>StarTeam: Getting started...</title><content type='html'>I want to save everybody some time, who wants to install StarTeam for the first time. I could not find one thing in the manual and I had to google the newsgroups in order to find an answer.&lt;br /&gt;&lt;br /&gt;Let's say, you created a new configuration inside your server, everything is set up and you start the server for the very first time. &lt;br /&gt;&lt;br /&gt;Well, you need to add users, so they can log in. &lt;br /&gt;&lt;br /&gt;Ok, so there is Accounts / User Manager. Click it... User name? Password? Did I set up any users? Of course not, but there is something like "root" in StarTeam as well.&lt;br /&gt;&lt;br /&gt;Use&lt;ul&gt;&lt;li&gt;Username: &lt;tt&gt;Administrator&lt;/tt&gt;&lt;/li&gt;&lt;li&gt;Password: &lt;tt&gt;Administrator&lt;/tt&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;and you will be logged in. I spent so much time browsing the manuals for this, but I simply could not find it.&lt;br /&gt;&lt;br /&gt;Thus, to safe you some time I thought this was a nice post.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19137168-113537140058011450?l=delphi2006.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://delphi2006.blogspot.com/feeds/113537140058011450/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19137168&amp;postID=113537140058011450' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19137168/posts/default/113537140058011450'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19137168/posts/default/113537140058011450'/><link rel='alternate' type='text/html' href='http://delphi2006.blogspot.com/2005/12/starteam-getting-started.html' title='StarTeam: Getting started...'/><author><name>Holger</name><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-19137168.post-113537074606878308</id><published>2005-12-23T21:44:00.000+01:00</published><updated>2006-10-17T20:37:53.453+02:00</updated><title type='text'>Merry Christmas!</title><content type='html'>Yes, it's that time of the year already!&lt;br /&gt;&lt;br /&gt;Merry Christmas everybody!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19137168-113537074606878308?l=delphi2006.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://delphi2006.blogspot.com/feeds/113537074606878308/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19137168&amp;postID=113537074606878308' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19137168/posts/default/113537074606878308'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19137168/posts/default/113537074606878308'/><link rel='alternate' type='text/html' href='http://delphi2006.blogspot.com/2005/12/merry-christmas.html' title='Merry Christmas!'/><author><name>Holger</name><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-19137168.post-113537068369562726</id><published>2005-12-23T21:29:00.000+01:00</published><updated>2006-10-17T20:37:53.391+02:00</updated><title type='text'>StarTeam and MS SQL Express 2005</title><content type='html'>A couple of days ago, I finally tried to set up Star Team 2005 R2. This version is included in Delphi 2006 Enterprise and Architect. At University, I was taught how to install and use CVS. &lt;br /&gt;&lt;br /&gt;The first striking difference between CVS and StarTeam is that CVS does not use a database to store information at all. StarTeam (ST) uses in addition to the repository on the harddisk also one that is persisted in a SQL database. Borland deploys a Developer edition of MS SQL Server 2000 with Delphi (I am not sure which SKUs actually contain it, but I would guess Enterprise and Architect) as well, so you are ready to go if you bought D2006 Enterprise or Architect. However, I always like to experiment a bit and also wanted to check out Microsoft's new MS SQL Server. As I just wanted to fiddle around, I simply downloaded the Express edition, which is free right now. &lt;br /&gt;&lt;br /&gt;Thus, before installing ST, I installed MS SQL Server 2005 Express. Of course, I needed to install .NET 2.0 for that. Afterwards I installed and configured ST. Reading the manuals (esp. the "Getting Started" one) before/while doing this is very much needed as you need to configure a lot of settings. &lt;br /&gt;&lt;br /&gt;The result of my little experiment: It works perfectly. ST can create and maintain the databases in SQL 2005 Express without any problems. I have not had any issues at all using it. &lt;br /&gt;&lt;br /&gt;Be aware that this is just my experience on a &lt;b&gt;single&lt;/b&gt; system. I have no idea about side-effects that might occur when using ST with SQL 2005 with different setups esp. in companies where lots of people access the server at the same time. But I do think, as ST uses SQL statements to access the database, there should not be any issues. The only problem I anticipated was that ST simply might not "see" the new server and I might not be able to connect to it. &lt;br /&gt;&lt;br /&gt;However, it was no problem at all.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19137168-113537068369562726?l=delphi2006.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://delphi2006.blogspot.com/feeds/113537068369562726/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19137168&amp;postID=113537068369562726' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19137168/posts/default/113537068369562726'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19137168/posts/default/113537068369562726'/><link rel='alternate' type='text/html' href='http://delphi2006.blogspot.com/2005/12/starteam-and-ms-sql-express-2005.html' title='StarTeam and MS SQL Express 2005'/><author><name>Holger</name><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-19137168.post-113443882835134063</id><published>2005-12-13T02:48:00.000+01:00</published><updated>2006-10-17T20:37:53.329+02:00</updated><title type='text'>Indy: IdHTTP</title><content type='html'>Just a quick note that I'll be publishing a TIdHTTP threading demo shortly. A user was asking in the public newsgroups how it was possible not to lock down the application by requesting ("GET") a document from the net.&lt;br /&gt;&lt;br /&gt;Here's a screenshot to tease you:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/7785/373/1600/idhttp.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://photos1.blogger.com/blogger/7785/373/400/idhttp.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The application is written in VCL.NET and uses a 3rd Party Component to display the HTML markup. The version I'll publish will use "Delphi Standard Components" instead, of course.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19137168-113443882835134063?l=delphi2006.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://delphi2006.blogspot.com/feeds/113443882835134063/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19137168&amp;postID=113443882835134063' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19137168/posts/default/113443882835134063'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19137168/posts/default/113443882835134063'/><link rel='alternate' type='text/html' href='http://delphi2006.blogspot.com/2005/12/indy-idhttp.html' title='Indy: IdHTTP'/><author><name>Holger</name><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-19137168.post-113388564640742864</id><published>2005-12-06T16:39:00.000+01:00</published><updated>2006-10-17T20:37:53.266+02:00</updated><title type='text'>IntraWeb: new version 8.0 coming soon</title><content type='html'>I am a member of TeamZed, a group from &lt;a href="http://www.atozed.com/TeamZed.iwp"&gt;Atozed &lt;/a&gt; (pronounce: A-to-Zed) which primarily has  a look at upcoming software releases. Thus, I had the opportunity to have a look at the upcoming release of IntraWeb. It's going to be version number 8.0 and I think it will be released pretty soon, as the core development team is only fixing tiny setup issues right now.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.atozed.com"&gt;Atozed Software&lt;/a&gt; already published some charts about the performance of the next release, which is going to be a huge improvement compared to earlier versions. &lt;a href="http://tinyurl.com/czh9t"&gt;You might have a look at them yourself&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;I simply recompiled an IntraWeb Application, which I built using Delphi 2005 and I have to say that the performance really improved quite a bit, as you can feel a difference using the application without actually doing any performance measurements. I also noticed that the amount of data being transferred has been reduced quite a bit (almost 50% in my case).&lt;br /&gt;&lt;br /&gt;So, if you have version 7.2.41 or even older, be sure to have a look at the new version!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19137168-113388564640742864?l=delphi2006.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://delphi2006.blogspot.com/feeds/113388564640742864/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19137168&amp;postID=113388564640742864' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19137168/posts/default/113388564640742864'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19137168/posts/default/113388564640742864'/><link rel='alternate' type='text/html' href='http://delphi2006.blogspot.com/2005/12/intraweb-new-version-80-coming-soon.html' title='IntraWeb: new version 8.0 coming soon'/><author><name>Holger</name><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-19137168.post-113381001418726538</id><published>2005-12-05T20:11:00.000+01:00</published><updated>2006-10-17T20:37:53.200+02:00</updated><title type='text'>German ECO Book online</title><content type='html'>While I was browsing through the public newsgroups I noticed &lt;tt&gt;http://www.ecospace.de&lt;/tt&gt; being mentioned as a new portal for the German ECO Community. &lt;br /&gt;&lt;br /&gt;I browsed there and guess what: you can download an ECO book about ECO II for free!&lt;br /&gt;&lt;br /&gt;Considering that it is on a German page, you might have already guessed it is written in German. As I can read German just fine, I read a couple of pages and think it is really good. &lt;br /&gt;&lt;br /&gt;Furthermore, I read reports from other German users on the net that they are fascinated with it and it helped them solve a lot of issues.&lt;br /&gt;&lt;br /&gt;Thanks for the good work, Alois!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19137168-113381001418726538?l=delphi2006.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://delphi2006.blogspot.com/feeds/113381001418726538/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19137168&amp;postID=113381001418726538' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19137168/posts/default/113381001418726538'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19137168/posts/default/113381001418726538'/><link rel='alternate' type='text/html' href='http://delphi2006.blogspot.com/2005/12/german-eco-book-online.html' title='German ECO Book online'/><author><name>Holger</name><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>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19137168.post-113380846513869767</id><published>2005-12-05T19:45:00.000+01:00</published><updated>2006-10-17T20:37:53.134+02:00</updated><title type='text'>Blogging and Delphi source</title><content type='html'>As I have to remove the reference to the author of the code conversion tool I use to convert Delphi source into HTML, because my style sheet is not compatible with the tags being used, I hereby state that I use "HyperDelphi", which you can find here:&lt;br /&gt;&lt;center&gt;&lt;a href="http://tinyurl.com/9djqz"&gt;http://tinyurl.com/9djqz&lt;/a&gt;&lt;/center&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19137168-113380846513869767?l=delphi2006.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://delphi2006.blogspot.com/feeds/113380846513869767/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19137168&amp;postID=113380846513869767' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19137168/posts/default/113380846513869767'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19137168/posts/default/113380846513869767'/><link rel='alternate' type='text/html' href='http://delphi2006.blogspot.com/2005/12/blogging-and-delphi-source.html' title='Blogging and Delphi source'/><author><name>Holger</name><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-19137168.post-113380733380931725</id><published>2005-12-05T19:12:00.000+01:00</published><updated>2006-10-17T20:37:53.071+02:00</updated><title type='text'>ECO III: CurrencyManagerHandle</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/7785/373/1600/cm2.png"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://photos1.blogger.com/blogger/7785/373/400/cm2.png" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;There is a nice difference between ECO II and ECO III that is not visible, but very helpful when developing ECO Applications.&lt;br /&gt;&lt;br /&gt;Let's say you have a CurrencyManagerHandle called "cmTeam" then  you get the "selected" element in a grid, which is of the class type "Team" (if a DataGrid is the BindingContext) using:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;   aTeam := Team( cmTeam.Element.AsObject );&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Problem: What happens if nothing is selected?&lt;br /&gt;Solution: check if &lt;code&gt;cmTeam.Element.AsObject&lt;/code&gt; is not equal to &lt;code&gt;nil&lt;/code&gt;!&lt;br /&gt;&lt;br /&gt;Be careful as it was more complicated in ECO II, this will only suffice in ECO III!&lt;br /&gt;&lt;br /&gt;So to get an object of class "Team" of a list of teams in a grid you will have to use:&lt;br /&gt;&lt;FONT COLOR="black"&gt;&lt;br /&gt;&lt;PRE&gt;&lt;FONT COLOR="black"&gt;&lt;B&gt;if&lt;/B&gt;&lt;/FONT&gt; ( Assigned( cmTeam.Element.AsObject ) ) &lt;FONT COLOR="black"&gt;&lt;B&gt;then&lt;/B&gt;&lt;/FONT&gt;&lt;br /&gt;&lt;FONT COLOR="black"&gt;&lt;B&gt;begin&lt;/B&gt;&lt;/FONT&gt;&lt;br /&gt; myTeam := Team(  cmTeam.Element.AsObject );&lt;br /&gt; ....&lt;br /&gt;&lt;FONT COLOR="black"&gt;&lt;B&gt;end&lt;/B&gt;&lt;/FONT&gt;&lt;br /&gt;&lt;FONT COLOR="black"&gt;&lt;B&gt;else&lt;/B&gt;&lt;/FONT&gt;&lt;br /&gt;  &lt;FONT COLOR="green"&gt;&lt;I&gt;// throw exception....&lt;/I&gt;&lt;/FONT&gt;&lt;br /&gt;  ;&lt;br /&gt;&lt;br /&gt;&lt;/PRE&gt;&lt;/FONT&gt;&lt;br /&gt;&lt;br /&gt;For the record: In ECO II you have to check for &lt;tt&gt;cmTeam.Element&lt;/tt&gt; not equal to "nil" first.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19137168-113380733380931725?l=delphi2006.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://delphi2006.blogspot.com/feeds/113380733380931725/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19137168&amp;postID=113380733380931725' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19137168/posts/default/113380733380931725'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19137168/posts/default/113380733380931725'/><link rel='alternate' type='text/html' href='http://delphi2006.blogspot.com/2005/12/eco-iii-currencymanagerhandle.html' title='ECO III: CurrencyManagerHandle'/><author><name>Holger</name><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-19137168.post-113379520628949938</id><published>2005-12-05T15:47:00.000+01:00</published><updated>2006-10-17T20:37:52.994+02:00</updated><title type='text'>ECO and Databases</title><content type='html'>Talking to other developers I often find out that ECO is marked an "object persistence tool" which makes it possible to store objects in databases. I have been unable so far to summarize the features of ECO in one sentence, but it is definitely not a framework that is designed to make it easier to store objects of modeled classes in a database.&lt;br /&gt;&lt;br /&gt;The reason for that is that a lot of people , like myself, automatically think of databases, tables, relations and views when working with ECO. It's not easy to wipe that from memory, but when getting started with ECO, you simply have to forget that you will persist it inside of a database later on. Let ECO take care of that. Your task, in order to reach maximum success using ECO, is to &lt;i&gt;model&lt;/i&gt; using UML. I wrote the keyword in italics. As Jan Norden put it perfectly: The Model is The System!&lt;br /&gt;&lt;br /&gt;Let's finish off this blog post with an example. If you persist a blog entry in a database, you'd think of the attributes that make up a blog entry. So you need&lt;br /&gt;&lt;ul&gt;&lt;li&gt;an author&lt;/li&gt;&lt;li&gt;a creation date&lt;/li&gt;&lt;li&gt;a title&lt;/li&gt;&lt;li&gt;and content.&lt;/li&gt;&lt;/ul&gt;Ok. So we end up with a class called "BlogEntry" in ECO with four attributes named "author", "created", "title" and "body" (I learned that database designers always call the content "body" :-) ).&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/7785/373/1600/blogentrydb.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://photos1.blogger.com/blogger/7785/373/320/blogentrydb.png" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Is this a proper conceptual ECO model? Yes, it is proper. But it limits your abilities. How would you list blog entries of a certain author? How would you list all blog entries of one day? "OCL expression using select" you say. Correct, but not that handy. ECO can do it easier. Let me show you this model:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/7785/373/1600/blogmodel2.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://photos1.blogger.com/blogger/7785/373/320/blogmodel2.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Now you can list all different authors easily and what is even more important: you can change the number of possible authors with &lt;i&gt;one&lt;/i&gt; keystroke in the model! Furthermore, rename "CreationDate"  into "DateHistory" and thus make it possible to associate many dates with one blog entry. This way you can list all dates when the blog entry was modified.&lt;br /&gt;&lt;br /&gt;Would it be possible to transfer this model to a database easily? No. But that's what we have ECO for... It's there to persist objects into databases after all, isn't it? *grin*&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19137168-113379520628949938?l=delphi2006.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://delphi2006.blogspot.com/feeds/113379520628949938/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19137168&amp;postID=113379520628949938' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19137168/posts/default/113379520628949938'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19137168/posts/default/113379520628949938'/><link rel='alternate' type='text/html' href='http://delphi2006.blogspot.com/2005/12/eco-and-databases.html' title='ECO and Databases'/><author><name>Holger</name><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>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19137168.post-113353277068785060</id><published>2005-12-02T15:04:00.000+01:00</published><updated>2006-10-17T20:37:52.934+02:00</updated><title type='text'>Coding "Standards" - The Summary</title><content type='html'>Firstly, let me tell you that I was positively surprised that I got so many comments on that subject. But I should clarify one thing: I was surprised not that there were coding standards for Delphi in general, but about the fact that Borland has an official document on BDN. &lt;br /&gt;&lt;br /&gt;What I learned because of all the comments is that this document can be found in the help, which comes with Delphi, as well. That surprised me even more, as I never noticed it.... using Delphi since version 2. Furthermore, I was flamed by my fellow &lt;span style="font-weight:bold;"&gt;Indy Core&lt;/span&gt; team-mates that I forgot to mention that Indy - of course - has its own coding standard as well. Have a look at it &lt;a href="http://www.indyproject.org/Sockets/Teams/Core/Docs/Standards/SourceCode.iwp"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Finally, I'd like to stress that Delphi 2006 really helps you to implement a certain standard using &lt;span style="font-weight:bold;"&gt;Code Templates&lt;/span&gt;. Depending on how you modify the templates for basic constructs like "if" or "for" you can make sure that you get the right level of indentation or that the cursor is positioned right below the "if" to type in the begin... Of course, you can also define a complete if-construct that already has "begin" and "end;", but if you implement code like me, you do not always use a "begin" and "end"-block. This is e.g. a rule in the Indy Coding Standards to always use "begin" and "end". Be it needed or not.&lt;br /&gt;&lt;br /&gt;I guess, I could make up a whole blog about different coding standards and related issues.&lt;br /&gt;&lt;br /&gt;Again, thanks for all the feedback.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19137168-113353277068785060?l=delphi2006.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://delphi2006.blogspot.com/feeds/113353277068785060/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19137168&amp;postID=113353277068785060' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19137168/posts/default/113353277068785060'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19137168/posts/default/113353277068785060'/><link rel='alternate' type='text/html' href='http://delphi2006.blogspot.com/2005/12/coding-standards-summary.html' title='Coding &quot;Standards&quot; - The Summary'/><author><name>Holger</name><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-19137168.post-113346866177076937</id><published>2005-12-01T21:19:00.000+01:00</published><updated>2006-10-17T20:37:52.872+02:00</updated><title type='text'>ECO: Associations</title><content type='html'>If you've ever designed an ECO app, you might have been annoyed how clumsy it was to change the multiplicity between classes. With BDS 2006 it's become so easy. Simply click on the multiplicity and it is being focused:&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/7785/373/1600/together2.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://photos1.blogger.com/blogger/7785/373/400/together2.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;And finally, press "F2" to go into edit-mode and change "0..1" into "0..*" e.g. to get a 1-to-many relation:&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/7785/373/1600/together_editm.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://photos1.blogger.com/blogger/7785/373/400/together_editm.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;That's easy, isn't it?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19137168-113346866177076937?l=delphi2006.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://delphi2006.blogspot.com/feeds/113346866177076937/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19137168&amp;postID=113346866177076937' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19137168/posts/default/113346866177076937'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19137168/posts/default/113346866177076937'/><link rel='alternate' type='text/html' href='http://delphi2006.blogspot.com/2005/12/eco-associations.html' title='ECO: Associations'/><author><name>Holger</name><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-19137168.post-113346822429195496</id><published>2005-12-01T21:10:00.000+01:00</published><updated>2006-10-17T20:37:52.810+02:00</updated><title type='text'>ECO: How to add State Machines</title><content type='html'>I was really blown away, seeing all the new Together stuff in BDS 2006 from an ECO perspective. Firstly, all the new things you can add, which are mostly because of the addition of State Machines.&lt;br /&gt;&lt;br /&gt;Adding a State Machine is really simple. Right-click a class and choose "Add / ECO State Machine".&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/7785/373/1600/together1.0.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://photos1.blogger.com/blogger/7785/373/400/together1.0.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Do not right click the model surface as a State Machine determines the state of an attribute inside of a class.&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;Notice that if you add a State Machine, you will also end up with a State Attribute in your class automatically, which is automatically linked to that very State Machine, which you added before:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/7785/373/1600/stateattr.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://photos1.blogger.com/blogger/7785/373/400/stateattr.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;It is being named "State_x" by default and can be renamed, of course. I plan to post a basic "demo" of State Machines shortly.&lt;br /&gt;&lt;br /&gt;Let me know if you're interested!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19137168-113346822429195496?l=delphi2006.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://delphi2006.blogspot.com/feeds/113346822429195496/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19137168&amp;postID=113346822429195496' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19137168/posts/default/113346822429195496'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19137168/posts/default/113346822429195496'/><link rel='alternate' type='text/html' href='http://delphi2006.blogspot.com/2005/12/eco-how-to-add-state-machines.html' title='ECO: How to add State Machines'/><author><name>Holger</name><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-19137168.post-113346746064304196</id><published>2005-12-01T20:51:00.000+01:00</published><updated>2006-10-17T20:37:52.745+02:00</updated><title type='text'>ECO: Where are CoreClasses?</title><content type='html'>If you create a new ECO project, which personality or platform you might choose does not matter, the Model View looks different in BDS 2006 compared to D2005. The default ECO Package is no longer named "CoreClasses". &lt;br /&gt;&lt;br /&gt;The far more intuitive name "Package_1" is being used. Furthermore, I think it's better classified as a "package" this way, as you have your final classes in separate or one source file(s).&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/7785/373/1600/modelview.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;" src="http://photos1.blogger.com/blogger/7785/373/400/modelview.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Basically, you can safely double click on "Package_1" instead of "CoreClasses" in order to open your first ECO model.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19137168-113346746064304196?l=delphi2006.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://delphi2006.blogspot.com/feeds/113346746064304196/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19137168&amp;postID=113346746064304196' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19137168/posts/default/113346746064304196'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19137168/posts/default/113346746064304196'/><link rel='alternate' type='text/html' href='http://delphi2006.blogspot.com/2005/12/eco-where-are-coreclasses.html' title='ECO: Where are CoreClasses?'/><author><name>Holger</name><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>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19137168.post-113334864356906235</id><published>2005-11-30T11:57:00.000+01:00</published><updated>2006-10-17T20:37:52.684+02:00</updated><title type='text'>Delphi - Coding Standard?</title><content type='html'>At the end of June, during the publication of my first BDNtv presentation I got some feedback regarding my coding style used in the first episode. I was totally surprised that there was an official document that dealt with that topic. So, if you're interested: &lt;a href="http://community.borland.com/soapbox/techvoyage/article/1,1795,10280,00.html"&gt;Object Pascal Style Guide&lt;/a&gt;. &lt;br /&gt;&lt;br /&gt;I have to admit that I still only use about 50% of that document for my personal development stuff - but that's pretty good, considering that I never was taught any Delphi coding standards before ;-) In school we learned:&lt;br /&gt;&lt;code&gt;if ... then begin &lt;br&gt;   ....&lt;br&gt;end;&lt;/code&gt;&lt;br /&gt;A lot of people did not like it and it is very visible. Thus, that was the first thing I changed.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19137168-113334864356906235?l=delphi2006.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://delphi2006.blogspot.com/feeds/113334864356906235/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19137168&amp;postID=113334864356906235' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19137168/posts/default/113334864356906235'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19137168/posts/default/113334864356906235'/><link rel='alternate' type='text/html' href='http://delphi2006.blogspot.com/2005/11/delphi-coding-standard.html' title='Delphi - Coding Standard?'/><author><name>Holger</name><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-19137168.post-113323101154326423</id><published>2005-11-29T03:20:00.000+01:00</published><updated>2006-10-17T20:37:52.622+02:00</updated><title type='text'>DevCon 2005</title><content type='html'>Well, if you were unable to fly to San Francisco in order to attend the Borland DevCon 2005 at the beginning of this month, Borland Developer Network really offers some attractive (nah, not that kind of attractive ;-)) content. &lt;br /&gt;&lt;br /&gt;I just finished watching &lt;a href="http://bdn.borland.com/article/0,1410,33406,00.html"&gt;this &lt;/a&gt;and it kept me up until 3:30 am. Thus, I have to say that it was pretty interesting to see all those new features. Major emphasis is being put on the designer and code editor enhancements made for Borland Developer Studio 2006. Delphi and C++ are being presented.&lt;br /&gt;&lt;br /&gt;And no, I did not forget that I promised to tell you about my favourite Delphi book... will do later...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19137168-113323101154326423?l=delphi2006.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://delphi2006.blogspot.com/feeds/113323101154326423/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19137168&amp;postID=113323101154326423' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19137168/posts/default/113323101154326423'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19137168/posts/default/113323101154326423'/><link rel='alternate' type='text/html' href='http://delphi2006.blogspot.com/2005/11/devcon-2005.html' title='DevCon 2005'/><author><name>Holger</name><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-19137168.post-113304367802257358</id><published>2005-11-26T23:14:00.000+01:00</published><updated>2006-10-17T20:37:52.554+02:00</updated><title type='text'>Getting in touch with .NET</title><content type='html'>&lt;p&gt;After yesterday's confusion, I am going to blog about something safe, I cannot go wrong with - at least technically.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;img src="http://images.amazon.com/images/P/0735614229.01._AA240_SCLZZZZZZZ_.jpg" align="left"&gt;&lt;a href="http://tinyurl.com/bgfyq"&gt;Andreano Lanusse&lt;/a&gt; blogged about Xavier's Delphi Book. An excellent choice, but I disagree with him on the fact that it is 'the' book to learn about .NET. In my opinion that book has been written by Mr. .NET himself, Mr. &lt;a href="http://tinyurl.com/dcf5o"&gt;Jeffrey Richter&lt;/a&gt;. For me that was the start into .NET development and also to get a feel for C#. If you're looking for a book what Object-oriented programming is, this is not the way to go, of course. It also does not focus on Delphi, but it features all the important namespaces of .NET, i.e. it explains collections, file-access and also goes into detail about reflection. Critics also call the chapter about the .NET Garbage Collection in this book the best ever written. I have to say that I agree with them. There's no way to explain it any easier.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Tomorrow I'll tell you about my fav Delphi book&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19137168-113304367802257358?l=delphi2006.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://delphi2006.blogspot.com/feeds/113304367802257358/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19137168&amp;postID=113304367802257358' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19137168/posts/default/113304367802257358'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19137168/posts/default/113304367802257358'/><link rel='alternate' type='text/html' href='http://delphi2006.blogspot.com/2005/11/getting-in-touch-with-net.html' title='Getting in touch with .NET'/><author><name>Holger</name><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-19137168.post-113296041938605288</id><published>2005-11-26T00:12:00.000+01:00</published><updated>2006-10-17T20:37:52.493+02:00</updated><title type='text'>PopupMenu Part II</title><content type='html'>Well, nobody is perfect, I guess. Ryan McGinty just brought up a far shorter solution to the problem, which might be sufficient for the most cases.&lt;br /&gt;&lt;br /&gt;Simply use &lt;br /&gt;&lt;tt&gt;property PopupComponent: TComponent read FPopupComponent write FPopupComponent;&lt;/tt&gt; of &lt;tt&gt;TPopupMenu&lt;/tt&gt;.&lt;br /&gt;&lt;br /&gt;Thanks Ryan!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19137168-113296041938605288?l=delphi2006.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://delphi2006.blogspot.com/feeds/113296041938605288/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19137168&amp;postID=113296041938605288' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19137168/posts/default/113296041938605288'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19137168/posts/default/113296041938605288'/><link rel='alternate' type='text/html' href='http://delphi2006.blogspot.com/2005/11/popupmenu-part-ii.html' title='PopupMenu Part II'/><author><name>Holger</name><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-19137168.post-113294405763484279</id><published>2005-11-25T19:30:00.000+01:00</published><updated>2006-10-17T20:37:52.430+02:00</updated><title type='text'>What component triggered the popup menu?</title><content type='html'>I hope the headline makes it clear, but I will give additional details first. Let's assume you have one &lt;tt&gt;TPopupMenu&lt;/tt&gt; on your form and two &lt;tt&gt;TMemos&lt;/tt&gt;. Associate both &lt;tt&gt;TMemos&lt;/tt&gt; with the popup menu. When the popup menu pops up, can you tell which one of the two memos was right-clicked?&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;"Yes, it's the &lt;tt&gt;Sender&lt;/tt&gt;-parameter in &lt;tt&gt;TPopupMenu.OnPopup&lt;/tt&gt;." - Wrong.&lt;br /&gt;&lt;li&gt;"Of course, it's the &lt;tt&gt;Sender&lt;/tt&gt;-parameter in the &lt;tt&gt;OnClick&lt;/tt&gt;-event of the menu." - Wrong.&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;I was pretty stunned a couple of days ago as I did not want to implement one popup menu for every component or something scary like that. The solution is easy, if you know it, of course. You just have to look at the right place. &lt;br /&gt;&lt;br /&gt;The component that is being right-clicked has a property named "&lt;tt&gt;OnContextPopup&lt;/tt&gt;". So what you could do, use the &lt;tt&gt;Tag&lt;/tt&gt;-property of both &lt;tt&gt;TMemo&lt;/tt&gt;s and implement a common &lt;tt&gt;OnContextPopup&lt;/tt&gt;-event for both that sets the &lt;tt&gt;Tag&lt;/tt&gt; of the popup menu accordingly. So you can determine at any time during or after menu popup, which component triggered it.&lt;br /&gt;&lt;br /&gt;Easy if you know where to look, but really nasty to find if you look at the menu and its events only.&lt;br /&gt;&lt;br /&gt;Happy Thanksgiving everybody!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19137168-113294405763484279?l=delphi2006.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://delphi2006.blogspot.com/feeds/113294405763484279/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19137168&amp;postID=113294405763484279' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19137168/posts/default/113294405763484279'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19137168/posts/default/113294405763484279'/><link rel='alternate' type='text/html' href='http://delphi2006.blogspot.com/2005/11/what-component-triggered-popup-menu.html' title='What component triggered the popup menu?'/><author><name>Holger</name><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-19137168.post-113276435746154282</id><published>2005-11-23T17:40:00.000+01:00</published><updated>2006-10-17T20:37:52.354+02:00</updated><title type='text'>Indy: Can I use Indy Components in ASP.NET applications?</title><content type='html'>Let me give you the answer by asking you: Why not? As I said in one of my previous posts, Indy assemblies do not differ from any other .NET assembly. ASP.NET can "use" any class of any .NET assembly. However, I think this 'question' arises because of the fact that two things may happen:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Your internet provider may not allow you to deploy custom assemblies in addition to your application DLL&lt;/li&gt;&lt;br /&gt;&lt;li&gt;You may not have propery security rights to allow the operation that is included in the assembly to be executed&lt;/li&gt;&lt;br /&gt;&lt;/ol&gt;&lt;br /&gt;In the second case you are busted. There is no other way, but to apply for additional access rights. The first case, however, can be solved if you want to use the Indy assemblies. The Delphi compiler can link the Indy "libraries" into your appliciation DLL. Yes, this is really possible due to the fact that Indy is written in Delphi and the Delphi compiler offers that feature. Just right-click on all the Indy assemblies in the Project Manager and check the "Link Unit" menu item and you'll end up with one application assembly.&lt;p&gt;That's a pretty neat feature of the compiler, isn't it?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19137168-113276435746154282?l=delphi2006.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://delphi2006.blogspot.com/feeds/113276435746154282/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19137168&amp;postID=113276435746154282' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19137168/posts/default/113276435746154282'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19137168/posts/default/113276435746154282'/><link rel='alternate' type='text/html' href='http://delphi2006.blogspot.com/2005/11/indy-can-i-use-indy-components-in.html' title='Indy: Can I use Indy Components in ASP.NET applications?'/><author><name>Holger</name><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-19137168.post-113275390947871485</id><published>2005-11-23T14:46:00.000+01:00</published><updated>2006-10-17T20:37:52.276+02:00</updated><title type='text'>About Skype</title><content type='html'>My friend J.P. warned me. I wouldn't listen. But it is not a good idea to place a "call me" button on your blog, if you forget to tell your client only to let people call you who are on your contact list. &lt;br /&gt;&lt;br /&gt;Basically, I changed that now. If you want to call me, you need to be on my contact list first. &lt;br /&gt;&lt;br /&gt;And I advise anybody thinking about to put that that nice feature from Skype.com on their blog to think about the same. I had a couple of calls yesterday from people who just thought it to be fun to press the button :-(&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19137168-113275390947871485?l=delphi2006.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://delphi2006.blogspot.com/feeds/113275390947871485/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19137168&amp;postID=113275390947871485' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19137168/posts/default/113275390947871485'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19137168/posts/default/113275390947871485'/><link rel='alternate' type='text/html' href='http://delphi2006.blogspot.com/2005/11/about-skype.html' title='About Skype'/><author><name>Holger</name><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-19137168.post-113262642050799978</id><published>2005-11-22T03:24:00.001+01:00</published><updated>2006-10-17T20:37:52.201+02:00</updated><title type='text'>Time</title><content type='html'>The internet and Skype make it possible: press one button and you call the person you chose in a list - wherever that person is in the world right now. That is a very nice feature, but can  be very very embarrassing if the person you call leave the PC online 24 hours and you call at 3am in the morning.&lt;br /&gt;&lt;br /&gt;I had the very same problem tonight. So I found this page, which is more than useful:&lt;br /&gt;&lt;a href="http://tinyurl.com/w9p3"&gt;http://tinyurl.com/w9p3&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19137168-113262642050799978?l=delphi2006.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://delphi2006.blogspot.com/feeds/113262642050799978/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19137168&amp;postID=113262642050799978' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19137168/posts/default/113262642050799978'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19137168/posts/default/113262642050799978'/><link rel='alternate' type='text/html' href='http://delphi2006.blogspot.com/2005/11/time_22.html' title='Time'/><author><name>Holger</name><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-19137168.post-113250297970489836</id><published>2005-11-20T16:59:00.000+01:00</published><updated>2006-10-17T20:37:52.057+02:00</updated><title type='text'>Indy and Winforms (using GExperts)</title><content type='html'>I had an interesting chat today about a topic that's been an issue for Indy in the last couple of months. Firstly, let me say that the Indy Library does not have any dependencies on the Delphi RTL any longer. The Indy Core Team implemented custom RTL routines, so we no longer depend on the Borland-Namespace. &lt;br /&gt;&lt;br /&gt;However, a lot of people still are surprised that you can do Winforms development with Indy. Why shouldn't you? All Indy stuff for .NET are assemblies, no different from any other 3rd party assembly. The only difference is the &lt;em&gt;design-time support&lt;/em&gt;. VCL.NET does have design-time support, Winforms does not. &lt;br /&gt;&lt;br /&gt;Just in case: Design-time support means that the components appear on the Tool Palette, you can drop them on a form and change properties during design-time. In Winforms we do currently not have that capability. &lt;br /&gt;&lt;br /&gt;There are many reasons for this, but the most striking one is that the property editors which we have for VCL would have to be completely rewritten for Winforms, for which we currently do not have the manpower. We looked into it and decided to spend resources on other issues. &lt;br /&gt;&lt;br /&gt;However, even if you do not want to write runtime code when using Indy components, I might have a workaround for you!&lt;br /&gt;&lt;br /&gt;GExperts, a 'couple' (&lt;grin&gt; of wonderful IDE plugins), helps you in that regard. &lt;br /&gt;&lt;br /&gt;Simply&lt;br /&gt;&lt;ol&gt;&lt;br /&gt;&lt;li&gt; create a VCL form, &lt;br /&gt;&lt;li&gt; drop any Indy component on the form,&lt;br /&gt;&lt;li&gt; set the properties to your liking, &lt;br /&gt;&lt;li&gt; right-click the component and &lt;br /&gt;&lt;li&gt; chose the command "Components to Code". &lt;br /&gt;&lt;/ol&gt;&lt;br /&gt;If you have an older version of GExperts you may find that item in the GExperts menu. Thus, you will end-up with the code to create that exact component in the clipboard. The final step is to paste that code into your Winforms application.&lt;br /&gt;&lt;br /&gt;Here you see the popup menu with the GExpert item "Components to Code"&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/7785/373/1600/components.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://photos1.blogger.com/blogger/7785/373/400/components.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;This generates the following source code:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/7785/373/1600/notepad.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;" src="http://photos1.blogger.com/blogger/7785/373/400/notepad.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Of course, this does not help you at all when using C#. I am very aware of that. However, as I was talking in the chat today I thought that more people could profit of the result of that chat.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19137168-113250297970489836?l=delphi2006.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://delphi2006.blogspot.com/feeds/113250297970489836/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19137168&amp;postID=113250297970489836' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19137168/posts/default/113250297970489836'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19137168/posts/default/113250297970489836'/><link rel='alternate' type='text/html' href='http://delphi2006.blogspot.com/2005/11/indy-and-winforms-using-gexperts.html' title='Indy and Winforms (using GExperts)'/><author><name>Holger</name><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-19137168.post-113245637027343822</id><published>2005-11-20T04:12:00.000+01:00</published><updated>2006-10-17T20:37:51.984+02:00</updated><title type='text'>Freeware: TinyClip</title><content type='html'>&lt;a href="http://photos1.blogger.com/blogger/7785/373/1024/tinyclip.jpg"&gt;&lt;img src="http://photos1.blogger.com/blogger/7785/373/400/tinyclip.jpg" alt="" style="display: block; text-align: center;" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Okay, you might have heard about TinyUrl.com. You have a very long URL, you copy it into a form on TinyUrl.com and you get a very short URL as a result.&lt;br /&gt;&lt;br /&gt;This might be very handy at first, but it is not, considering that you have to go to the page all the time. Yes, I know there is a toolbar for Firefox, but still. The Firefox-Toolbar does not handle any links you copy into the clipboard, does it?&lt;br /&gt;&lt;br /&gt;TinyClip does. It's - still - totally free for &lt;a href="http://tinyurl.com/cq8zp"&gt;download &lt;/a&gt;from Hadi Hariri's (&lt;a href="http://www.atozed.com"&gt;AToZed Software&lt;/a&gt;) site.&lt;br /&gt;&lt;br /&gt;This little tool, which starts when my computer boots, is the reason why all URLs on this blog are TinyURLs. &lt;a href="http://picasa.google.com/" target="ext"&gt;&lt;img src="http://photos1.blogger.com/pbp.gif" alt="Posted by Picasa" style="border: 0px none ; padding: 0px; background: transparent none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" align="middle" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19137168-113245637027343822?l=delphi2006.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://delphi2006.blogspot.com/feeds/113245637027343822/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19137168&amp;postID=113245637027343822' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19137168/posts/default/113245637027343822'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19137168/posts/default/113245637027343822'/><link rel='alternate' type='text/html' href='http://delphi2006.blogspot.com/2005/11/freeware-tinyclip.html' title='Freeware: TinyClip'/><author><name>Holger</name><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-19137168.post-113245537169280005</id><published>2005-11-20T03:49:00.000+01:00</published><updated>2006-10-17T20:37:51.692+02:00</updated><title type='text'>Published Articles</title><content type='html'>I published a couple of tutorials (aka BDNtv) about ASP.NET on the &lt;a href="http://bdn.borland.com"&gt;Borland Developer Network&lt;/a&gt;:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://tinyurl.com/dqtwl"&gt;ASP.NET Forms Authentication&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://tinyurl.com/cg4m3"&gt;ASP.NET Encryption and Validation&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://tinyurl.com/a3nun"&gt;ASP.NET Role-based Authorization &amp;amp; some basics using ECO II&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;All episodes are about 30 minutes long. Enjoy!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19137168-113245537169280005?l=delphi2006.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://delphi2006.blogspot.com/feeds/113245537169280005/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19137168&amp;postID=113245537169280005' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19137168/posts/default/113245537169280005'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19137168/posts/default/113245537169280005'/><link rel='alternate' type='text/html' href='http://delphi2006.blogspot.com/2005/11/published-articles.html' title='Published Articles'/><author><name>Holger</name><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-19137168.post-113245385258258579</id><published>2005-11-20T03:29:00.000+01:00</published><updated>2006-10-17T20:37:51.614+02:00</updated><title type='text'>Indy Team in Arnhem 2005</title><content type='html'>&lt;a href="http://photos1.blogger.com/blogger/7785/373/640/IMG_0163.jpg"&gt;&lt;img style="display: block; text-align: center;" alt="" src="http://photos1.blogger.com/blogger/7785/373/320/IMG_0163.jpg" border="0" /&gt;&lt;/a&gt; &lt;a href="http://picasa.google.com/" target="ext"&gt;&lt;img src="http://photos1.blogger.com/pbp.gif" alt="Posted by Picasa" style="border: 0px none ; padding: 0px; background: transparent none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" align="middle" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Only a few people know that I joined the Indy Development team in April 2005. In the end of May some of the Indy Core Team met in Arnhem (Arnheim) at a Developer Conference. &lt;br /&gt;&lt;span style="font-style:italic;"&gt;On the photo you see (left to right) Matthijs ter Woord, me, Chad Z. Hower, Bas Gooijen and Olaf Monien.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19137168-113245385258258579?l=delphi2006.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://delphi2006.blogspot.com/feeds/113245385258258579/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19137168&amp;postID=113245385258258579' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19137168/posts/default/113245385258258579'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19137168/posts/default/113245385258258579'/><link rel='alternate' type='text/html' href='http://delphi2006.blogspot.com/2005/11/indy-team-in-arnhem-2005.html' title='Indy Team in Arnhem 2005'/><author><name>Holger</name><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-19137168.post-113245341311206506</id><published>2005-11-20T03:21:00.000+01:00</published><updated>2006-10-17T20:37:51.519+02:00</updated><title type='text'>Blogging again</title><content type='html'>It's 3:30 am in the morning and I have to stay up, because I promised to drive a friend of mine to the airport in an hour or so.&lt;br /&gt;Thus, the ideal time to set up blogging again.&lt;br /&gt;This blog will focus on Delphi mainly, but also on the C# personality of Borland Delphi.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19137168-113245341311206506?l=delphi2006.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://delphi2006.blogspot.com/feeds/113245341311206506/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19137168&amp;postID=113245341311206506' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19137168/posts/default/113245341311206506'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19137168/posts/default/113245341311206506'/><link rel='alternate' type='text/html' href='http://delphi2006.blogspot.com/2005/11/blogging-again.html' title='Blogging again'/><author><name>Holger</name><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></feed>
