<?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-7022755517551007355.comments</id><updated>2012-05-11T19:12:08.860+02:00</updated><category term='Redes'/><category term='Graph Visualization'/><category term='bugs'/><category term='Lazarus'/><category term='R2build'/><category term='Object oriented programming'/><category term='Files'/><category term='Alpha-beta pruning'/><category term='Windows'/><category term='NAS'/><category term='DBase'/><category term='Syntax Highlighting'/><category term='Simuladores'/><category term='RSA'/><category term='JQuery'/><category term='inheritance'/><category term='TDD'/><category term='Trac'/><category term='WMI'/><category term='Backup'/><category term='Encryption Algorithms'/><category term='University'/><category term='OLE'/><category term='Delphi'/><category term='Digital Identity'/><category term='Penjili'/><category term='AGILE'/><category term='Persistence'/><category term='IPTC'/><category term='Services'/><category term='Entrepreneur'/><category term='Subversion'/><category term='UTF-8'/><category term='Dijkstra'/><category term='Diaspora'/><category term='Photography'/><category term='Prim Algorithm'/><category term='Scada'/><category term='Perl'/><category term='DevExpress'/><category term='Concordion'/><category term='Fuzzy'/><category term='Extreme Programming'/><category term='Prezi'/><category term='Zaluum'/><category term='Compression'/><category term='Google SketchUp'/><category term='VBA'/><category term='Unicode'/><category term='AspectJ'/><category term='flickr'/><category term='Eclipse'/><category term='Scrum'/><category term='CruiseControl'/><category term='TFN'/><category term='redmine'/><category term='J2EE'/><category term='JEDI'/><category term='Free Pascal'/><category term='.NET'/><category term='Excel'/><category term='Death March'/><category term='ruby'/><category term='gnuplot'/><category term='QR2'/><category term='Cryptography'/><category term='Python'/><category term='fundamental rights'/><category term='VLO Framework'/><category term='Microsoft'/><category term='Currency'/><category term='English'/><category term='Google insight'/><category term='Matlab'/><category term='OpenSSL'/><category term='Mock'/><category term='Indy'/><category term='Abstract Factory'/><category term='lua'/><category term='ebook'/><category term='Direct2D'/><category term='Steve Jobs'/><category term='Artificial Intelligence'/><category term='Videos'/><category term='Access'/><category term='Kanban'/><category term='Scripts'/><category term='Processing'/><category term='Tron'/><category term='Speech SDK'/><category term='SSL'/><category term='Components'/><category term='email signature'/><category term='JSON'/><category term='Pair Programming'/><category term='Facebook'/><category term='Servlet'/><category term='Routes'/><category term='Icons'/><category term='Base64'/><category term='Peaberry'/><category term='Molecules'/><category term='Continuous Integration'/><category term='Certification'/><category term='Software configuration'/><category term='Profiling'/><category term='Cloud Computing'/><category term='Debian'/><category term='EADS'/><category term='Google wave'/><category term='Jobs'/><category term='Image processing'/><category term='InnoSetup'/><category term='PCB'/><category term='Google'/><category term='JDBC'/><category term='Open Source'/><category term='PHP'/><category term='copyright'/><category term='Atom table'/><category term='Google Chrome'/><category term='Chaining Method'/><category term='neuroplasticity'/><category term='XML-RPC'/><category term='Genetic Algorithms'/><category term='TBookMark'/><category term='twitter'/><category term='Interface oriented programming'/><category term='Tools'/><category term='Data Recovery'/><category term='Hardware'/><category term='Subclipse'/><category term='Ubuntu'/><category term='film'/><category term='communications'/><category term='Advanced Encryption Standard'/><category term='wetware'/><category term='TED'/><category term='Utilities'/><category term='Delphi 2010'/><category term='NetStat'/><category term='Delphi XE'/><category term='SQL'/><category term='Regular Expressions'/><category term='Jflex'/><category term='FIT'/><category term='Hibernate'/><category term='Geek'/><category term='Kernel'/><category term='Parsing'/><category term='Skills'/><category term='Thiessen'/><category term='ReportBuilder'/><category term='Productivity'/><category term='Flash'/><category term='RSS'/><category term='Computational geometry'/><category term='UOC'/><category term='ActiveX'/><category term='Visprint'/><category term='Ribbon Controls'/><category term='News'/><category term='Pragmatic Programming'/><category term='LINQ'/><category term='TStringGrid'/><category term='MySQL'/><category term='DLL'/><category term='ZeosDBO'/><category term='XML'/><category term='Fractals'/><category term='Extensions'/><category term='Blogger'/><category term='TKinter'/><category term='Vijeo Citect'/><category term='Refactoring'/><category term='social networks'/><category term='Compilers'/><category term='DUnit'/><category term='CUP'/><category term='Voronoi'/><category term='HTML'/><category term='Pathfinding'/><category term='Debug'/><category term='neuroscience'/><category term='Registro Windows'/><category term='VNC'/><category term='Industrial Automation'/><category term='Hacking'/><category term='JavaScript'/><category term='Exceptions'/><category term='Education'/><category term='Google Maps'/><category term='Windows Mobile'/><category term='Modbus'/><category term='Design patterns'/><category term='MVC'/><category term='Messaging'/><category term='Sharing'/><category term='Dependency Injection'/><category term='Comparison'/><category term='IT'/><category term='SQL Server'/><category term='RTTI'/><category term='P-Zaggy'/><category term='Security'/><category term='Robotics'/><category term='protobuf'/><category term='TCustomAttributes'/><category term='Augmented Reality'/><category term='C++'/><category term='Configuration library'/><category term='WSDL'/><category term='Virtual machines'/><category term='SMTP'/><category term='code rush'/><category term='2D'/><category term='Aspect oriented programming'/><category term='Winsock'/><category term='JUnit'/><category term='Operating System'/><category term='IDE Delphi'/><category term='Data Bases'/><category term='Unit Testing'/><category term='API Windows'/><category term='ADO'/><category term='TCanvas'/><category term='WorkFlow'/><category term='eReader'/><category term='Clipboard'/><category term='JBoss'/><category term='OSGi'/><category term='Internet'/><category term='Physics'/><category term='games'/><category term='ERP'/><category term='Generics'/><category term='Google Noop'/><category term='Java'/><category term='Science'/><category term='Industrial Control'/><category term='Web Service'/><category term='API'/><category term='Force-Directed Graph'/><category term='Delegates'/><category term='SOAP'/><category term='COM Objects'/><category term='Maths'/><category term='Jenkins'/><category term='3D'/><category term='google guice'/><category term='GEO'/><category term='Exif'/><category term='Convex Hull'/><category term='password'/><title type='text'>Random thoughts on coding &amp;amp; technology</title><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://thundaxsoftware.blogspot.com/feeds/comments/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7022755517551007355/comments/default'/><link rel='alternate' type='text/html' href='http://thundaxsoftware.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/7022755517551007355/comments/default?start-index=26&amp;max-results=25'/><author><name>Jordi Corbilla</name><uri>https://profiles.google.com/117780965421418156555</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='//lh4.googleusercontent.com/-2jrT2H0x6To/AAAAAAAAAAI/AAAAAAAAAAA/1xJJi5pArfA/s512-c/photo.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>242</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-7022755517551007355.post-8557328960650738215</id><published>2012-05-11T18:52:24.993+02:00</published><updated>2012-05-11T18:52:24.993+02:00</updated><title type='text'>:o) 
Simple y concreto nos gustó</title><content type='html'>:o) &lt;br /&gt;Simple y concreto nos gustó</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7022755517551007355/4570096008626131071/comments/default/8557328960650738215'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7022755517551007355/4570096008626131071/comments/default/8557328960650738215'/><link rel='alternate' type='text/html' href='http://thundaxsoftware.blogspot.com/2009/07/programacion-en-pareja-pair-programming.html?showComment=1336755144993#c8557328960650738215' title=''/><author><name>ARQUITECTURA DSN_XP</name><uri>http://www.blogger.com/profile/02559729819615891002</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='22' src='http://4.bp.blogspot.com/-Z2NYwnPeWOw/Teb5-eSSqsI/AAAAAAAAAA0/WZ805KLYags/s220/NEWLOG.png'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://thundaxsoftware.blogspot.com/2009/07/programacion-en-pareja-pair-programming.html' ref='tag:blogger.com,1999:blog-7022755517551007355.post-4570096008626131071' source='http://www.blogger.com/feeds/7022755517551007355/posts/default/4570096008626131071' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-2122415536'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.displayTime' value='11 May 2012 18:52'/></entry><entry><id>tag:blogger.com,1999:blog-7022755517551007355.post-3238234143988309108</id><published>2012-05-04T04:47:48.022+02:00</published><updated>2012-05-04T04:47:48.022+02:00</updated><title type='text'>any way very good work !</title><content type='html'>any way very good work !</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7022755517551007355/8924602738530297900/comments/default/3238234143988309108'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7022755517551007355/8924602738530297900/comments/default/3238234143988309108'/><link rel='alternate' type='text/html' href='http://thundaxsoftware.blogspot.com/2009/08/implementacion-del-netstat-con-delphi.html?showComment=1336099668022#c3238234143988309108' title=''/><author><name>Anna</name><uri>http://www.blogger.com/profile/17366783144384995061</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://thundaxsoftware.blogspot.com/2009/08/implementacion-del-netstat-con-delphi.html' ref='tag:blogger.com,1999:blog-7022755517551007355.post-8924602738530297900' source='http://www.blogger.com/feeds/7022755517551007355/posts/default/8924602738530297900' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-564152155'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.displayTime' value='4 May 2012 04:47'/></entry><entry><id>tag:blogger.com,1999:blog-7022755517551007355.post-2277028083669216513</id><published>2012-05-04T04:47:01.987+02:00</published><updated>2012-05-04T04:47:01.987+02:00</updated><title type='text'>Hello... 

Thanks for this info it&amp;#39;s dificult ...</title><content type='html'>Hello... &lt;br /&gt;&lt;br /&gt;Thanks for this info it&amp;#39;s dificult to find info on it over the web... &lt;br /&gt;&lt;br /&gt;Any way i am making a little tool for me under delphi to monitor some applications connections.  &lt;br /&gt;&lt;br /&gt;as i am a newbie it&amp;#39;s difficult for me to reproduce your &amp;quot;Thundax Netstat&amp;quot; could you please help me by providing me the sources ? &lt;br /&gt;&lt;br /&gt;intikaa@hotmail.com&lt;br /&gt;&lt;br /&gt;Thanks a lot !!!!!!!!</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7022755517551007355/8924602738530297900/comments/default/2277028083669216513'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7022755517551007355/8924602738530297900/comments/default/2277028083669216513'/><link rel='alternate' type='text/html' href='http://thundaxsoftware.blogspot.com/2009/08/implementacion-del-netstat-con-delphi.html?showComment=1336099621987#c2277028083669216513' title=''/><author><name>Anna</name><uri>http://www.blogger.com/profile/17366783144384995061</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://thundaxsoftware.blogspot.com/2009/08/implementacion-del-netstat-con-delphi.html' ref='tag:blogger.com,1999:blog-7022755517551007355.post-8924602738530297900' source='http://www.blogger.com/feeds/7022755517551007355/posts/default/8924602738530297900' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-564152155'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.displayTime' value='4 May 2012 04:47'/></entry><entry><id>tag:blogger.com,1999:blog-7022755517551007355.post-8563778343122736283</id><published>2012-04-15T01:59:20.632+02:00</published><updated>2012-04-15T01:59:20.632+02:00</updated><title type='text'>As I googled yes, but all the classes I search ret...</title><content type='html'>As I googled yes, but all the classes I search returned nothing, also tried using the class delphi URLMON, so you do not know which service passes, passing only Safari would be the same with other browsers (Firefox, Internet Explorer) but also did not .</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7022755517551007355/4623470975708567912/comments/default/8563778343122736283'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7022755517551007355/4623470975708567912/comments/default/8563778343122736283'/><link rel='alternate' type='text/html' href='http://thundaxsoftware.blogspot.com/2011/09/get-chrome-active-tab-url-using-delphi.html?showComment=1334447960632#c8563778343122736283' title=''/><author><name>kernel</name><uri>http://www.blogger.com/profile/00531749256931520954</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://thundaxsoftware.blogspot.com/2011/09/get-chrome-active-tab-url-using-delphi.html' ref='tag:blogger.com,1999:blog-7022755517551007355.post-4623470975708567912' source='http://www.blogger.com/feeds/7022755517551007355/posts/default/4623470975708567912' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-1123120167'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.displayTime' value='15 April 2012 01:59'/></entry><entry><id>tag:blogger.com,1999:blog-7022755517551007355.post-4631535738918280713</id><published>2012-04-15T00:37:29.479+02:00</published><updated>2012-04-15T00:37:29.479+02:00</updated><title type='text'>Sorry but only works for Chrome. I have never delv...</title><content type='html'>Sorry but only works for Chrome. I have never delved into detail with Safari but I assume it should work in a similar fashion way.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7022755517551007355/4623470975708567912/comments/default/4631535738918280713'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7022755517551007355/4623470975708567912/comments/default/4631535738918280713'/><link rel='alternate' type='text/html' href='http://thundaxsoftware.blogspot.com/2011/09/get-chrome-active-tab-url-using-delphi.html?showComment=1334443049479#c4631535738918280713' title=''/><link rel='related' type='application/atom+xml' href='http://www.blogger.com/feeds/7022755517551007355/4623470975708567912/comments/default/5077078311804527352'/><author><name>Jordi Corbilla</name><uri>http://www.blogger.com/profile/15899608947597831029</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='11480731972957734083'/><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-2jrT2H0x6To/AAAAAAAAAAI/AAAAAAAAAAA/1xJJi5pArfA/s512-c/photo.jpg'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://thundaxsoftware.blogspot.com/2011/09/get-chrome-active-tab-url-using-delphi.html' ref='tag:blogger.com,1999:blog-7022755517551007355.post-4623470975708567912' source='http://www.blogger.com/feeds/7022755517551007355/posts/default/4623470975708567912' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-1184337781'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.displayTime' value='15 April 2012 00:37'/></entry><entry><id>tag:blogger.com,1999:blog-7022755517551007355.post-5077078311804527352</id><published>2012-04-14T23:36:58.995+02:00</published><updated>2012-04-14T23:36:58.995+02:00</updated><title type='text'>Good Evening, I wonder if you&amp;#39;re the same func...</title><content type='html'>Good Evening, I wonder if you&amp;#39;re the same function for Safari.&lt;br /&gt;thank you</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7022755517551007355/4623470975708567912/comments/default/5077078311804527352'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7022755517551007355/4623470975708567912/comments/default/5077078311804527352'/><link rel='alternate' type='text/html' href='http://thundaxsoftware.blogspot.com/2011/09/get-chrome-active-tab-url-using-delphi.html?showComment=1334439418995#c5077078311804527352' title=''/><author><name>kernel</name><uri>http://www.blogger.com/profile/00531749256931520954</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://thundaxsoftware.blogspot.com/2011/09/get-chrome-active-tab-url-using-delphi.html' ref='tag:blogger.com,1999:blog-7022755517551007355.post-4623470975708567912' source='http://www.blogger.com/feeds/7022755517551007355/posts/default/4623470975708567912' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-1123120167'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.displayTime' value='14 April 2012 23:36'/></entry><entry><id>tag:blogger.com,1999:blog-7022755517551007355.post-8569415430754506116</id><published>2012-04-14T19:57:07.887+02:00</published><updated>2012-04-14T19:57:07.887+02:00</updated><title type='text'>Thank you.</title><content type='html'>Thank you.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7022755517551007355/702232974508792043/comments/default/8569415430754506116'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7022755517551007355/702232974508792043/comments/default/8569415430754506116'/><link rel='alternate' type='text/html' href='http://thundaxsoftware.blogspot.com/2010/01/monitoring-processes-with-delphi.html?showComment=1334426227887#c8569415430754506116' title=''/><author><name>menjaraz</name><uri>http://www.blogger.com/profile/00281291375660284272</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://thundaxsoftware.blogspot.com/2010/01/monitoring-processes-with-delphi.html' ref='tag:blogger.com,1999:blog-7022755517551007355.post-702232974508792043' source='http://www.blogger.com/feeds/7022755517551007355/posts/default/702232974508792043' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-2384665'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.displayTime' value='14 April 2012 19:57'/></entry><entry><id>tag:blogger.com,1999:blog-7022755517551007355.post-3670178313273335808</id><published>2012-04-14T17:16:00.962+02:00</published><updated>2012-04-14T17:16:00.962+02:00</updated><title type='text'>Done!</title><content type='html'>Done!</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7022755517551007355/702232974508792043/comments/default/3670178313273335808'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7022755517551007355/702232974508792043/comments/default/3670178313273335808'/><link rel='alternate' type='text/html' href='http://thundaxsoftware.blogspot.com/2010/01/monitoring-processes-with-delphi.html?showComment=1334416560962#c3670178313273335808' title=''/><link rel='related' type='application/atom+xml' href='http://www.blogger.com/feeds/7022755517551007355/702232974508792043/comments/default/5587691673475379495'/><author><name>Jordi Corbilla</name><uri>http://www.blogger.com/profile/15899608947597831029</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='11480731972957734083'/><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-2jrT2H0x6To/AAAAAAAAAAI/AAAAAAAAAAA/1xJJi5pArfA/s512-c/photo.jpg'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://thundaxsoftware.blogspot.com/2010/01/monitoring-processes-with-delphi.html' ref='tag:blogger.com,1999:blog-7022755517551007355.post-702232974508792043' source='http://www.blogger.com/feeds/7022755517551007355/posts/default/702232974508792043' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-1184337781'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.displayTime' value='14 April 2012 17:16'/></entry><entry><id>tag:blogger.com,1999:blog-7022755517551007355.post-5587691673475379495</id><published>2012-04-14T17:05:00.219+02:00</published><updated>2012-04-14T17:05:00.219+02:00</updated><title type='text'>&amp;quot;asmProfiler&amp;quot; and &amp;quot;YAPM&amp;quot; point...</title><content type='html'>&amp;quot;asmProfiler&amp;quot; and &amp;quot;YAPM&amp;quot; point to the same url. You should fix YAPM&amp;#39;s link.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7022755517551007355/702232974508792043/comments/default/5587691673475379495'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7022755517551007355/702232974508792043/comments/default/5587691673475379495'/><link rel='alternate' type='text/html' href='http://thundaxsoftware.blogspot.com/2010/01/monitoring-processes-with-delphi.html?showComment=1334415900219#c5587691673475379495' title=''/><author><name>menjaraz</name><uri>http://www.blogger.com/profile/00281291375660284272</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://thundaxsoftware.blogspot.com/2010/01/monitoring-processes-with-delphi.html' ref='tag:blogger.com,1999:blog-7022755517551007355.post-702232974508792043' source='http://www.blogger.com/feeds/7022755517551007355/posts/default/702232974508792043' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-2384665'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.displayTime' value='14 April 2012 17:05'/></entry><entry><id>tag:blogger.com,1999:blog-7022755517551007355.post-4458417266863915748</id><published>2012-04-11T13:38:54.299+02:00</published><updated>2012-04-11T13:38:54.299+02:00</updated><title type='text'>Brilliant Stefan. I&amp;#39;ve just seen the example a...</title><content type='html'>Brilliant Stefan. I&amp;#39;ve just seen the example and this is what I was trying to achieve!.&lt;br /&gt;&lt;br /&gt;Thanks!.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7022755517551007355/3061345913870771758/comments/default/4458417266863915748'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7022755517551007355/3061345913870771758/comments/default/4458417266863915748'/><link rel='alternate' type='text/html' href='http://thundaxsoftware.blogspot.com/2012/04/dunit-and-tcustomattributes.html?showComment=1334144334299#c4458417266863915748' title=''/><link rel='related' type='application/atom+xml' href='http://www.blogger.com/feeds/7022755517551007355/3061345913870771758/comments/default/7354719036645137969'/><author><name>Jordi Corbilla</name><uri>http://www.blogger.com/profile/15899608947597831029</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='11480731972957734083'/><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-2jrT2H0x6To/AAAAAAAAAAI/AAAAAAAAAAA/1xJJi5pArfA/s512-c/photo.jpg'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://thundaxsoftware.blogspot.com/2012/04/dunit-and-tcustomattributes.html' ref='tag:blogger.com,1999:blog-7022755517551007355.post-3061345913870771758' source='http://www.blogger.com/feeds/7022755517551007355/posts/default/3061345913870771758' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-1184337781'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.displayTime' value='11 April 2012 13:38'/></entry><entry><id>tag:blogger.com,1999:blog-7022755517551007355.post-1651458330429505277</id><published>2012-04-11T13:07:29.817+02:00</published><updated>2012-04-11T13:07:29.817+02:00</updated><title type='text'>Thanks!</title><content type='html'>Thanks!</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7022755517551007355/8894917063926777233/comments/default/1651458330429505277'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7022755517551007355/8894917063926777233/comments/default/1651458330429505277'/><link rel='alternate' type='text/html' href='http://thundaxsoftware.blogspot.com/2011/09/my-first-google-chrome-extension-get.html?showComment=1334142449817#c1651458330429505277' title=''/><link rel='related' type='application/atom+xml' href='http://www.blogger.com/feeds/7022755517551007355/8894917063926777233/comments/default/4978998480154447146'/><author><name>Jordi Corbilla</name><uri>http://www.blogger.com/profile/15899608947597831029</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='11480731972957734083'/><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-2jrT2H0x6To/AAAAAAAAAAI/AAAAAAAAAAA/1xJJi5pArfA/s512-c/photo.jpg'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://thundaxsoftware.blogspot.com/2011/09/my-first-google-chrome-extension-get.html' ref='tag:blogger.com,1999:blog-7022755517551007355.post-8894917063926777233' source='http://www.blogger.com/feeds/7022755517551007355/posts/default/8894917063926777233' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-1184337781'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.displayTime' value='11 April 2012 13:07'/></entry><entry><id>tag:blogger.com,1999:blog-7022755517551007355.post-4909862868400086000</id><published>2012-04-11T12:20:07.661+02:00</published><updated>2012-04-11T12:20:07.661+02:00</updated><title type='text'>I just commited an example showing what I meant. A...</title><content type='html'>I just commited an example showing what I meant. As you can see it has exactly the same functionality as your example but it requires much less writing.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7022755517551007355/3061345913870771758/comments/default/4909862868400086000'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7022755517551007355/3061345913870771758/comments/default/4909862868400086000'/><link rel='alternate' type='text/html' href='http://thundaxsoftware.blogspot.com/2012/04/dunit-and-tcustomattributes.html?showComment=1334139607661#c4909862868400086000' title=''/><link rel='related' type='application/atom+xml' href='http://www.blogger.com/feeds/7022755517551007355/3061345913870771758/comments/default/7354719036645137969'/><author><name>Stefan Glienke</name><uri>http://www.blogger.com/profile/09320735081289619570</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='12645568825191387447'/><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://thundaxsoftware.blogspot.com/2012/04/dunit-and-tcustomattributes.html' ref='tag:blogger.com,1999:blog-7022755517551007355.post-3061345913870771758' source='http://www.blogger.com/feeds/7022755517551007355/posts/default/3061345913870771758' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-2058525257'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.displayTime' value='11 April 2012 12:20'/></entry><entry><id>tag:blogger.com,1999:blog-7022755517551007355.post-4978998480154447146</id><published>2012-04-11T12:20:05.257+02:00</published><updated>2012-04-11T12:20:05.257+02:00</updated><title type='text'>Thanks!!!!!!!! you are Problem Solver</title><content type='html'>Thanks!!!!!!!! you are Problem Solver</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7022755517551007355/8894917063926777233/comments/default/4978998480154447146'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7022755517551007355/8894917063926777233/comments/default/4978998480154447146'/><link rel='alternate' type='text/html' href='http://thundaxsoftware.blogspot.com/2011/09/my-first-google-chrome-extension-get.html?showComment=1334139605257#c4978998480154447146' title=''/><author><name>Anonymous</name><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://img1.blogblog.com/img/blank.gif'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://thundaxsoftware.blogspot.com/2011/09/my-first-google-chrome-extension-get.html' ref='tag:blogger.com,1999:blog-7022755517551007355.post-8894917063926777233' source='http://www.blogger.com/feeds/7022755517551007355/posts/default/8894917063926777233' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-848097846'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.displayTime' value='11 April 2012 12:20'/></entry><entry><id>tag:blogger.com,1999:blog-7022755517551007355.post-8433754700950022918</id><published>2012-04-10T20:57:38.669+02:00</published><updated>2012-04-10T20:57:38.669+02:00</updated><title type='text'>Thanks Stefan!.

I&amp;#39;m sure that in the end we c...</title><content type='html'>Thanks Stefan!.&lt;br /&gt;&lt;br /&gt;I&amp;#39;m sure that in the end we can get something really interesting. I&amp;#39;ll give a try to your solution and see how can I use it. I&amp;#39;m still thinking of building a lightweight test framework to run test cases using TCustomAttributes as from my point of view I think it is better using the attribute rather than coding a new test. I&amp;#39;m thinking about the login case; imagine we have the Login(user pass) method which it&amp;#39;s a simple method but we want to test it against different users. &lt;br /&gt;So instead of writing a loop inside the test through all the users, I like the idea of leaving the responsibility to the attribute.&lt;br /&gt;Anyway, I&amp;#39;m still thinking on this as I&amp;#39;m trying to make my unit tests as more readable as possible.&lt;br /&gt;&lt;br /&gt;Jordi</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7022755517551007355/3061345913870771758/comments/default/8433754700950022918'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7022755517551007355/3061345913870771758/comments/default/8433754700950022918'/><link rel='alternate' type='text/html' href='http://thundaxsoftware.blogspot.com/2012/04/dunit-and-tcustomattributes.html?showComment=1334084258669#c8433754700950022918' title=''/><link rel='related' type='application/atom+xml' href='http://www.blogger.com/feeds/7022755517551007355/3061345913870771758/comments/default/7354719036645137969'/><author><name>Jordi Corbilla</name><uri>http://www.blogger.com/profile/15899608947597831029</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='11480731972957734083'/><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-2jrT2H0x6To/AAAAAAAAAAI/AAAAAAAAAAA/1xJJi5pArfA/s512-c/photo.jpg'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://thundaxsoftware.blogspot.com/2012/04/dunit-and-tcustomattributes.html' ref='tag:blogger.com,1999:blog-7022755517551007355.post-3061345913870771758' source='http://www.blogger.com/feeds/7022755517551007355/posts/default/3061345913870771758' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-1184337781'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.displayTime' value='10 April 2012 20:57'/></entry><entry><id>tag:blogger.com,1999:blog-7022755517551007355.post-8134749722174941094</id><published>2012-04-10T20:26:18.279+02:00</published><updated>2012-04-10T20:26:18.279+02:00</updated><title type='text'>Thanks, glad you like it ;)

With my solution you ...</title><content type='html'>Thanks, glad you like it ;)&lt;br /&gt;&lt;br /&gt;With my solution you can easily inherit your attribute classes from TestCaseAttribute and override the constructor. Fill FValues with the passed arguments and you are done. Everything else is handled by the framework.&lt;br /&gt;&lt;br /&gt;That reduces the actual implementation to 4 lines for each attribute (1 SetLength and 3 Assignments) and zero lines inside the test method itself which then just gets some parameters.&lt;br /&gt;&lt;br /&gt;P.S. Be careful with the types you use in the arguments. Turned out variants are kinda broken: http://qc.embarcadero.com/wc/qcmain.aspx?d=104778</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7022755517551007355/3061345913870771758/comments/default/8134749722174941094'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7022755517551007355/3061345913870771758/comments/default/8134749722174941094'/><link rel='alternate' type='text/html' href='http://thundaxsoftware.blogspot.com/2012/04/dunit-and-tcustomattributes.html?showComment=1334082378279#c8134749722174941094' title=''/><link rel='related' type='application/atom+xml' href='http://www.blogger.com/feeds/7022755517551007355/3061345913870771758/comments/default/7354719036645137969'/><author><name>Stefan Glienke</name><uri>http://www.blogger.com/profile/09320735081289619570</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='12645568825191387447'/><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://thundaxsoftware.blogspot.com/2012/04/dunit-and-tcustomattributes.html' ref='tag:blogger.com,1999:blog-7022755517551007355.post-3061345913870771758' source='http://www.blogger.com/feeds/7022755517551007355/posts/default/3061345913870771758' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-2058525257'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.displayTime' value='10 April 2012 20:26'/></entry><entry><id>tag:blogger.com,1999:blog-7022755517551007355.post-7350266924775831206</id><published>2012-04-10T14:15:03.254+02:00</published><updated>2012-04-10T14:15:03.254+02:00</updated><title type='text'>Thanks for your comment Stefan, it is always appre...</title><content type='html'>Thanks for your comment Stefan, it is always appreciated. What I can say?, I take my hat off to you. I have reviewed your solution for DSharp.Testing.DUnit and I think it is brilliant.&lt;br /&gt;I&amp;#39;m glad that at least we think alike as I wanted to achieve the same behaviour as C Sharp and you were able to mimic it better.&lt;br /&gt;&lt;br /&gt;I agree with you on the only drawback of using your solution as it relies on the user correctly inputting the semicolon separated values. As per my solution I rely on the TCustomAttribute so there is no misunderstanding as to what values are acceptable within the attribute.&lt;br /&gt;&lt;br /&gt;Jordi</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7022755517551007355/3061345913870771758/comments/default/7350266924775831206'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7022755517551007355/3061345913870771758/comments/default/7350266924775831206'/><link rel='alternate' type='text/html' href='http://thundaxsoftware.blogspot.com/2012/04/dunit-and-tcustomattributes.html?showComment=1334060103254#c7350266924775831206' title=''/><link rel='related' type='application/atom+xml' href='http://www.blogger.com/feeds/7022755517551007355/3061345913870771758/comments/default/7354719036645137969'/><author><name>Jordi Corbilla</name><uri>http://www.blogger.com/profile/15899608947597831029</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='11480731972957734083'/><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-2jrT2H0x6To/AAAAAAAAAAI/AAAAAAAAAAA/1xJJi5pArfA/s512-c/photo.jpg'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://thundaxsoftware.blogspot.com/2012/04/dunit-and-tcustomattributes.html' ref='tag:blogger.com,1999:blog-7022755517551007355.post-3061345913870771758' source='http://www.blogger.com/feeds/7022755517551007355/posts/default/3061345913870771758' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-1184337781'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.displayTime' value='10 April 2012 14:15'/></entry><entry><id>tag:blogger.com,1999:blog-7022755517551007355.post-7354719036645137969</id><published>2012-04-09T23:26:07.782+02:00</published><updated>2012-04-09T23:26:07.782+02:00</updated><title type='text'>The problem with your approach is that it requires...</title><content type='html'>The problem with your approach is that it requires putting way to much stuff inside the test method itself like getting out the passed values itself.&lt;br /&gt;&lt;br /&gt;Also it does not improve DUnit itself which is only able to execute unparameterized methods.&lt;br /&gt;&lt;br /&gt;I did this while ago when I saw a question for exactly that on SO (http://stackoverflow.com/questions/8999945/can-i-write-parameterized-tests-in-dunit)&lt;br /&gt;&lt;br /&gt;The only disadvantage of my solution is because attributes in delphi have very restricted kinds of parameters. Like you cannot have arrays as in .Net. So my solution uses a semicolon separated string to pass the arguments. But you can just extend the attribute class with more constructor overloads if you like.&lt;br /&gt;&lt;br /&gt;That way you can easily write test methods that take parameters and specify the parameters in the attributes as in .Net as you showed at the beginning. And actually it makes the test code itself also a one liner and not a bunch of setup code that you have to write every time.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7022755517551007355/3061345913870771758/comments/default/7354719036645137969'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7022755517551007355/3061345913870771758/comments/default/7354719036645137969'/><link rel='alternate' type='text/html' href='http://thundaxsoftware.blogspot.com/2012/04/dunit-and-tcustomattributes.html?showComment=1334006767782#c7354719036645137969' title=''/><author><name>Stefan Glienke</name><uri>http://www.blogger.com/profile/09320735081289619570</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='12645568825191387447'/><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://thundaxsoftware.blogspot.com/2012/04/dunit-and-tcustomattributes.html' ref='tag:blogger.com,1999:blog-7022755517551007355.post-3061345913870771758' source='http://www.blogger.com/feeds/7022755517551007355/posts/default/3061345913870771758' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-2058525257'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.displayTime' value='9 April 2012 23:26'/></entry><entry><id>tag:blogger.com,1999:blog-7022755517551007355.post-1989814063111420683</id><published>2012-03-27T08:58:31.894+02:00</published><updated>2012-03-27T08:58:31.894+02:00</updated><title type='text'>Yes, sorry, I don&amp;#39;t know what I was thinking!!...</title><content type='html'>Yes, sorry, I don&amp;#39;t know what I was thinking!!!!</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7022755517551007355/2081492977282075589/comments/default/1989814063111420683'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7022755517551007355/2081492977282075589/comments/default/1989814063111420683'/><link rel='alternate' type='text/html' href='http://thundaxsoftware.blogspot.com/2012/03/fluent-interfaces-example-using-delphi.html?showComment=1332831511894#c1989814063111420683' title=''/><link rel='related' type='application/atom+xml' href='http://www.blogger.com/feeds/7022755517551007355/2081492977282075589/comments/default/290711604525856742'/><author><name>Jordi Corbilla</name><uri>http://www.blogger.com/profile/15899608947597831029</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='11480731972957734083'/><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-2jrT2H0x6To/AAAAAAAAAAI/AAAAAAAAAAA/1xJJi5pArfA/s512-c/photo.jpg'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://thundaxsoftware.blogspot.com/2012/03/fluent-interfaces-example-using-delphi.html' ref='tag:blogger.com,1999:blog-7022755517551007355.post-2081492977282075589' source='http://www.blogger.com/feeds/7022755517551007355/posts/default/2081492977282075589' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-1184337781'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.displayTime' value='27 March 2012 08:58'/></entry><entry><id>tag:blogger.com,1999:blog-7022755517551007355.post-4215475848134399737</id><published>2012-03-27T08:22:37.470+02:00</published><updated>2012-03-27T08:22:37.470+02:00</updated><title type='text'>Confusing greek letters? ;) It&amp;#39;s called lambda...</title><content type='html'>Confusing greek letters? ;) It&amp;#39;s called lambda</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7022755517551007355/2081492977282075589/comments/default/4215475848134399737'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7022755517551007355/2081492977282075589/comments/default/4215475848134399737'/><link rel='alternate' type='text/html' href='http://thundaxsoftware.blogspot.com/2012/03/fluent-interfaces-example-using-delphi.html?showComment=1332829357470#c4215475848134399737' title=''/><link rel='related' type='application/atom+xml' href='http://www.blogger.com/feeds/7022755517551007355/2081492977282075589/comments/default/290711604525856742'/><author><name>Stefan Glienke</name><uri>http://www.blogger.com/profile/09320735081289619570</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='12645568825191387447'/><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://thundaxsoftware.blogspot.com/2012/03/fluent-interfaces-example-using-delphi.html' ref='tag:blogger.com,1999:blog-7022755517551007355.post-2081492977282075589' source='http://www.blogger.com/feeds/7022755517551007355/posts/default/2081492977282075589' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-2058525257'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.displayTime' value='27 March 2012 08:22'/></entry><entry><id>tag:blogger.com,1999:blog-7022755517551007355.post-5854815602091181757</id><published>2012-03-26T20:24:05.712+02:00</published><updated>2012-03-26T20:24:05.712+02:00</updated><title type='text'>Thanks SKamradt,

That&amp;#39;s the beauty of this me...</title><content type='html'>Thanks SKamradt,&lt;br /&gt;&lt;br /&gt;That&amp;#39;s the beauty of this method, that you can use whichever suits you best.&lt;br /&gt;&lt;br /&gt;You can use simple declaration like you suggested:&lt;br /&gt;&lt;br /&gt;iQueryList := TQueryList&amp;lt;&amp;gt;.New(); or ever .Create();&lt;br /&gt;and then operate with the variable:&lt;br /&gt;list := iQueryList.List();&lt;br /&gt;&lt;br /&gt;Or do it all together:&lt;br /&gt;list := iQueryList.New.FillList().Where().OrderBy().List;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7022755517551007355/2081492977282075589/comments/default/5854815602091181757'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7022755517551007355/2081492977282075589/comments/default/5854815602091181757'/><link rel='alternate' type='text/html' href='http://thundaxsoftware.blogspot.com/2012/03/fluent-interfaces-example-using-delphi.html?showComment=1332786245712#c5854815602091181757' title=''/><link rel='related' type='application/atom+xml' href='http://www.blogger.com/feeds/7022755517551007355/2081492977282075589/comments/default/6206761706036799782'/><author><name>Jordi Corbilla</name><uri>http://www.blogger.com/profile/15899608947597831029</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='11480731972957734083'/><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-2jrT2H0x6To/AAAAAAAAAAI/AAAAAAAAAAA/1xJJi5pArfA/s512-c/photo.jpg'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://thundaxsoftware.blogspot.com/2012/03/fluent-interfaces-example-using-delphi.html' ref='tag:blogger.com,1999:blog-7022755517551007355.post-2081492977282075589' source='http://www.blogger.com/feeds/7022755517551007355/posts/default/2081492977282075589' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-1184337781'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.displayTime' value='26 March 2012 20:24'/></entry><entry><id>tag:blogger.com,1999:blog-7022755517551007355.post-4636358161014044305</id><published>2012-03-26T20:21:24.846+02:00</published><updated>2012-03-26T20:21:24.846+02:00</updated><title type='text'>Hi Stefan,

Thanks for your comment. Maybe you are...</title><content type='html'>Hi Stefan,&lt;br /&gt;&lt;br /&gt;Thanks for your comment. Maybe you are right and my examples try to illustrate too much but this was just an overview. Maybe those are not the best examples but at least those are a solution for an specific problem.&lt;br /&gt;About the &amp;quot;Where&amp;quot; clause you are right, it is pointless, but I wanted to show that you can chain several &amp;quot;wheres&amp;quot; with different arguments and your final result would be affected as well.&lt;br /&gt;&lt;br /&gt;Maybe it would have been clearer using a simple example like this:&lt;br /&gt;for item in IqueryList.Where(&amp;#39;Dublin&amp;#39;).List do&lt;br /&gt;    WriteLn(item);&lt;br /&gt;&lt;br /&gt;But then, you can ask, why instead of using a parameter &amp;quot;Dublin&amp;quot; we can write Delphi code to filter the query? That&amp;#39;s the reason for the delegates. With this configuration the user can highly customize the query using &amp;quot;Delphi code&amp;quot; and the control of the query relies on it. That&amp;#39;s the aim of LINQ. I&amp;#39;m not inventing anything new, I&amp;#39;m just trying to mimic what I learnt from LINQ and how they started using generics, delegates and extension methods in C#. Maybe I should post about it as at least to me it helped me a lot to understand the magic  - because at the beginning everything was like magic, just writing something like:&lt;br /&gt;&lt;br /&gt;var Customers = &lt;br /&gt;            from c in customers &lt;br /&gt;            where c.city = &amp;#39;Dublin&amp;#39; &lt;br /&gt;            select c; &lt;br /&gt;&lt;br /&gt;And then when I realised that internally it was using the same as I have described in this post, it helped me to deal with it without tears.&lt;br /&gt;&lt;br /&gt;Jordi</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7022755517551007355/2081492977282075589/comments/default/4636358161014044305'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7022755517551007355/2081492977282075589/comments/default/4636358161014044305'/><link rel='alternate' type='text/html' href='http://thundaxsoftware.blogspot.com/2012/03/fluent-interfaces-example-using-delphi.html?showComment=1332786084846#c4636358161014044305' title=''/><link rel='related' type='application/atom+xml' href='http://www.blogger.com/feeds/7022755517551007355/2081492977282075589/comments/default/4395955372729003918'/><author><name>Jordi Corbilla</name><uri>http://www.blogger.com/profile/15899608947597831029</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='11480731972957734083'/><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-2jrT2H0x6To/AAAAAAAAAAI/AAAAAAAAAAA/1xJJi5pArfA/s512-c/photo.jpg'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://thundaxsoftware.blogspot.com/2012/03/fluent-interfaces-example-using-delphi.html' ref='tag:blogger.com,1999:blog-7022755517551007355.post-2081492977282075589' source='http://www.blogger.com/feeds/7022755517551007355/posts/default/2081492977282075589' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-1184337781'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.displayTime' value='26 March 2012 20:21'/></entry><entry><id>tag:blogger.com,1999:blog-7022755517551007355.post-3341092941731480649</id><published>2012-03-26T20:04:16.806+02:00</published><updated>2012-03-26T20:04:16.806+02:00</updated><title type='text'>Hi Jorge,

Thanks for your comment. Nowadays I&amp;#39...</title><content type='html'>Hi Jorge,&lt;br /&gt;&lt;br /&gt;Thanks for your comment. Nowadays I&amp;#39;m extremely busy but I always have time to publish interesting stuff. I have taken a look at your project and it looks really interesting. I would be more than happy to collaborate in your project! :).</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7022755517551007355/2081492977282075589/comments/default/3341092941731480649'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7022755517551007355/2081492977282075589/comments/default/3341092941731480649'/><link rel='alternate' type='text/html' href='http://thundaxsoftware.blogspot.com/2012/03/fluent-interfaces-example-using-delphi.html?showComment=1332785056806#c3341092941731480649' title=''/><link rel='related' type='application/atom+xml' href='http://www.blogger.com/feeds/7022755517551007355/2081492977282075589/comments/default/78767471794285768'/><author><name>Jordi Corbilla</name><uri>http://www.blogger.com/profile/15899608947597831029</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='11480731972957734083'/><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-2jrT2H0x6To/AAAAAAAAAAI/AAAAAAAAAAA/1xJJi5pArfA/s512-c/photo.jpg'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://thundaxsoftware.blogspot.com/2012/03/fluent-interfaces-example-using-delphi.html' ref='tag:blogger.com,1999:blog-7022755517551007355.post-2081492977282075589' source='http://www.blogger.com/feeds/7022755517551007355/posts/default/2081492977282075589' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-1184337781'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.displayTime' value='26 March 2012 20:04'/></entry><entry><id>tag:blogger.com,1999:blog-7022755517551007355.post-1284124673535538630</id><published>2012-03-26T20:02:28.542+02:00</published><updated>2012-03-26T20:02:28.542+02:00</updated><title type='text'>Hi Jolyon,

Thanks for your comment again, I reall...</title><content type='html'>Hi Jolyon,&lt;br /&gt;&lt;br /&gt;Thanks for your comment again, I really appreciate it. I totally agree with you as to why it would be hardly difficult to debug. My idea would be using this kind of concept in a Framework rather than in production code. At least using Delphi XE, it was quite easy to debug and go through all the delegates. Hopefully one day Embarcadero will apply alpha notation and then we will back on business.&lt;br /&gt;This whole concept was after getting a deep understanding of LINQ and then I decided to go and try to mimic the behaviour using Delphi. Delphi is still way behind but using generics, delegates and chaining methods I was able to mimic the functionality.&lt;br /&gt;&lt;br /&gt;Jordi</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7022755517551007355/2081492977282075589/comments/default/1284124673535538630'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7022755517551007355/2081492977282075589/comments/default/1284124673535538630'/><link rel='alternate' type='text/html' href='http://thundaxsoftware.blogspot.com/2012/03/fluent-interfaces-example-using-delphi.html?showComment=1332784948542#c1284124673535538630' title=''/><link rel='related' type='application/atom+xml' href='http://www.blogger.com/feeds/7022755517551007355/2081492977282075589/comments/default/4317529090404262773'/><author><name>Jordi Corbilla</name><uri>http://www.blogger.com/profile/15899608947597831029</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='11480731972957734083'/><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-2jrT2H0x6To/AAAAAAAAAAI/AAAAAAAAAAA/1xJJi5pArfA/s512-c/photo.jpg'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://thundaxsoftware.blogspot.com/2012/03/fluent-interfaces-example-using-delphi.html' ref='tag:blogger.com,1999:blog-7022755517551007355.post-2081492977282075589' source='http://www.blogger.com/feeds/7022755517551007355/posts/default/2081492977282075589' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-1184337781'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.displayTime' value='26 March 2012 20:02'/></entry><entry><id>tag:blogger.com,1999:blog-7022755517551007355.post-8993055659101454123</id><published>2012-03-26T19:45:23.179+02:00</published><updated>2012-03-26T19:45:23.179+02:00</updated><title type='text'>Thanks Darren,

I also like this kind of declarati...</title><content type='html'>Thanks Darren,&lt;br /&gt;&lt;br /&gt;I also like this kind of declaration as it is fluent and more human readable. (Apart from using delegates which mess a lot with the code). Hopefully Embarcadero will implement Alpha notation in the future and we will be able to write things like:&lt;br /&gt;&lt;br /&gt;for item in IqueryList.Where( s =&amp;gt; s = &amp;#39;Dublin&amp;#39;)do&lt;br /&gt;    WriteLn(item);&lt;br /&gt;&lt;br /&gt;Jordi</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7022755517551007355/2081492977282075589/comments/default/8993055659101454123'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7022755517551007355/2081492977282075589/comments/default/8993055659101454123'/><link rel='alternate' type='text/html' href='http://thundaxsoftware.blogspot.com/2012/03/fluent-interfaces-example-using-delphi.html?showComment=1332783923179#c8993055659101454123' title=''/><link rel='related' type='application/atom+xml' href='http://www.blogger.com/feeds/7022755517551007355/2081492977282075589/comments/default/290711604525856742'/><author><name>Jordi Corbilla</name><uri>http://www.blogger.com/profile/15899608947597831029</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='11480731972957734083'/><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-2jrT2H0x6To/AAAAAAAAAAI/AAAAAAAAAAA/1xJJi5pArfA/s512-c/photo.jpg'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://thundaxsoftware.blogspot.com/2012/03/fluent-interfaces-example-using-delphi.html' ref='tag:blogger.com,1999:blog-7022755517551007355.post-2081492977282075589' source='http://www.blogger.com/feeds/7022755517551007355/posts/default/2081492977282075589' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-1184337781'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.displayTime' value='26 March 2012 19:45'/></entry><entry><id>tag:blogger.com,1999:blog-7022755517551007355.post-6206761706036799782</id><published>2012-03-26T19:16:01.526+02:00</published><updated>2012-03-26T19:16:01.526+02:00</updated><title type='text'>Just because it is fluent doesn&amp;#39;t mean it HAS ...</title><content type='html'>Just because it is fluent doesn&amp;#39;t mean it HAS to be used that way.  It is just as simple to write this as:&lt;br /&gt;&lt;br /&gt; IqueryList := TQueryList;&lt;br /&gt; IqueryList.New();&lt;br /&gt; IqueryList.FillList(....</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7022755517551007355/2081492977282075589/comments/default/6206761706036799782'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7022755517551007355/2081492977282075589/comments/default/6206761706036799782'/><link rel='alternate' type='text/html' href='http://thundaxsoftware.blogspot.com/2012/03/fluent-interfaces-example-using-delphi.html?showComment=1332782161526#c6206761706036799782' title=''/><author><name>SKamradt</name><uri>http://www.blogger.com/profile/16762334852308664245</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://thundaxsoftware.blogspot.com/2012/03/fluent-interfaces-example-using-delphi.html' ref='tag:blogger.com,1999:blog-7022755517551007355.post-2081492977282075589' source='http://www.blogger.com/feeds/7022755517551007355/posts/default/2081492977282075589' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-1656633265'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.displayTime' value='26 March 2012 19:16'/></entry></feed>
