<?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/'><id>tag:blogger.com,1999:blog-8837899541977019574.comments</id><updated>2011-11-15T09:53:13.224+01:00</updated><category term='logging'/><category term='pricing'/><category term='Windows 8'/><category term='cache'/><category term='debugging'/><category term='bug'/><category term='fdclib'/><category term='RTTI'/><category term='syntax highlight'/><category term='input'/><category term='Enumerated types'/><category term='about'/><category term='native code'/><category term='validation'/><category term='XAML'/><category term='binary'/><category term='delphi'/><category term='cross platform'/><category term='noteworthy'/><category term='pointers'/><category term='Embarcadero'/><category term='FireMonkey'/><category term='frames'/><category term='custom grid'/><category term='fmx'/><category term='RAD Studio'/><category term='forms'/><category term='strings'/><category term='wishful'/><category term='review'/><category term='usability'/><category term='database'/><category term='Windows 7'/><category term='Google+'/><category term='snippet'/><category term='programming philosophy'/><category term='wp7 microsoft ebook'/><category term='wizard'/><category term='java'/><category term='XE2'/><category term='optimize'/><category term='Generics'/><category term='web services'/><category term='blog'/><category term='book'/><category term='eurekalog'/><category term='soapbox'/><category term='case'/><category term='time'/><category term='WinRT'/><category term='reusable code'/><category term='source'/><category term='RESTful'/><category term='vcl'/><category term='search'/><category term='LiveBinding'/><category term='anonymous methods'/><category term='popularity'/><category term='questions'/><category term='compiler'/><category term='porting'/><title type='text'>program begin end. // comments?</title><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://delphi.fosdal.com/feeds/comments/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8837899541977019574/comments/default'/><link rel='alternate' type='text/html' href='http://delphi.fosdal.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/8837899541977019574/comments/default?start-index=26&amp;max-results=25'/><author><name>Lars Fosdal</name><uri>https://profiles.google.com/103128232230617819686</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-eHXeoU2Aw6A/AAAAAAAAAAI/AAAAAAAAGSM/fEF46cIioio/s512-c/photo.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>184</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-8837899541977019574.post-1698317605755826627</id><published>2011-11-15T09:53:13.224+01:00</published><updated>2011-11-15T09:53:13.224+01:00</updated><title type='text'>Hmm - you&amp;#39;ve got a point... I&amp;#39;ll think a l...</title><content type='html'>Hmm - you&amp;#39;ve got a point... I&amp;#39;ll think a little about it and try from a different angle.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8837899541977019574/5570506742786195676/comments/default/1698317605755826627'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8837899541977019574/5570506742786195676/comments/default/1698317605755826627'/><link rel='alternate' type='text/html' href='http://delphi.fosdal.com/2011/11/compile-time-ordered-vectors.html?showComment=1321347193224#c1698317605755826627' title=''/><author><name>Lars Fosdal</name><uri>http://www.blogger.com/profile/05635001623287214775</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-eHXeoU2Aw6A/AAAAAAAAAAI/AAAAAAAAFyg/OZIy-Scz70g/s512-c/photo.jpg'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://delphi.fosdal.com/2011/11/compile-time-ordered-vectors.html' ref='tag:blogger.com,1999:blog-8837899541977019574.post-5570506742786195676' source='http://www.blogger.com/feeds/8837899541977019574/posts/default/5570506742786195676' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-1474281039'/></entry><entry><id>tag:blogger.com,1999:blog-8837899541977019574.post-2670825349481426669</id><published>2011-11-14T17:21:37.113+01:00</published><updated>2011-11-14T17:21:37.113+01:00</updated><title type='text'>Dynamic jump tables: still a set, not a sort. ;)</title><content type='html'>Dynamic jump tables: still a set, not a sort. ;)</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8837899541977019574/5570506742786195676/comments/default/2670825349481426669'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8837899541977019574/5570506742786195676/comments/default/2670825349481426669'/><link rel='alternate' type='text/html' href='http://delphi.fosdal.com/2011/11/compile-time-ordered-vectors.html?showComment=1321287697113#c2670825349481426669' title=''/><author><name>dthorpe</name><uri>http://www.blogger.com/profile/00761839989639689964</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://delphi.fosdal.com/2011/11/compile-time-ordered-vectors.html' ref='tag:blogger.com,1999:blog-8837899541977019574.post-5570506742786195676' source='http://www.blogger.com/feeds/8837899541977019574/posts/default/5570506742786195676' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-952054304'/></entry><entry><id>tag:blogger.com,1999:blog-8837899541977019574.post-4747107037101656552</id><published>2011-11-10T00:06:33.216+01:00</published><updated>2011-11-10T00:06:33.216+01:00</updated><title type='text'>Aye, it is a poor example.  I&amp;#39;ll provide a bet...</title><content type='html'>Aye, it is a poor example.  I&amp;#39;ll provide a better one.  &lt;br /&gt;&lt;br /&gt;This actually was an old draft post, and it appear to me that I haven&amp;#39;t quite completed my train of thought here.  My need at the time was related to  creating jump tables for handling data streams, partly statically defined at compile time, but revised at run time.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8837899541977019574/5570506742786195676/comments/default/4747107037101656552'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8837899541977019574/5570506742786195676/comments/default/4747107037101656552'/><link rel='alternate' type='text/html' href='http://delphi.fosdal.com/2011/11/compile-time-ordered-vectors.html?showComment=1320879993216#c4747107037101656552' title=''/><author><name>Lars Fosdal</name><uri>http://www.blogger.com/profile/05635001623287214775</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-eHXeoU2Aw6A/AAAAAAAAAAI/AAAAAAAAFZg/Qi0jtrrWThE/photo.jpg'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://delphi.fosdal.com/2011/11/compile-time-ordered-vectors.html' ref='tag:blogger.com,1999:blog-8837899541977019574.post-5570506742786195676' source='http://www.blogger.com/feeds/8837899541977019574/posts/default/5570506742786195676' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-1474281039'/></entry><entry><id>tag:blogger.com,1999:blog-8837899541977019574.post-7077174465366495626</id><published>2011-11-09T17:49:26.071+01:00</published><updated>2011-11-09T17:49:26.071+01:00</updated><title type='text'>Your syntax is for sorting, but your use cases are...</title><content type='html'>Your syntax is for sorting, but your use cases are all about set operations.  Set operations do not require sorting - sets do require some manner of precomputing, but not display sequence ordering. Its best not to impose an implementation on the interface.&lt;br /&gt;&lt;br /&gt;If you want presorted data, change your use case to show why this would be useful and how you would deal with locale and localization issues.&lt;br /&gt;&lt;br /&gt;If you want set operations on arrays or vectors, lose the &amp;quot;ordered&amp;quot; syntax and just extend the existing &amp;quot;set of&amp;quot; syntax.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8837899541977019574/5570506742786195676/comments/default/7077174465366495626'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8837899541977019574/5570506742786195676/comments/default/7077174465366495626'/><link rel='alternate' type='text/html' href='http://delphi.fosdal.com/2011/11/compile-time-ordered-vectors.html?showComment=1320857366071#c7077174465366495626' title=''/><author><name>dthorpe</name><uri>http://www.blogger.com/profile/00761839989639689964</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://delphi.fosdal.com/2011/11/compile-time-ordered-vectors.html' ref='tag:blogger.com,1999:blog-8837899541977019574.post-5570506742786195676' source='http://www.blogger.com/feeds/8837899541977019574/posts/default/5570506742786195676' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-952054304'/></entry><entry><id>tag:blogger.com,1999:blog-8837899541977019574.post-8003033797056666244</id><published>2011-11-09T09:36:41.213+01:00</published><updated>2011-11-09T09:36:41.213+01:00</updated><title type='text'>Sheesh - I look forward to G+ comments on Blogger ...</title><content type='html'>Sheesh - I look forward to G+ comments on Blogger - hate that I can&amp;#39;t edit them!&lt;br /&gt;&lt;br /&gt;The page itself can be used to publish the current list of public followers bi-weekly, but that is not strictly necessary.&lt;br /&gt;&lt;br /&gt;I am hoping that Google will add a functionality that allow followers to create a joint stream through a page, thus making pages into self-curating focal points, i.e. interest groups.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8837899541977019574/4448947568410934859/comments/default/8003033797056666244'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8837899541977019574/4448947568410934859/comments/default/8003033797056666244'/><link rel='alternate' type='text/html' href='http://delphi.fosdal.com/2011/11/google-delphi-user-groups.html?showComment=1320827801213#c8003033797056666244' title=''/><author><name>Lars Fosdal</name><uri>http://www.blogger.com/profile/05635001623287214775</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-eHXeoU2Aw6A/AAAAAAAAAAI/AAAAAAAAFZg/Qi0jtrrWThE/photo.jpg'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://delphi.fosdal.com/2011/11/google-delphi-user-groups.html' ref='tag:blogger.com,1999:blog-8837899541977019574.post-4448947568410934859' source='http://www.blogger.com/feeds/8837899541977019574/posts/default/4448947568410934859' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-1474281039'/></entry><entry><id>tag:blogger.com,1999:blog-8837899541977019574.post-6437301245939955661</id><published>2011-11-09T09:30:35.534+01:00</published><updated>2011-11-09T09:30:35.534+01:00</updated><title type='text'>You are correct - currently only the owner of a pa...</title><content type='html'>You are correct - currently only the owner of a page can post to the page.&lt;br /&gt;&lt;br /&gt;The point of the User Group pages is that people can follow them in public, hence making the pages lists of people that would like to be considered as a member of the respective user group. &lt;br /&gt;&lt;br /&gt;The page itself can be used to publish the current list of followers bi-weekly, but.&lt;br /&gt;&lt;br /&gt;That way you can add those of the visible users/pages you want to follow to your own Delphi circle.&lt;br /&gt;&lt;br /&gt;Think of it as voluntary directories that are self maintaining.  You can lurk, but if you want people to discover your Delphi posts, you should create your own Delphi page, and from that page, follow the relevant user group pages to become visible to other Delphi users.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8837899541977019574/4448947568410934859/comments/default/6437301245939955661'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8837899541977019574/4448947568410934859/comments/default/6437301245939955661'/><link rel='alternate' type='text/html' href='http://delphi.fosdal.com/2011/11/google-delphi-user-groups.html?showComment=1320827435534#c6437301245939955661' title=''/><author><name>Lars Fosdal</name><uri>http://www.blogger.com/profile/05635001623287214775</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-eHXeoU2Aw6A/AAAAAAAAAAI/AAAAAAAAFZg/Qi0jtrrWThE/photo.jpg'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://delphi.fosdal.com/2011/11/google-delphi-user-groups.html' ref='tag:blogger.com,1999:blog-8837899541977019574.post-4448947568410934859' source='http://www.blogger.com/feeds/8837899541977019574/posts/default/4448947568410934859' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-1474281039'/></entry><entry><id>tag:blogger.com,1999:blog-8837899541977019574.post-2104107894909897902</id><published>2011-11-09T09:12:59.907+01:00</published><updated>2011-11-09T09:12:59.907+01:00</updated><title type='text'>Am I right that only the creator can post to a Goo...</title><content type='html'>Am I right that only the creator can post to a Google+ page though? It&amp;#39;s not much of a user group when it relies on only one person for its content.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8837899541977019574/4448947568410934859/comments/default/2104107894909897902'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8837899541977019574/4448947568410934859/comments/default/2104107894909897902'/><link rel='alternate' type='text/html' href='http://delphi.fosdal.com/2011/11/google-delphi-user-groups.html?showComment=1320826379907#c2104107894909897902' title=''/><author><name>Lachlan</name><uri>http://www.blogger.com/profile/05666168623106775966</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://delphi.fosdal.com/2011/11/google-delphi-user-groups.html' ref='tag:blogger.com,1999:blog-8837899541977019574.post-4448947568410934859' source='http://www.blogger.com/feeds/8837899541977019574/posts/default/4448947568410934859' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-124620611'/></entry><entry><id>tag:blogger.com,1999:blog-8837899541977019574.post-1279906423292885889</id><published>2011-09-21T15:53:43.743+02:00</published><updated>2011-09-21T15:53:43.743+02:00</updated><title type='text'>I m think, VCL should never be compatible with Win...</title><content type='html'>I m think, VCL should never be compatible with WinRT directly - only via legacy desktop part of Windows API. &lt;br /&gt;&lt;br /&gt;Delphi RTL should be compatible with WinRT via new platform - for ex Windows.WinRT.* namespace, like MacOS API)&lt;br /&gt;&lt;br /&gt;Regarding UI layer - don&amp;#39;t know, no ideas. Maybe its best to produce some XAML-based bindings to new Win UI components, maybe the can port FireMonkey to Metro-like style.&lt;br /&gt;&lt;br /&gt;And one more note: no text about OpenCL support, but logo is on screen)</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8837899541977019574/6873892869530980371/comments/default/1279906423292885889'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8837899541977019574/6873892869530980371/comments/default/1279906423292885889'/><link rel='alternate' type='text/html' href='http://delphi.fosdal.com/2011/09/delphi-road-map-preview-from-new.html?showComment=1316613223743#c1279906423292885889' title=''/><author><name>deksden</name><uri>http://www.blogger.com/profile/14875114625608323641</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://2.bp.blogspot.com/-UEzmkcJEDrM/Tm7knreLpfI/AAAAAAAAALo/m1jb6MCZmbY/s220/Deks2-1.png'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://delphi.fosdal.com/2011/09/delphi-road-map-preview-from-new.html' ref='tag:blogger.com,1999:blog-8837899541977019574.post-6873892869530980371' source='http://www.blogger.com/feeds/8837899541977019574/posts/default/6873892869530980371' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-464391296'/></entry><entry><id>tag:blogger.com,1999:blog-8837899541977019574.post-3767608426071629118</id><published>2011-09-21T15:28:48.539+02:00</published><updated>2011-09-21T15:28:48.539+02:00</updated><title type='text'>I think we can say for sure that VCL will not span...</title><content type='html'>I think we can say for sure that VCL will not span the WinRT Metro UI.  We might be able to access WinRT non-visuals from a VCL App, but WinRT is the native Windows library reinvented - so in a way you can call it a new platform.  Can the visual part of WinRT be wrapped in FireMonkey? Don&amp;#39;t know. Lots of exploration and hard choices ahead for the Delphi team, me thinks.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8837899541977019574/6873892869530980371/comments/default/3767608426071629118'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8837899541977019574/6873892869530980371/comments/default/3767608426071629118'/><link rel='alternate' type='text/html' href='http://delphi.fosdal.com/2011/09/delphi-road-map-preview-from-new.html?showComment=1316611728539#c3767608426071629118' title=''/><author><name>Lars Fosdal</name><uri>http://www.blogger.com/profile/05635001623287214775</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_88YafEh-VIM/SgNv2CGRyaI/AAAAAAAABN0/nBOvRg9UdaM/S220/113x150.jpg'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://delphi.fosdal.com/2011/09/delphi-road-map-preview-from-new.html' ref='tag:blogger.com,1999:blog-8837899541977019574.post-6873892869530980371' source='http://www.blogger.com/feeds/8837899541977019574/posts/default/6873892869530980371' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-1474281039'/></entry><entry><id>tag:blogger.com,1999:blog-8837899541977019574.post-706914297512408893</id><published>2011-09-21T15:03:47.265+02:00</published><updated>2011-09-21T15:03:47.265+02:00</updated><title type='text'>I will be interested to see where things go with W...</title><content type='html'>I will be interested to see where things go with Win8 support.  It seems that Metro would require pure FireMonkey development.  That&amp;#39;s a natural solution for light Apps, but I think Metro will stink for heavy hitting business applications.  (no overlapping windows - tiles - heavy on touch)&lt;br /&gt;&lt;br /&gt;I&amp;#39;m wondering if there is a way that VCL will ever support direct WinRT.  Supposedly Visual Studio will have native C++ compile to WinRT.  There&amp;#39;s a lot of existing code in the world that works much better in VCL and with traditional Windows handling.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8837899541977019574/6873892869530980371/comments/default/706914297512408893'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8837899541977019574/6873892869530980371/comments/default/706914297512408893'/><link rel='alternate' type='text/html' href='http://delphi.fosdal.com/2011/09/delphi-road-map-preview-from-new.html?showComment=1316610227265#c706914297512408893' title=''/><author><name>Craig Hanson</name><uri>http://www.blogger.com/profile/18168214407658875701</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://delphi.fosdal.com/2011/09/delphi-road-map-preview-from-new.html' ref='tag:blogger.com,1999:blog-8837899541977019574.post-6873892869530980371' source='http://www.blogger.com/feeds/8837899541977019574/posts/default/6873892869530980371' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-2141808613'/></entry><entry><id>tag:blogger.com,1999:blog-8837899541977019574.post-3687857719542932858</id><published>2011-09-20T22:18:13.895+02:00</published><updated>2011-09-20T22:18:13.895+02:00</updated><title type='text'>I&amp;#39;ve had some new ideas - so I am gonna do a l...</title><content type='html'>I&amp;#39;ve had some new ideas - so I am gonna do a little more work before I put it out there.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8837899541977019574/914727167925884501/comments/default/3687857719542932858'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8837899541977019574/914727167925884501/comments/default/3687857719542932858'/><link rel='alternate' type='text/html' href='http://delphi.fosdal.com/2011/09/forms-and-data-entry-validation-part-1.html?showComment=1316549893895#c3687857719542932858' title=''/><author><name>Lars Fosdal</name><uri>http://www.blogger.com/profile/05635001623287214775</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_88YafEh-VIM/SgNv2CGRyaI/AAAAAAAABN0/nBOvRg9UdaM/S220/113x150.jpg'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://delphi.fosdal.com/2011/09/forms-and-data-entry-validation-part-1.html' ref='tag:blogger.com,1999:blog-8837899541977019574.post-914727167925884501' source='http://www.blogger.com/feeds/8837899541977019574/posts/default/914727167925884501' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-1474281039'/></entry><entry><id>tag:blogger.com,1999:blog-8837899541977019574.post-8828273888786550094</id><published>2011-09-11T16:21:58.201+02:00</published><updated>2011-09-11T16:21:58.201+02:00</updated><title type='text'>FYI: Ali Keshavarz has posted an informative artic...</title><content type='html'>FYI: Ali Keshavarz has posted an informative article on the state of BiDi in FMX.  http://vcldeveloper.com/news/firemonkey-and-support-for-bi-directional-text-2/</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8837899541977019574/6149821872597979302/comments/default/8828273888786550094'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8837899541977019574/6149821872597979302/comments/default/8828273888786550094'/><link rel='alternate' type='text/html' href='http://delphi.fosdal.com/2011/08/rad-studio-xe2-vcl-and-firemonkey-fmx.html?showComment=1315750918201#c8828273888786550094' title=''/><author><name>Lars Fosdal</name><uri>http://www.blogger.com/profile/05635001623287214775</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_88YafEh-VIM/SgNv2CGRyaI/AAAAAAAABN0/nBOvRg9UdaM/S220/113x150.jpg'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://delphi.fosdal.com/2011/08/rad-studio-xe2-vcl-and-firemonkey-fmx.html' ref='tag:blogger.com,1999:blog-8837899541977019574.post-6149821872597979302' source='http://www.blogger.com/feeds/8837899541977019574/posts/default/6149821872597979302' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-1474281039'/></entry><entry><id>tag:blogger.com,1999:blog-8837899541977019574.post-5416928984351501111</id><published>2011-09-08T16:32:35.540+02:00</published><updated>2011-09-08T16:32:35.540+02:00</updated><title type='text'>@Stefan: Well, I have two concerns. Conversion/val...</title><content type='html'>@Stefan: Well, I have two concerns. Conversion/validation - which TValue would deal with nicely, and presentation - which TValue won&amp;#39;t support.  I am not in control of how many decimals my floats would be displayed with.  For an input dialog that deals with volumes and weights, as well as other quantitative values - I need to be able to specify a number of decimals.&lt;br /&gt;&lt;br /&gt;I think I will forgo the TValue version for now - and stick with the oldschool approach.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8837899541977019574/914727167925884501/comments/default/5416928984351501111'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8837899541977019574/914727167925884501/comments/default/5416928984351501111'/><link rel='alternate' type='text/html' href='http://delphi.fosdal.com/2011/09/forms-and-data-entry-validation-part-1.html?showComment=1315492355540#c5416928984351501111' title=''/><author><name>Lars Fosdal</name><uri>http://www.blogger.com/profile/05635001623287214775</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_88YafEh-VIM/SgNv2CGRyaI/AAAAAAAABN0/nBOvRg9UdaM/S220/113x150.jpg'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://delphi.fosdal.com/2011/09/forms-and-data-entry-validation-part-1.html' ref='tag:blogger.com,1999:blog-8837899541977019574.post-914727167925884501' source='http://www.blogger.com/feeds/8837899541977019574/posts/default/914727167925884501' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-1474281039'/></entry><entry><id>tag:blogger.com,1999:blog-8837899541977019574.post-7202392301913728616</id><published>2011-09-04T22:40:48.209+02:00</published><updated>2011-09-04T22:40:48.209+02:00</updated><title type='text'>@Lars: With TValue you can&amp;#39;t and I actually th...</title><content type='html'>@Lars: With TValue you can&amp;#39;t and I actually think that should not be the purpose of this. I can&amp;#39;t say yet because I don&amp;#39;t know where this is going, but so far I smell violation of SoC.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8837899541977019574/914727167925884501/comments/default/7202392301913728616'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8837899541977019574/914727167925884501/comments/default/7202392301913728616'/><link rel='alternate' type='text/html' href='http://delphi.fosdal.com/2011/09/forms-and-data-entry-validation-part-1.html?showComment=1315168848209#c7202392301913728616' title=''/><author><name>Stefan Glienke</name><uri>http://www.blogger.com/profile/09320735081289619570</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://delphi.fosdal.com/2011/09/forms-and-data-entry-validation-part-1.html' ref='tag:blogger.com,1999:blog-8837899541977019574.post-914727167925884501' source='http://www.blogger.com/feeds/8837899541977019574/posts/default/914727167925884501' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-1586496343'/></entry><entry><id>tag:blogger.com,1999:blog-8837899541977019574.post-1980455458795112335</id><published>2011-09-04T16:15:00.720+02:00</published><updated>2011-09-04T16:15:00.720+02:00</updated><title type='text'>@ahmed - It is in there, but I really can&amp;#39;t te...</title><content type='html'>@ahmed - It is in there, but I really can&amp;#39;t tell if it is working correctly as I have never used it, and I don&amp;#39;t know anything about selecting the right font, the right locale, and the right text to see if it works or not.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8837899541977019574/6149821872597979302/comments/default/1980455458795112335'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8837899541977019574/6149821872597979302/comments/default/1980455458795112335'/><link rel='alternate' type='text/html' href='http://delphi.fosdal.com/2011/08/rad-studio-xe2-vcl-and-firemonkey-fmx.html?showComment=1315145700720#c1980455458795112335' title=''/><author><name>Lars Fosdal</name><uri>http://www.blogger.com/profile/05635001623287214775</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_88YafEh-VIM/SgNv2CGRyaI/AAAAAAAABN0/nBOvRg9UdaM/S220/113x150.jpg'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://delphi.fosdal.com/2011/08/rad-studio-xe2-vcl-and-firemonkey-fmx.html' ref='tag:blogger.com,1999:blog-8837899541977019574.post-6149821872597979302' source='http://www.blogger.com/feeds/8837899541977019574/posts/default/6149821872597979302' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-1474281039'/></entry><entry><id>tag:blogger.com,1999:blog-8837899541977019574.post-3912562237631754831</id><published>2011-09-04T14:28:09.017+02:00</published><updated>2011-09-04T14:28:09.017+02:00</updated><title type='text'>@Dag - Yes, validation of data can be a very compl...</title><content type='html'>@Dag - Yes, validation of data can be a very complex exercise.&lt;br /&gt;&lt;br /&gt;I separating the validations into two different categories.  &lt;br /&gt;&lt;br /&gt;Basic, i.e. ensuring that a number is a number, a date is a date, etc. and Context - where we have to make decisions about the data in their validity in a contextual relation to other data.&lt;br /&gt;&lt;br /&gt;The Basic validation is something we shouldn&amp;#39;t have to re-implement umphteen times.&lt;br /&gt;&lt;br /&gt;The Context validation will be specific to each dialog implementation.&lt;br /&gt;&lt;br /&gt;As for dialog vs load/import validation - and repeated code - this is something that depend a lot on the application and use requirements.  I have tried to make the model possible to adapt to different ways of doing the validation.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8837899541977019574/914727167925884501/comments/default/3912562237631754831'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8837899541977019574/914727167925884501/comments/default/3912562237631754831'/><link rel='alternate' type='text/html' href='http://delphi.fosdal.com/2011/09/forms-and-data-entry-validation-part-1.html?showComment=1315139289017#c3912562237631754831' title=''/><author><name>Lars Fosdal</name><uri>http://www.blogger.com/profile/05635001623287214775</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_88YafEh-VIM/SgNv2CGRyaI/AAAAAAAABN0/nBOvRg9UdaM/S220/113x150.jpg'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://delphi.fosdal.com/2011/09/forms-and-data-entry-validation-part-1.html' ref='tag:blogger.com,1999:blog-8837899541977019574.post-914727167925884501' source='http://www.blogger.com/feeds/8837899541977019574/posts/default/914727167925884501' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-1474281039'/></entry><entry><id>tag:blogger.com,1999:blog-8837899541977019574.post-8009515430123648840</id><published>2011-09-04T14:07:33.235+02:00</published><updated>2011-09-04T14:07:33.235+02:00</updated><title type='text'>@Stefan - I have been thinking a little about usin...</title><content type='html'>@Stefan - I have been thinking a little about using TValue instead of explicit types, but I wonder: how would I control individual formatting?  Number of decimals for a float, as well as different date and time formats?</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8837899541977019574/914727167925884501/comments/default/8009515430123648840'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8837899541977019574/914727167925884501/comments/default/8009515430123648840'/><link rel='alternate' type='text/html' href='http://delphi.fosdal.com/2011/09/forms-and-data-entry-validation-part-1.html?showComment=1315138053235#c8009515430123648840' title=''/><author><name>Lars Fosdal</name><uri>http://www.blogger.com/profile/05635001623287214775</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_88YafEh-VIM/SgNv2CGRyaI/AAAAAAAABN0/nBOvRg9UdaM/S220/113x150.jpg'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://delphi.fosdal.com/2011/09/forms-and-data-entry-validation-part-1.html' ref='tag:blogger.com,1999:blog-8837899541977019574.post-914727167925884501' source='http://www.blogger.com/feeds/8837899541977019574/posts/default/914727167925884501' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-1474281039'/></entry><entry><id>tag:blogger.com,1999:blog-8837899541977019574.post-8649843291424085476</id><published>2011-09-04T13:03:44.144+02:00</published><updated>2011-09-04T13:03:44.144+02:00</updated><title type='text'>In a way you&amp;#39;re right of course, late validati...</title><content type='html'>In a way you&amp;#39;re right of course, late validation can be very annoying and is not perceived as user friendly. Sometimes you can almost hear the user mutter &amp;quot;Why didn&amp;#39;t you tell me so in the first place you stupid program!&amp;quot;.&lt;br /&gt;&lt;br /&gt;But the risk of dialog validation is that it will start out as a few minor restrictions but before you know it has grown and grown and grown ...&lt;br /&gt;&lt;br /&gt;And no matter how small, when you load/import data the same checks must be performed which means double code.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;And then there is the worst case of dialog validation: the graying out of a control without telling the user why. I can&amp;#39;t really think of a single case where graying out is acceptable unless perhaps a hint is used to spell out why the control is disabled. But much better is, I think, to keep the control enabled and tell the user why he/she can&amp;#39;t use it if and when it&amp;#39;s clicked.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;It&amp;#39;s nice to note that although coding for user input and validation is pretty boring, thinking about how it best can be done is not. I often find that striking a balance between being too restrictive (but simple) and too flexible (and complex) is really hard ...</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8837899541977019574/914727167925884501/comments/default/8649843291424085476'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8837899541977019574/914727167925884501/comments/default/8649843291424085476'/><link rel='alternate' type='text/html' href='http://delphi.fosdal.com/2011/09/forms-and-data-entry-validation-part-1.html?showComment=1315134224144#c8649843291424085476' title=''/><author><name>Dag</name><uri>http://www.blogger.com/profile/14764473410829789267</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://delphi.fosdal.com/2011/09/forms-and-data-entry-validation-part-1.html' ref='tag:blogger.com,1999:blog-8837899541977019574.post-914727167925884501' source='http://www.blogger.com/feeds/8837899541977019574/posts/default/914727167925884501' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-1291824614'/></entry><entry><id>tag:blogger.com,1999:blog-8837899541977019574.post-4611842929037885716</id><published>2011-09-03T22:16:38.137+02:00</published><updated>2011-09-03T22:16:38.137+02:00</updated><title type='text'>what is about bidimode property? is it obsoleted?</title><content type='html'>what is about bidimode property? is it obsoleted?</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8837899541977019574/6149821872597979302/comments/default/4611842929037885716'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8837899541977019574/6149821872597979302/comments/default/4611842929037885716'/><link rel='alternate' type='text/html' href='http://delphi.fosdal.com/2011/08/rad-studio-xe2-vcl-and-firemonkey-fmx.html?showComment=1315080998137#c4611842929037885716' title=''/><author><name>ahmed</name><uri>http://www.blogger.com/profile/08069782984159600522</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://delphi.fosdal.com/2011/08/rad-studio-xe2-vcl-and-firemonkey-fmx.html' ref='tag:blogger.com,1999:blog-8837899541977019574.post-6149821872597979302' source='http://www.blogger.com/feeds/8837899541977019574/posts/default/6149821872597979302' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-1085999503'/></entry><entry><id>tag:blogger.com,1999:blog-8837899541977019574.post-1796094529970287103</id><published>2011-09-03T15:47:11.699+02:00</published><updated>2011-09-03T15:47:11.699+02:00</updated><title type='text'>@Dag - In principle, I agree - in practice, centra...</title><content type='html'>@Dag - In principle, I agree - in practice, centralized validation can be unnecessary for operations only performed in a specific dialog.&lt;br /&gt;&lt;br /&gt;What if you can do both?</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8837899541977019574/914727167925884501/comments/default/1796094529970287103'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8837899541977019574/914727167925884501/comments/default/1796094529970287103'/><link rel='alternate' type='text/html' href='http://delphi.fosdal.com/2011/09/forms-and-data-entry-validation-part-1.html?showComment=1315057631699#c1796094529970287103' title=''/><author><name>Lars Fosdal</name><uri>http://www.blogger.com/profile/05635001623287214775</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_88YafEh-VIM/SgNv2CGRyaI/AAAAAAAABN0/nBOvRg9UdaM/S220/113x150.jpg'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://delphi.fosdal.com/2011/09/forms-and-data-entry-validation-part-1.html' ref='tag:blogger.com,1999:blog-8837899541977019574.post-914727167925884501' source='http://www.blogger.com/feeds/8837899541977019574/posts/default/914727167925884501' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-1474281039'/></entry><entry><id>tag:blogger.com,1999:blog-8837899541977019574.post-4230002647219174119</id><published>2011-09-03T14:53:16.708+02:00</published><updated>2011-09-03T14:53:16.708+02:00</updated><title type='text'>Personally I believe that validation should not be...</title><content type='html'>Personally I believe that validation should not be part of the input dialog itself. There are some exceptions, as always, most notably avoiding annoying the user with late validation instead of reacting immediately to user input.&lt;br /&gt;&lt;br /&gt;But in general late validation is better and, in many cases, unavoidable. Getting the data from the user is just one slice of the cake, what happens when you start saving, reading, exporting and importing the data? In all those cases you need to validate the data before acting upon it. And code tied to a dialog won&amp;#39;t do you any good. And surely you don&amp;#39;t want to code something as boring a validation twice, you don&amp;#39;t even really want to code it at all. &lt;br /&gt;&lt;br /&gt;Many times, at least in my experience, dialog validation just doesn&amp;#39;t cut it because the dialog doesn&amp;#39;t know the whole story, just bits and parts. And sometimes you need more data to validate. Sure, you can send that necessary data to the dialog but that violates the principle of &amp;#39;be a secretive as possible&amp;#39;, i.e. don&amp;#39;t spread you data around.&lt;br /&gt;&lt;br /&gt;I usually create a TValidation object with at least one method, Validate. The code in TValidation generally turns out really awful but I think that can&amp;#39;t be helped because it reflects real-life complexity and that tends to be messy. &lt;br /&gt;&lt;br /&gt;One very nice, an unexpected, boon stemming from TValidation is that with time the code will come to act as documentation for whatever it is you&amp;#39;re validating. It will have all the answers to questions like &amp;quot;If A and B are both greater than 10, C must be less - why was that again?&amp;quot;. In some cases, my code has become the authority, especially concerning the more exotic aspects.&lt;br /&gt;&lt;br /&gt;So, to briefly recap, validation should, in almost all cases, be done in a centralized place and not in the dialog.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8837899541977019574/914727167925884501/comments/default/4230002647219174119'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8837899541977019574/914727167925884501/comments/default/4230002647219174119'/><link rel='alternate' type='text/html' href='http://delphi.fosdal.com/2011/09/forms-and-data-entry-validation-part-1.html?showComment=1315054396708#c4230002647219174119' title=''/><author><name>Dag</name><uri>http://www.blogger.com/profile/14764473410829789267</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://delphi.fosdal.com/2011/09/forms-and-data-entry-validation-part-1.html' ref='tag:blogger.com,1999:blog-8837899541977019574.post-914727167925884501' source='http://www.blogger.com/feeds/8837899541977019574/posts/default/914727167925884501' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-1291824614'/></entry><entry><id>tag:blogger.com,1999:blog-8837899541977019574.post-4341888847988504514</id><published>2011-09-03T11:18:44.330+02:00</published><updated>2011-09-03T11:18:44.330+02:00</updated><title type='text'>@Francois - I did :)
@Lachlan - I agree. I liked A...</title><content type='html'>@Francois - I did :)&lt;br /&gt;@Lachlan - I agree. I liked Andreas&amp;#39; suggestion of using a const.  That would really improve the odds where there are multiple references.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8837899541977019574/1394400648986432835/comments/default/4341888847988504514'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8837899541977019574/1394400648986432835/comments/default/4341888847988504514'/><link rel='alternate' type='text/html' href='http://delphi.fosdal.com/2011/05/finding-yourself-in-property-bind.html?showComment=1315041524330#c4341888847988504514' title=''/><author><name>Lars Fosdal</name><uri>http://www.blogger.com/profile/05635001623287214775</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_88YafEh-VIM/SgNv2CGRyaI/AAAAAAAABN0/nBOvRg9UdaM/S220/113x150.jpg'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://delphi.fosdal.com/2011/05/finding-yourself-in-property-bind.html' ref='tag:blogger.com,1999:blog-8837899541977019574.post-1394400648986432835' source='http://www.blogger.com/feeds/8837899541977019574/posts/default/1394400648986432835' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-1474281039'/></entry><entry><id>tag:blogger.com,1999:blog-8837899541977019574.post-3279803637985676871</id><published>2011-09-02T22:17:55.223+02:00</published><updated>2011-09-02T22:17:55.223+02:00</updated><title type='text'>Still to use XE2 myself but it occurs to me that e...</title><content type='html'>Still to use XE2 myself but it occurs to me that even &lt;br /&gt;&lt;br /&gt;MyObject.Bind(Src, &amp;#39;SomeBooleanProperty&amp;#39;);&lt;br /&gt;&lt;br /&gt;makes it easier to spot necessary name changes than a TDBEdit.FieldName property inside the object inspector.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8837899541977019574/1394400648986432835/comments/default/3279803637985676871'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8837899541977019574/1394400648986432835/comments/default/3279803637985676871'/><link rel='alternate' type='text/html' href='http://delphi.fosdal.com/2011/05/finding-yourself-in-property-bind.html?showComment=1314994675223#c3279803637985676871' title=''/><author><name>Lachlan</name><uri>http://www.blogger.com/profile/05666168623106775966</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://delphi.fosdal.com/2011/05/finding-yourself-in-property-bind.html' ref='tag:blogger.com,1999:blog-8837899541977019574.post-1394400648986432835' source='http://www.blogger.com/feeds/8837899541977019574/posts/default/1394400648986432835' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-124620611'/></entry><entry><id>tag:blogger.com,1999:blog-8837899541977019574.post-7771483442101742393</id><published>2011-09-02T21:37:06.008+02:00</published><updated>2011-09-02T21:37:06.008+02:00</updated><title type='text'>I haven&amp;#39;t really spent much time with TValue, ...</title><content type='html'>I haven&amp;#39;t really spent much time with TValue, so that is probably something that I should look at closer. &lt;br /&gt;&lt;br /&gt;I probably also should expand&lt;br /&gt;IT - InputType&lt;br /&gt;SVT - SourceValueType&lt;br /&gt;CVT - ControlValueType&lt;br /&gt;&lt;br /&gt;There still is a few &amp;quot;secrets&amp;quot; to this that I haven&amp;#39;t revealed, which hopefully will explain the heavy use of parameters.&lt;br /&gt;&lt;br /&gt;The goal is to have something that empower you to create smart dialogs with a relatively limited amount of code.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8837899541977019574/914727167925884501/comments/default/7771483442101742393'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8837899541977019574/914727167925884501/comments/default/7771483442101742393'/><link rel='alternate' type='text/html' href='http://delphi.fosdal.com/2011/09/forms-and-data-entry-validation-part-1.html?showComment=1314992226008#c7771483442101742393' title=''/><author><name>Lars Fosdal</name><uri>http://www.blogger.com/profile/05635001623287214775</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_88YafEh-VIM/SgNv2CGRyaI/AAAAAAAABN0/nBOvRg9UdaM/S220/113x150.jpg'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://delphi.fosdal.com/2011/09/forms-and-data-entry-validation-part-1.html' ref='tag:blogger.com,1999:blog-8837899541977019574.post-914727167925884501' source='http://www.blogger.com/feeds/8837899541977019574/posts/default/914727167925884501' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-1474281039'/></entry><entry><id>tag:blogger.com,1999:blog-8837899541977019574.post-4855717836749449175</id><published>2011-09-02T17:07:27.534+02:00</published><updated>2011-09-02T17:07:27.534+02:00</updated><title type='text'>I have to agree with you. Actually LiveBinding doe...</title><content type='html'>I have to agree with you. Actually LiveBinding does not deserve the binding in its name because it&amp;#39;s implementation is just a shame compared to equal solutions in other languages.&lt;br /&gt;&lt;br /&gt;I don&amp;#39;t know what to think of your implementation but from just looking at the code I expect a huge bunch of binding code in the end. Also I think you are overusing generics here (not to mention the non telling names for your different type parameters). Then again you implement specific classes for like integer, string and so on where you could actually benefit from the generics if you would use TValue (don&amp;#39;t tell me it&amp;#39;s slow, we are talking about GUI) Actually the way you are going could even be implemented in Delphi 7 or earlier without using generics.&lt;br /&gt;&lt;br /&gt;While I agree that the string approach is not desirable it cannot be don&amp;#39;t any different right now if you want to write your software in a declarative way. Personally I don&amp;#39;t want to write actual &amp;quot;classic&amp;quot; code to bind some Lastname property to a usercontrol. I just want to define it somewhere, be it naming the control Lastname, Person_Lastname or in any different declarative way. Because that in the end leads to reusable code and that can be shared for multiple projects (&amp;quot;Hey, look, I can reuse my EditUser Dialog&amp;quot;) or for different UI elements (&amp;quot;Wow, Bob just created this new awesome twinkling FireMonkey User Dialog with rotating edits...&amp;quot;)</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8837899541977019574/914727167925884501/comments/default/4855717836749449175'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8837899541977019574/914727167925884501/comments/default/4855717836749449175'/><link rel='alternate' type='text/html' href='http://delphi.fosdal.com/2011/09/forms-and-data-entry-validation-part-1.html?showComment=1314976047534#c4855717836749449175' title=''/><author><name>Stefan Glienke</name><uri>http://www.blogger.com/profile/09320735081289619570</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://delphi.fosdal.com/2011/09/forms-and-data-entry-validation-part-1.html' ref='tag:blogger.com,1999:blog-8837899541977019574.post-914727167925884501' source='http://www.blogger.com/feeds/8837899541977019574/posts/default/914727167925884501' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-1586496343'/></entry></feed>
