<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-7005051</id><updated>2011-12-15T04:09:11.435+01:00</updated><category term='TWinControl'/><category term='TCheckListBox'/><category term='Mono'/><category term='QC'/><category term='Authenticode'/><category term='VCL'/><category term='delphisvn'/><category term='Subversion'/><category term='PerfMon'/><category term='DataSnap'/><title type='text'>Delphi and stuff</title><subtitle type='html'>Occasional babble mostly related to Embarcadero Delphi</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://tondrej.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7005051/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://tondrej.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>TOndrej</name><uri>http://www.blogger.com/profile/11973677794354930454</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://photos1.blogger.com/blogger/5379/409/320/07-10-06_1529.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>69</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-7005051.post-847832528960024995</id><published>2010-02-15T13:42:00.002+01:00</published><updated>2010-02-15T13:53:25.491+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='TWinControl'/><category scheme='http://www.blogger.com/atom/ns#' term='QC'/><category scheme='http://www.blogger.com/atom/ns#' term='VCL'/><title type='text'>QC82143</title><summary type='text'>I've just submitted QC report 82143 about Controls.TWinControl.ControlAtPos not finding nested child controls.I've found the bug (it seems) when trying to answer this question on Stack Overflow.My suggested fix is included in the description of the report.</summary><link rel='replies' type='application/atom+xml' href='http://tondrej.blogspot.com/feeds/847832528960024995/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7005051&amp;postID=847832528960024995' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7005051/posts/default/847832528960024995'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7005051/posts/default/847832528960024995'/><link rel='alternate' type='text/html' href='http://tondrej.blogspot.com/2010/02/qc82143.html' title='QC82143'/><author><name>TOndrej</name><uri>http://www.blogger.com/profile/11973677794354930454</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://photos1.blogger.com/blogger/5379/409/320/07-10-06_1529.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7005051.post-7523500711669035054</id><published>2008-07-18T19:14:00.003+02:00</published><updated>2008-07-18T19:29:06.737+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Subversion'/><category scheme='http://www.blogger.com/atom/ns#' term='delphisvn'/><title type='text'>delphisvn updated to Subversion 1.5</title><summary type='text'>I've updated delphisvn to use Subversion 1.5.Good news that the official release now finally includes DLLs on Windows.There's only source code for now, a downloadable release will follow.</summary><link rel='related' href='http://sourceforge.net/projects/delphisvn/' title='delphisvn updated to Subversion 1.5'/><link rel='replies' type='application/atom+xml' href='http://tondrej.blogspot.com/feeds/7523500711669035054/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7005051&amp;postID=7523500711669035054' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7005051/posts/default/7523500711669035054'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7005051/posts/default/7523500711669035054'/><link rel='alternate' type='text/html' href='http://tondrej.blogspot.com/2008/07/delphisvn-updated-to-subversion-15.html' title='delphisvn updated to Subversion 1.5'/><author><name>TOndrej</name><uri>http://www.blogger.com/profile/11973677794354930454</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://photos1.blogger.com/blogger/5379/409/320/07-10-06_1529.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7005051.post-554469376218478076</id><published>2007-10-17T17:40:00.000+02:00</published><updated>2007-10-17T20:14:54.994+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Authenticode'/><category scheme='http://www.blogger.com/atom/ns#' term='Mono'/><title type='text'>Code signing large executables</title><summary type='text'>I've been having some trouble signing some of my large (~1.8 GB!) executables. (In case you wonder, they contain a lot of multimedia content packed into a single file for downloading.)The Microsoft Authenticode tools (signcode.exe, signtool.exe) failed with error messages like "Not enough storage is available to process this command". I've also tried signing them programmatically, using the </summary><link rel='replies' type='application/atom+xml' href='http://tondrej.blogspot.com/feeds/554469376218478076/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7005051&amp;postID=554469376218478076' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7005051/posts/default/554469376218478076'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7005051/posts/default/554469376218478076'/><link rel='alternate' type='text/html' href='http://tondrej.blogspot.com/2007/10/code-signing-large-executables.html' title='Code signing large executables'/><author><name>TOndrej</name><uri>http://www.blogger.com/profile/11973677794354930454</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://photos1.blogger.com/blogger/5379/409/320/07-10-06_1529.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7005051.post-1593798034041189070</id><published>2007-10-17T10:48:00.000+02:00</published><updated>2007-10-17T16:43:35.138+02:00</updated><title type='text'>SetToString, StringToSet</title><summary type='text'>The SetToString, StringToSet functions in TypInfo unit take PPropInfo as parameter which means you can only use them with set types for which RTTI (a published property) exists.Here are my versions which take PTypeInfo instead so you can use them with set types in general, even without a published property declared for the type:uses  SysUtils, TypInfo;function GetOrdValue(Info: PTypeInfo; const </summary><link rel='replies' type='application/atom+xml' href='http://tondrej.blogspot.com/feeds/1593798034041189070/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7005051&amp;postID=1593798034041189070' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7005051/posts/default/1593798034041189070'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7005051/posts/default/1593798034041189070'/><link rel='alternate' type='text/html' href='http://tondrej.blogspot.com/2007/10/settostring-stringtoset.html' title='SetToString, StringToSet'/><author><name>TOndrej</name><uri>http://www.blogger.com/profile/11973677794354930454</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://photos1.blogger.com/blogger/5379/409/320/07-10-06_1529.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7005051.post-3466561784072473080</id><published>2007-07-12T17:24:00.000+02:00</published><updated>2007-07-12T17:40:52.881+02:00</updated><title type='text'>QC48959</title><summary type='text'>I've submitted QC report 48959, titled "TCustomProvider destructor does not call UnregisterProvider".In TCustomProvider.Destroy there's some code which assumes that Owner is still assigned during destruction. This, however, is not the case if the provider is being destroyed implicitly because of ownership.Typically, you put provider components directly on your remote data module in which case </summary><link rel='related' href='http://qc.codegear.com/wc/qcmain.aspx?d=48959' title='QC48959'/><link rel='replies' type='application/atom+xml' href='http://tondrej.blogspot.com/feeds/3466561784072473080/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7005051&amp;postID=3466561784072473080' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7005051/posts/default/3466561784072473080'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7005051/posts/default/3466561784072473080'/><link rel='alternate' type='text/html' href='http://tondrej.blogspot.com/2007/07/qc48959.html' title='QC48959'/><author><name>TOndrej</name><uri>http://www.blogger.com/profile/11973677794354930454</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://photos1.blogger.com/blogger/5379/409/320/07-10-06_1529.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7005051.post-2158533278591777550</id><published>2007-06-09T19:29:00.000+02:00</published><updated>2007-10-21T10:13:07.315+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DataSnap'/><title type='text'>DataSnap to the rescue</title><summary type='text'>I'm maintaining a custom setup program used to install applications. In some cases it needs to perform actions which require administrative privileges, e.g. writing into Program Files directory, or modifying the registry under HKEY_LOCAL_MACHINE.On Windows Vista, the privileges can be acquired by elevation. However, elevation actually switches the user context; but the setup program also needs to</summary><link rel='replies' type='application/atom+xml' href='http://tondrej.blogspot.com/feeds/2158533278591777550/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7005051&amp;postID=2158533278591777550' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7005051/posts/default/2158533278591777550'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7005051/posts/default/2158533278591777550'/><link rel='alternate' type='text/html' href='http://tondrej.blogspot.com/2007/06/datasnap-to-rescue.html' title='DataSnap to the rescue'/><author><name>TOndrej</name><uri>http://www.blogger.com/profile/11973677794354930454</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://photos1.blogger.com/blogger/5379/409/320/07-10-06_1529.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7005051.post-1209292743368598487</id><published>2007-05-05T08:35:00.000+02:00</published><updated>2007-05-05T11:02:22.500+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='TCheckListBox'/><category scheme='http://www.blogger.com/atom/ns#' term='QC'/><category scheme='http://www.blogger.com/atom/ns#' term='VCL'/><title type='text'>QC45527</title><summary type='text'>I've submitted QC report 45527 about a small, probably infrequently encountered issue with TCheckListBox: when themes are not used and you're using the Flat style, horizontal scrolling sometimes causes the checkboxes not to be redrawn properly.Attached to the report are more details, screenshots and a sample project.The problem somehow seems to be related to setting the clipping region in </summary><link rel='related' href='http://qc.codegear.com/wc/qcmain.aspx?d=45527' title='QC45527'/><link rel='replies' type='application/atom+xml' href='http://tondrej.blogspot.com/feeds/1209292743368598487/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7005051&amp;postID=1209292743368598487' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7005051/posts/default/1209292743368598487'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7005051/posts/default/1209292743368598487'/><link rel='alternate' type='text/html' href='http://tondrej.blogspot.com/2007/05/qc45527.html' title='QC45527'/><author><name>TOndrej</name><uri>http://www.blogger.com/profile/11973677794354930454</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://photos1.blogger.com/blogger/5379/409/320/07-10-06_1529.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_3WiBCMA-GcU/RjxHmkwMj3I/AAAAAAAAAAc/ieqiW9-5d4g/s72-c/checklst2.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7005051.post-2393332459868475916</id><published>2006-12-22T11:48:00.000+01:00</published><updated>2006-12-22T12:12:31.974+01:00</updated><title type='text'>The missing Import Component Wizard in Turbo Delphi (Win32)</title><summary type='text'>Apparently the Import Component and View Type Library wizards are not enabled in Turbo Delphi (Win32) by default.A workaround has been posted on the newsgroups:Create an empty file named: ATLBASE.H in this directory: $(BDS)\include\atl\</summary><link rel='replies' type='application/atom+xml' href='http://tondrej.blogspot.com/feeds/2393332459868475916/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7005051&amp;postID=2393332459868475916' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7005051/posts/default/2393332459868475916'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7005051/posts/default/2393332459868475916'/><link rel='alternate' type='text/html' href='http://tondrej.blogspot.com/2006/12/missing-import-component-wizard-in.html' title='The missing Import Component Wizard in Turbo Delphi (Win32)'/><author><name>TOndrej</name><uri>http://www.blogger.com/profile/11973677794354930454</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://photos1.blogger.com/blogger/5379/409/320/07-10-06_1529.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_3WiBCMA-GcU/RYu8qGdhz4I/AAAAAAAAAAM/1tQmuROUVgo/s72-c/import.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7005051.post-116646913746429882</id><published>2006-12-18T19:59:00.000+01:00</published><updated>2006-12-18T22:35:11.503+01:00</updated><title type='text'>The missing ActiveX Control Wizard</title><summary type='text'>The ActiveX Control Wizard is missing in Delphi 2006 by default.You can bring it back by adding the following string value in the registry:[HKEY_CURRENT_USER\Software\Borland\BDS\4.0\Type Library]"ActiveXWizard"="True"I've just found it in a comment to QC25012.Also see Delphi 2006 Hidden COM Registry Entries.Regmon reveals another missing registry entry, "InteropCheck"="True", also mentioned here.</summary><link rel='replies' type='application/atom+xml' href='http://tondrej.blogspot.com/feeds/116646913746429882/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7005051&amp;postID=116646913746429882' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7005051/posts/default/116646913746429882'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7005051/posts/default/116646913746429882'/><link rel='alternate' type='text/html' href='http://tondrej.blogspot.com/2006/12/missing-activex-control-wizard.html' title='The missing ActiveX Control Wizard'/><author><name>TOndrej</name><uri>http://www.blogger.com/profile/11973677794354930454</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://photos1.blogger.com/blogger/5379/409/320/07-10-06_1529.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7005051.post-116558649469781725</id><published>2006-12-08T14:41:00.000+01:00</published><updated>2006-12-08T15:01:34.730+01:00</updated><title type='text'>Don't mistake SyncEdit for Refactoring ;-)</title><summary type='text'>Don't mistake Delphi's SyncEdit for Refactoring. (In case you wonder what SyncEdit is, it's invoked by pressing Ctrl+Shift+J on a selected text in the editor. Works in Delphi 2005 and higher.)By doing so I've just introduced a rather obscure bug in my code which took me a while to recognize. ;-)When using SyncEdit, be aware that you're simply doing a search/replace within the selected block of </summary><link rel='replies' type='application/atom+xml' href='http://tondrej.blogspot.com/feeds/116558649469781725/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7005051&amp;postID=116558649469781725' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7005051/posts/default/116558649469781725'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7005051/posts/default/116558649469781725'/><link rel='alternate' type='text/html' href='http://tondrej.blogspot.com/2006/12/dont-mistake-syncedit-for-refactoring.html' title='Don&apos;t mistake SyncEdit for Refactoring ;-)'/><author><name>TOndrej</name><uri>http://www.blogger.com/profile/11973677794354930454</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://photos1.blogger.com/blogger/5379/409/320/07-10-06_1529.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7005051.post-116498522505650163</id><published>2006-12-01T16:00:00.000+01:00</published><updated>2006-12-01T16:04:42.740+01:00</updated><title type='text'>The 2006 Delphi Survey</title><summary type='text'>Here's your chance to let CodeGear know what you would like to see in future versions of Delphi:English version (direct link)BDN article with links to various language versions</summary><link rel='related' href='http://bdn.borland.com/article/33765' title='The 2006 Delphi Survey'/><link rel='replies' type='application/atom+xml' href='http://tondrej.blogspot.com/feeds/116498522505650163/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7005051&amp;postID=116498522505650163' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7005051/posts/default/116498522505650163'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7005051/posts/default/116498522505650163'/><link rel='alternate' type='text/html' href='http://tondrej.blogspot.com/2006/12/2006-delphi-survey.html' title='The 2006 Delphi Survey'/><author><name>TOndrej</name><uri>http://www.blogger.com/profile/11973677794354930454</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://photos1.blogger.com/blogger/5379/409/320/07-10-06_1529.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7005051.post-116393464627943950</id><published>2006-11-19T11:39:00.000+01:00</published><updated>2006-11-20T15:07:07.580+01:00</updated><title type='text'>New default timeouts in IE7 wininet</title><summary type='text'>The new wininet.dll which comes with Internet Explorer 7  uses new default timeouts:INTERNET_OPTION_SEND_TIMEOUT30000 msINTERNET_OPTION_RECEIVE_TIMEOUT30000 ms The good news is that you can now override these values by calling the InternetSetOption API (zero value seems to indicate infinite wait, see this example).In previous versions, InternetSetOption didn't work but at least the default values</summary><link rel='replies' type='application/atom+xml' href='http://tondrej.blogspot.com/feeds/116393464627943950/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7005051&amp;postID=116393464627943950' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7005051/posts/default/116393464627943950'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7005051/posts/default/116393464627943950'/><link rel='alternate' type='text/html' href='http://tondrej.blogspot.com/2006/11/new-default-timeouts-in-ie7-wininet.html' title='New default timeouts in IE7 wininet'/><author><name>TOndrej</name><uri>http://www.blogger.com/profile/11973677794354930454</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://photos1.blogger.com/blogger/5379/409/320/07-10-06_1529.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7005051.post-116362030432675219</id><published>2006-11-15T20:35:00.000+01:00</published><updated>2006-11-15T20:51:44.360+01:00</updated><title type='text'>CodeGear</title><summary type='text'>CodeGear := TCompany.Create;Congratulations and best wishes! Kick into high gear! :-)</summary><link rel='replies' type='application/atom+xml' href='http://tondrej.blogspot.com/feeds/116362030432675219/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7005051&amp;postID=116362030432675219' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7005051/posts/default/116362030432675219'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7005051/posts/default/116362030432675219'/><link rel='alternate' type='text/html' href='http://tondrej.blogspot.com/2006/11/codegear.html' title='CodeGear'/><author><name>TOndrej</name><uri>http://www.blogger.com/profile/11973677794354930454</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://photos1.blogger.com/blogger/5379/409/320/07-10-06_1529.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7005051.post-116288934668207451</id><published>2006-11-07T09:40:00.000+01:00</published><updated>2007-10-19T10:01:51.430+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Subversion'/><category scheme='http://www.blogger.com/atom/ns#' term='delphisvn'/><title type='text'>delphisvn for Delphi 7</title><summary type='text'>Here are some screenshots of delphisvn for Delphi 7 which I'm working on. Some people have asked for it. I rarely use Delphi 7 anymore and I'm doing it just for fun. I expect to release it within a few days.Update: The release is now available at SourceForge.</summary><link rel='replies' type='application/atom+xml' href='http://tondrej.blogspot.com/feeds/116288934668207451/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7005051&amp;postID=116288934668207451' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7005051/posts/default/116288934668207451'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7005051/posts/default/116288934668207451'/><link rel='alternate' type='text/html' href='http://tondrej.blogspot.com/2006/11/delphisvn-for-delphi-7.html' title='delphisvn for Delphi 7'/><author><name>TOndrej</name><uri>http://www.blogger.com/profile/11973677794354930454</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://photos1.blogger.com/blogger/5379/409/320/07-10-06_1529.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7005051.post-115925601503366519</id><published>2006-09-26T09:15:00.000+02:00</published><updated>2007-10-19T10:01:51.430+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Subversion'/><category scheme='http://www.blogger.com/atom/ns#' term='delphisvn'/><title type='text'>delphisvn: updated to Subversion 1.4.0</title><summary type='text'>delphisvn now includes Subversion 1.4.0 client DLL. It can still use the previous (Subversion 1.3.2) client DLL.Note: Using the Subversion 1.4.0 client library may automatically upgrade your working copy format which will make your working copy directories unusable by pre-1.4.0 clients.For more information, see Subversion 1.4.0 Release Notes.I've just upgraded my home computer to use Subversion </summary><link rel='replies' type='application/atom+xml' href='http://tondrej.blogspot.com/feeds/115925601503366519/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7005051&amp;postID=115925601503366519' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7005051/posts/default/115925601503366519'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7005051/posts/default/115925601503366519'/><link rel='alternate' type='text/html' href='http://tondrej.blogspot.com/2006/09/delphisvn-updated-to-subversion-140.html' title='delphisvn: updated to Subversion 1.4.0'/><author><name>TOndrej</name><uri>http://www.blogger.com/profile/11973677794354930454</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://photos1.blogger.com/blogger/5379/409/320/07-10-06_1529.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7005051.post-115377266150183251</id><published>2006-07-24T22:18:00.000+02:00</published><updated>2006-07-24T22:24:21.513+02:00</updated><title type='text'>Delphi Wiki</title><summary type='text'>A Delphi Wiki has been started on http://delphi.wikia.com. I think it's a brilliant idea and I hope it takes off well and becomes a great community resource. So please also spread the word to other Delphi developers.</summary><link rel='related' href='http://delphi.wikia.com' title='Delphi Wiki'/><link rel='replies' type='application/atom+xml' href='http://tondrej.blogspot.com/feeds/115377266150183251/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7005051&amp;postID=115377266150183251' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7005051/posts/default/115377266150183251'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7005051/posts/default/115377266150183251'/><link rel='alternate' type='text/html' href='http://tondrej.blogspot.com/2006/07/delphi-wiki.html' title='Delphi Wiki'/><author><name>TOndrej</name><uri>http://www.blogger.com/profile/11973677794354930454</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://photos1.blogger.com/blogger/5379/409/320/07-10-06_1529.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7005051.post-115270455129031371</id><published>2006-07-12T12:37:00.000+02:00</published><updated>2006-07-12T13:42:31.300+02:00</updated><title type='text'>Shenoy's PInvoke Live Template</title><summary type='text'>Shenoy has written a great example of a live template extension. It uses PInvoke web service from the PInvoke.net website. For Delphi code, it also uses the BabelCode web service to translate the declaration to Delphi (since PInvoke.net only returns C# and perhaps VB.NET code, I think).So, you're writing a .NET app and need to make a PInvoke call to some unmanaged Win32 API? With this live </summary><link rel='related' href='http://shenoyatwork.blogspot.com/2006/01/pinvoke-live-template.html' title='Shenoy&apos;s PInvoke Live Template'/><link rel='replies' type='application/atom+xml' href='http://tondrej.blogspot.com/feeds/115270455129031371/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7005051&amp;postID=115270455129031371' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7005051/posts/default/115270455129031371'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7005051/posts/default/115270455129031371'/><link rel='alternate' type='text/html' href='http://tondrej.blogspot.com/2006/07/shenoys-pinvoke-live-template.html' title='Shenoy&apos;s PInvoke Live Template'/><author><name>TOndrej</name><uri>http://www.blogger.com/profile/11973677794354930454</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://photos1.blogger.com/blogger/5379/409/320/07-10-06_1529.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7005051.post-115171771501279167</id><published>2006-07-01T03:18:00.000+02:00</published><updated>2007-10-19T10:02:12.593+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Subversion'/><category scheme='http://www.blogger.com/atom/ns#' term='delphisvn'/><title type='text'>Blame</title><summary type='text'>A few people have asked me if I plan to include Subversion blame functionality.Here's a screenshot which shows what I've done:Running blame may take a long time, especially with a file with a lot of history, so I wrote it to run in a separate thread.The hint shows the commit log message of the blame line revision.</summary><link rel='replies' type='application/atom+xml' href='http://tondrej.blogspot.com/feeds/115171771501279167/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7005051&amp;postID=115171771501279167' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7005051/posts/default/115171771501279167'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7005051/posts/default/115171771501279167'/><link rel='alternate' type='text/html' href='http://tondrej.blogspot.com/2006/07/blame.html' title='Blame'/><author><name>TOndrej</name><uri>http://www.blogger.com/profile/11973677794354930454</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://photos1.blogger.com/blogger/5379/409/320/07-10-06_1529.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7005051.post-115092788166517494</id><published>2006-06-22T00:07:00.000+02:00</published><updated>2007-10-19T10:01:51.430+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Subversion'/><category scheme='http://www.blogger.com/atom/ns#' term='delphisvn'/><title type='text'>delphisvn</title><summary type='text'>I've started to prepare the Subversion stuff I've blogged about here for release as open source.I've submitted project registration to Sourceforge. The project, if approved, will be called delphisvn and will be released under Mozilla Public License 1.1.Update: Yay, I've just uploaded the initial release to SourceForge! :-)</summary><link rel='replies' type='application/atom+xml' href='http://tondrej.blogspot.com/feeds/115092788166517494/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7005051&amp;postID=115092788166517494' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7005051/posts/default/115092788166517494'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7005051/posts/default/115092788166517494'/><link rel='alternate' type='text/html' href='http://tondrej.blogspot.com/2006/06/delphisvn.html' title='delphisvn'/><author><name>TOndrej</name><uri>http://www.blogger.com/profile/11973677794354930454</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://photos1.blogger.com/blogger/5379/409/320/07-10-06_1529.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7005051.post-115091381644005383</id><published>2006-06-21T19:31:00.000+02:00</published><updated>2007-10-19T10:01:51.430+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Subversion'/><category scheme='http://www.blogger.com/atom/ns#' term='delphisvn'/><title type='text'>More Subversion</title><summary type='text'>In the recent few days, I've been able to spare some time for my Subversion IDE plugin again. I've written a dockable IDE form which can be used to perform some actions and view their results. If you're interested in how to write a dockable IDE form, see Corbin's article and example. Who knows, perhaps this plugin might actually become useful one day ;-)See for yourself, in the screenshots </summary><link rel='replies' type='application/atom+xml' href='http://tondrej.blogspot.com/feeds/115091381644005383/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7005051&amp;postID=115091381644005383' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7005051/posts/default/115091381644005383'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7005051/posts/default/115091381644005383'/><link rel='alternate' type='text/html' href='http://tondrej.blogspot.com/2006/06/more-subversion.html' title='More Subversion'/><author><name>TOndrej</name><uri>http://www.blogger.com/profile/11973677794354930454</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://photos1.blogger.com/blogger/5379/409/320/07-10-06_1529.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7005051.post-114427466975971755</id><published>2006-04-05T23:48:00.000+02:00</published><updated>2007-10-19T10:01:51.431+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Subversion'/><category scheme='http://www.blogger.com/atom/ns#' term='delphisvn'/><title type='text'>Subversion editor view</title><summary type='text'>Today I've played with the idea of a new Subversion editor view in the Delphi 2006 IDE.To add a new editor view to the editor, you have to implement ICustomEditorView interface and register it with a RegisterEditorView call.You'll need to add EditorViewSupport unit to your uses clause. This unit is only available through designide.dcp; there is no source code. But you can use Code Insight and </summary><link rel='replies' type='application/atom+xml' href='http://tondrej.blogspot.com/feeds/114427466975971755/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7005051&amp;postID=114427466975971755' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7005051/posts/default/114427466975971755'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7005051/posts/default/114427466975971755'/><link rel='alternate' type='text/html' href='http://tondrej.blogspot.com/2006/04/subversion-editor-view.html' title='Subversion editor view'/><author><name>TOndrej</name><uri>http://www.blogger.com/profile/11973677794354930454</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://photos1.blogger.com/blogger/5379/409/320/07-10-06_1529.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7005051.post-114301793574193459</id><published>2006-03-22T09:48:00.000+01:00</published><updated>2006-03-22T09:58:55.760+01:00</updated><title type='text'>XMLDoc regions CC#23955</title><summary type='text'>In response to a comment here on this blog, I've uploaded source code of my XMLDoc regions plugin to Code Central.I hope you'll find it useful.</summary><link rel='related' href='http://cc.borland.com/Item.aspx?id=23955' title='XMLDoc regions CC#23955'/><link rel='replies' type='application/atom+xml' href='http://tondrej.blogspot.com/feeds/114301793574193459/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7005051&amp;postID=114301793574193459' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7005051/posts/default/114301793574193459'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7005051/posts/default/114301793574193459'/><link rel='alternate' type='text/html' href='http://tondrej.blogspot.com/2006/03/xmldoc-regions-cc23955.html' title='XMLDoc regions CC#23955'/><author><name>TOndrej</name><uri>http://www.blogger.com/profile/11973677794354930454</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://photos1.blogger.com/blogger/5379/409/320/07-10-06_1529.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7005051.post-114181601701498635</id><published>2006-03-08T12:06:00.000+01:00</published><updated>2006-03-14T13:46:11.026+01:00</updated><title type='text'>Help Insight</title><summary type='text'>I like Help Insight in Delphi 2006. I think it's going to prove to be very useful. The cool thing is that it's customizable: the popup window is a browser view of an HTML page generated from the XML compiler output by applying HelpInsight.xsl and HelpInsight.css files located in your $(BDS)\Objrepos directory.If you want to have a look at what the XML compiler output looks like, you can modify </summary><link rel='replies' type='application/atom+xml' href='http://tondrej.blogspot.com/feeds/114181601701498635/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7005051&amp;postID=114181601701498635' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7005051/posts/default/114181601701498635'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7005051/posts/default/114181601701498635'/><link rel='alternate' type='text/html' href='http://tondrej.blogspot.com/2006/03/help-insight_08.html' title='Help Insight'/><author><name>TOndrej</name><uri>http://www.blogger.com/profile/11973677794354930454</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://photos1.blogger.com/blogger/5379/409/320/07-10-06_1529.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7005051.post-114139454496318001</id><published>2006-03-03T14:58:00.000+01:00</published><updated>2006-03-06T19:33:33.876+01:00</updated><title type='text'>XML Documentation in Delphi 2006</title><summary type='text'>Delphi 2006 compiler supports an option to generate XML representation of your source code which can be processed (using XSLT) to produce, for example, HTML or HTML Help output.To associate a piece of your own documentation with a class or method, you can simply put your comments directly before its declaration. The compiler will copy them into a separate &lt;devnotes&gt; node in the XML output.Another</summary><link rel='replies' type='application/atom+xml' href='http://tondrej.blogspot.com/feeds/114139454496318001/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7005051&amp;postID=114139454496318001' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7005051/posts/default/114139454496318001'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7005051/posts/default/114139454496318001'/><link rel='alternate' type='text/html' href='http://tondrej.blogspot.com/2006/03/xml-documentation-in-delphi-2006.html' title='XML Documentation in Delphi 2006'/><author><name>TOndrej</name><uri>http://www.blogger.com/profile/11973677794354930454</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://photos1.blogger.com/blogger/5379/409/320/07-10-06_1529.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7005051.post-114116635252482180</id><published>2006-02-28T22:34:00.000+01:00</published><updated>2007-10-19T10:01:51.431+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Subversion'/><category scheme='http://www.blogger.com/atom/ns#' term='delphisvn'/><title type='text'>Subversion in my Delphi IDE</title><summary type='text'>Subversion in my Delphi IDEFor over a year, I've been using Subversion version control software to manage my source code, with TortoiseSVN as client on Windows. I find TortoiseSVN extremely helpful in my everyday work. It's implemented as a Windows shell extension (so it's integrated with Windows Explorer) which makes it very comfortable to use.For the last couple of days, I've been trying to </summary><link rel='replies' type='application/atom+xml' href='http://tondrej.blogspot.com/feeds/114116635252482180/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7005051&amp;postID=114116635252482180' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7005051/posts/default/114116635252482180'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7005051/posts/default/114116635252482180'/><link rel='alternate' type='text/html' href='http://tondrej.blogspot.com/2006/02/subversion-in-my-delphi-ide.html' title='Subversion in my Delphi IDE'/><author><name>TOndrej</name><uri>http://www.blogger.com/profile/11973677794354930454</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://photos1.blogger.com/blogger/5379/409/320/07-10-06_1529.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7005051.post-114069990458496890</id><published>2006-02-23T14:05:00.000+01:00</published><updated>2006-02-23T14:06:27.463+01:00</updated><title type='text'>Delphi 2006 Demo</title><summary type='text'>There's a nice new demo on Borland's website showing features of Delphi 2006:Delphi® 2006 - The First Choice in Windows Development</summary><link rel='related' href='http://www.borland.com/media/en/edm/delphi_demo/index.html' title='Delphi 2006 Demo'/><link rel='replies' type='application/atom+xml' href='http://tondrej.blogspot.com/feeds/114069990458496890/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7005051&amp;postID=114069990458496890' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7005051/posts/default/114069990458496890'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7005051/posts/default/114069990458496890'/><link rel='alternate' type='text/html' href='http://tondrej.blogspot.com/2006/02/delphi-2006-demo.html' title='Delphi 2006 Demo'/><author><name>TOndrej</name><uri>http://www.blogger.com/profile/11973677794354930454</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://photos1.blogger.com/blogger/5379/409/320/07-10-06_1529.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7005051.post-113924373356584622</id><published>2006-02-06T17:13:00.000+01:00</published><updated>2007-10-21T10:51:53.054+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DataSnap'/><title type='text'>CC2209 fix</title><summary type='text'>I've just fixed a memory leak in my entry #2209, titled "Access client's IP address from a DataSnap remote data module" on Borland's CodeCentral.The problem was on the COM server side, in the included DSnapCom unit. The client's IP address (passed in by httpsrvr.dll or scktsrvr.exe as an additional BSTR parameter) was not released properly, which caused a few bytes of memory leak for each method </summary><link rel='replies' type='application/atom+xml' href='http://tondrej.blogspot.com/feeds/113924373356584622/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7005051&amp;postID=113924373356584622' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7005051/posts/default/113924373356584622'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7005051/posts/default/113924373356584622'/><link rel='alternate' type='text/html' href='http://tondrej.blogspot.com/2006/02/cc2209-fix.html' title='CC2209 fix'/><author><name>TOndrej</name><uri>http://www.blogger.com/profile/11973677794354930454</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://photos1.blogger.com/blogger/5379/409/320/07-10-06_1529.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7005051.post-113793333156034458</id><published>2006-01-22T13:24:00.000+01:00</published><updated>2006-01-22T13:35:31.570+01:00</updated><title type='text'>Erik's OpenTools FAQ</title><summary type='text'>I've just noticed that Erik's OpenTools API FAQ and Resources web page links to my CodeCentral entry as an example on getting the target executable's file name from Delphi. Cool! :-)Note that you only need this for Delphi version 7 or earlier; newer versions already expose TargetName property.</summary><link rel='related' href='http://www.gexperts.org/opentools/' title='Erik&apos;s OpenTools FAQ'/><link rel='replies' type='application/atom+xml' href='http://tondrej.blogspot.com/feeds/113793333156034458/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7005051&amp;postID=113793333156034458' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7005051/posts/default/113793333156034458'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7005051/posts/default/113793333156034458'/><link rel='alternate' type='text/html' href='http://tondrej.blogspot.com/2006/01/eriks-opentools-faq.html' title='Erik&apos;s OpenTools FAQ'/><author><name>TOndrej</name><uri>http://www.blogger.com/profile/11973677794354930454</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://photos1.blogger.com/blogger/5379/409/320/07-10-06_1529.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7005051.post-113719476453937094</id><published>2006-01-14T00:17:00.000+01:00</published><updated>2006-01-23T07:22:10.953+01:00</updated><title type='text'>Free Threaded Marshaler</title><summary type='text'>When writing a DataSnap appserver, you should probably try to make it thread-safe and register it to use the multi-threaded apartment (MTA) model (ThreadingModel = tmFree) because it gives you total control over synchronization and optimization of your code. But writing thread-safe code also requires more work. In some cases, it may be useful to register your appserver to use the single-threaded </summary><link rel='replies' type='application/atom+xml' href='http://tondrej.blogspot.com/feeds/113719476453937094/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7005051&amp;postID=113719476453937094' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7005051/posts/default/113719476453937094'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7005051/posts/default/113719476453937094'/><link rel='alternate' type='text/html' href='http://tondrej.blogspot.com/2006/01/free-threaded-marshaler.html' title='Free Threaded Marshaler'/><author><name>TOndrej</name><uri>http://www.blogger.com/profile/11973677794354930454</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://photos1.blogger.com/blogger/5379/409/320/07-10-06_1529.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7005051.post-113472651018184187</id><published>2005-12-16T10:32:00.000+01:00</published><updated>2006-01-22T20:54:42.596+01:00</updated><title type='text'>Installing Delphi 2006</title><summary type='text'>A few days ago, I received my shiny, fresh, the latest and greatest Delphi 2006 in a beautiful package. Very exciting! With much regret, I had to put it aside because I was busy at work and I simply didn't have time to play with it yet. I put it on my table, and I squinted at it occasionally while working on my current project using Delphi 7.Then yesterday evening I finally got around to giving </summary><link rel='replies' type='application/atom+xml' href='http://tondrej.blogspot.com/feeds/113472651018184187/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7005051&amp;postID=113472651018184187' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7005051/posts/default/113472651018184187'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7005051/posts/default/113472651018184187'/><link rel='alternate' type='text/html' href='http://tondrej.blogspot.com/2005/12/installing-delphi-2006.html' title='Installing Delphi 2006'/><author><name>TOndrej</name><uri>http://www.blogger.com/profile/11973677794354930454</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://photos1.blogger.com/blogger/5379/409/320/07-10-06_1529.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7005051.post-112671731723589312</id><published>2005-09-14T18:52:00.000+02:00</published><updated>2007-10-21T10:51:28.090+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DataSnap'/><title type='text'>Could not find server in ObjectManager list</title><summary type='text'>You can register your DataSnap appserver as stateless by calling RegisterPooled in the overriden UpdateRegistry class method of your remote data module.The problem with the way httpsrvr.dll manages stateless objects is that, ehm, it's stateful. ;-) More precisely, it's stateless only within a single IIS session.The Object Manager uses a stringlist of class IDs and each item contains a list of </summary><link rel='replies' type='application/atom+xml' href='http://tondrej.blogspot.com/feeds/112671731723589312/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7005051&amp;postID=112671731723589312' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7005051/posts/default/112671731723589312'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7005051/posts/default/112671731723589312'/><link rel='alternate' type='text/html' href='http://tondrej.blogspot.com/2005/09/could-not-find-server-in-objectmanager.html' title='Could not find server in ObjectManager list'/><author><name>TOndrej</name><uri>http://www.blogger.com/profile/11973677794354930454</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://photos1.blogger.com/blogger/5379/409/320/07-10-06_1529.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7005051.post-112391986334141933</id><published>2005-08-13T09:57:00.000+02:00</published><updated>2005-08-13T09:57:43.383+02:00</updated><title type='text'>Hallvard's Blog: The ultimate Delphi IDE start-up hack</title><summary type='text'>Hallvard's Blog: The ultimate Delphi IDE start-up hackPetr Vones has written a hack (a patch for rtlxx.bpl) to turn off duplicate unit checking which will improve Delphi IDE start-up speed. If you're going to use the patch, be careful - make sure that the packages which you load into your Delphi IDE do not contain duplicate units.</summary><link rel='related' href='http://hallvards.blogspot.com/2005/08/ultimate-delphi-ide-start-up-hack.html' title='Hallvard&apos;s Blog: The ultimate Delphi IDE start-up hack'/><link rel='replies' type='application/atom+xml' href='http://tondrej.blogspot.com/feeds/112391986334141933/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7005051&amp;postID=112391986334141933' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7005051/posts/default/112391986334141933'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7005051/posts/default/112391986334141933'/><link rel='alternate' type='text/html' href='http://tondrej.blogspot.com/2005/08/hallvards-blog-ultimate-delphi-ide.html' title='Hallvard&apos;s Blog: The ultimate Delphi IDE start-up hack'/><author><name>TOndrej</name><uri>http://www.blogger.com/profile/11973677794354930454</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://photos1.blogger.com/blogger/5379/409/320/07-10-06_1529.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7005051.post-110793037602436948</id><published>2005-02-09T07:26:00.000+01:00</published><updated>2005-02-14T22:03:41.250+01:00</updated><title type='text'>10 Years of Delphi</title><summary type='text'>10 Years of DelphiBDNradio: The Creation of DelphiHappy birthday! :-)</summary><link rel='replies' type='application/atom+xml' href='http://tondrej.blogspot.com/feeds/110793037602436948/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7005051&amp;postID=110793037602436948' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7005051/posts/default/110793037602436948'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7005051/posts/default/110793037602436948'/><link rel='alternate' type='text/html' href='http://tondrej.blogspot.com/2005/02/10-years-of-delphi.html' title='10 Years of Delphi'/><author><name>TOndrej</name><uri>http://www.blogger.com/profile/11973677794354930454</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://photos1.blogger.com/blogger/5379/409/320/07-10-06_1529.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7005051.post-110781751674733954</id><published>2005-02-08T00:05:00.000+01:00</published><updated>2007-10-21T10:51:28.091+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DataSnap'/><title type='text'>HTTPSRVR with Apache</title><summary type='text'>Interesting: HTTPSRVR with Apache. On Windows only, of course. I should try it when I find the time.</summary><link rel='related' href='http://distribucon.com/blog/archive/2005/02/07/463.aspx' title='HTTPSRVR with Apache'/><link rel='replies' type='application/atom+xml' href='http://tondrej.blogspot.com/feeds/110781751674733954/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7005051&amp;postID=110781751674733954' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7005051/posts/default/110781751674733954'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7005051/posts/default/110781751674733954'/><link rel='alternate' type='text/html' href='http://tondrej.blogspot.com/2005/02/httpsrvr-with-apache.html' title='HTTPSRVR with Apache'/><author><name>TOndrej</name><uri>http://www.blogger.com/profile/11973677794354930454</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://photos1.blogger.com/blogger/5379/409/320/07-10-06_1529.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7005051.post-110094192366203775</id><published>2004-11-20T09:50:00.000+01:00</published><updated>2004-11-20T10:12:03.663+01:00</updated><title type='text'>Interop Wiki</title><summary type='text'>Just stumbled upon this interop reference web site.It's a wiki containing:API signatures and type definitionsgotchas, tips and samplesalternative managed APIsother community resourcesIt only works in Internet Explorer at the moment.</summary><link rel='related' href='http://www.pinvoke.net/' title='Interop Wiki'/><link rel='replies' type='application/atom+xml' href='http://tondrej.blogspot.com/feeds/110094192366203775/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7005051&amp;postID=110094192366203775' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7005051/posts/default/110094192366203775'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7005051/posts/default/110094192366203775'/><link rel='alternate' type='text/html' href='http://tondrej.blogspot.com/2004/11/interop-wiki.html' title='Interop Wiki'/><author><name>TOndrej</name><uri>http://www.blogger.com/profile/11973677794354930454</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://photos1.blogger.com/blogger/5379/409/320/07-10-06_1529.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7005051.post-109966945857163799</id><published>2004-11-05T16:38:00.000+01:00</published><updated>2004-11-05T18:09:08.190+01:00</updated><title type='text'>Are you game?</title><summary type='text'>Cool Delphi 2005 wallpaper ;-)</summary><link rel='related' href='http://cc.borland.com/ccweb.exe/listing?id=22718' title='Are you game?'/><link rel='replies' type='application/atom+xml' href='http://tondrej.blogspot.com/feeds/109966945857163799/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7005051&amp;postID=109966945857163799' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7005051/posts/default/109966945857163799'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7005051/posts/default/109966945857163799'/><link rel='alternate' type='text/html' href='http://tondrej.blogspot.com/2004/11/are-you-game.html' title='Are you game?'/><author><name>TOndrej</name><uri>http://www.blogger.com/profile/11973677794354930454</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://photos1.blogger.com/blogger/5379/409/320/07-10-06_1529.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7005051.post-109779027633763952</id><published>2004-10-14T21:12:00.000+02:00</published><updated>2004-10-14T23:44:36.336+02:00</updated><title type='text'>madCodeHook</title><summary type='text'>I'm using madCodeHook from madCollection to fix an ugly problem we (at the company I work for) have with some of the earlier versions of our products. We've been using JCL (the JEDI Code Library, an otherwise extremely useful and very well-written library), which used to have a bug in its CPU speed measuring code: it might cause a division by zero on faster computers. What makes things really bad</summary><link rel='related' href='http://www.madshi.net' title='madCodeHook'/><link rel='replies' type='application/atom+xml' href='http://tondrej.blogspot.com/feeds/109779027633763952/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7005051&amp;postID=109779027633763952' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7005051/posts/default/109779027633763952'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7005051/posts/default/109779027633763952'/><link rel='alternate' type='text/html' href='http://tondrej.blogspot.com/2004/10/madcodehook.html' title='madCodeHook'/><author><name>TOndrej</name><uri>http://www.blogger.com/profile/11973677794354930454</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://photos1.blogger.com/blogger/5379/409/320/07-10-06_1529.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7005051.post-109760783959942857</id><published>2004-10-12T21:00:00.000+02:00</published><updated>2004-10-12T21:03:59.600+02:00</updated><title type='text'>Delphi 2005 press release</title><summary type='text'>Scotts Valley, Calif. - October 12, 2004:  Borland Software (NASDAQ: NM: BORL) today announced Borland® Delphi™ 2005, previously codenamed "Diamondback" and the newest version of Borland's Rapid Application Development (RAD) environment for Windows® and .NET applications. Delphi 2005 combines Win32, .NET, Delphi and C# support all within one environment, significantly advances developer and team </summary><link rel='related' href='http://www.borland.com/news/press_releases/2004/10_12_04_delphi2005_boosts_windows_productivity.html' title='Delphi 2005 press release'/><link rel='replies' type='application/atom+xml' href='http://tondrej.blogspot.com/feeds/109760783959942857/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7005051&amp;postID=109760783959942857' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7005051/posts/default/109760783959942857'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7005051/posts/default/109760783959942857'/><link rel='alternate' type='text/html' href='http://tondrej.blogspot.com/2004/10/delphi-2005-press-release.html' title='Delphi 2005 press release'/><author><name>TOndrej</name><uri>http://www.blogger.com/profile/11973677794354930454</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://photos1.blogger.com/blogger/5379/409/320/07-10-06_1529.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7005051.post-109753789680929527</id><published>2004-10-12T01:09:00.000+02:00</published><updated>2007-10-21T10:51:28.091+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DataSnap'/><title type='text'>DataSnap.NET</title><summary type='text'>About a week ago, I had an idea of porting the server part of DataSnap framework to .NET. Since then I've been fiddling with it in my free time, using Borland's C#Builder Personal Edition which is free for non-commercial development. Today, my first prototype of a (stateful) managed socket server is ready. So far, it's able to serve the following requests:asGetAppServers: retrieve ProgIDs of </summary><link rel='replies' type='application/atom+xml' href='http://tondrej.blogspot.com/feeds/109753789680929527/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7005051&amp;postID=109753789680929527' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7005051/posts/default/109753789680929527'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7005051/posts/default/109753789680929527'/><link rel='alternate' type='text/html' href='http://tondrej.blogspot.com/2004/10/datasnapnet.html' title='DataSnap.NET'/><author><name>TOndrej</name><uri>http://www.blogger.com/profile/11973677794354930454</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://photos1.blogger.com/blogger/5379/409/320/07-10-06_1529.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7005051.post-109709143516746326</id><published>2004-10-06T21:28:00.000+02:00</published><updated>2004-10-06T21:37:15.166+02:00</updated><title type='text'>Programmer's Litany</title><summary type='text'>I see the truth of it ;-)</summary><link rel='related' href='http://www.alieniloquent.com/index.cgi/2004/5/4' title='Programmer&apos;s Litany'/><link rel='replies' type='application/atom+xml' href='http://tondrej.blogspot.com/feeds/109709143516746326/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7005051&amp;postID=109709143516746326' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7005051/posts/default/109709143516746326'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7005051/posts/default/109709143516746326'/><link rel='alternate' type='text/html' href='http://tondrej.blogspot.com/2004/10/programmers-litany.html' title='Programmer&apos;s Litany'/><author><name>TOndrej</name><uri>http://www.blogger.com/profile/11973677794354930454</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://photos1.blogger.com/blogger/5379/409/320/07-10-06_1529.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7005051.post-109649940889894690</id><published>2004-09-30T01:52:00.000+02:00</published><updated>2004-09-30T01:10:08.896+02:00</updated><title type='text'>Delphi 8 Tips, Tricks and Speed Improvements</title><summary type='text'>Cool article by Corbin Dunn. He also has a cool treehouse ;-)</summary><link rel='related' href='http://blogs.borland.com/corbindunn/archive/2004/09/29.aspx' title='Delphi 8 Tips, Tricks and Speed Improvements'/><link rel='replies' type='application/atom+xml' href='http://tondrej.blogspot.com/feeds/109649940889894690/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7005051&amp;postID=109649940889894690' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7005051/posts/default/109649940889894690'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7005051/posts/default/109649940889894690'/><link rel='alternate' type='text/html' href='http://tondrej.blogspot.com/2004/09/delphi-8-tips-tricks-and-speed.html' title='Delphi 8 Tips, Tricks and Speed Improvements'/><author><name>TOndrej</name><uri>http://www.blogger.com/profile/11973677794354930454</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://photos1.blogger.com/blogger/5379/409/320/07-10-06_1529.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7005051.post-109631416552194493</id><published>2004-09-27T21:05:00.000+02:00</published><updated>2007-10-21T10:51:28.091+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DataSnap'/><title type='text'>Client dataset to .NET dataset</title><summary type='text'>CC #21053: A great Delphi 8 project with  source code written by Petr Vones. It can load a client dataset XML datapacket into a .NET dataset.</summary><link rel='related' href='http://codecentral.borland.com/codecentral/ccweb.exe/listing?id=21053' title='Client dataset to .NET dataset'/><link rel='replies' type='application/atom+xml' href='http://tondrej.blogspot.com/feeds/109631416552194493/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7005051&amp;postID=109631416552194493' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7005051/posts/default/109631416552194493'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7005051/posts/default/109631416552194493'/><link rel='alternate' type='text/html' href='http://tondrej.blogspot.com/2004/09/client-dataset-to-net-dataset.html' title='Client dataset to .NET dataset'/><author><name>TOndrej</name><uri>http://www.blogger.com/profile/11973677794354930454</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://photos1.blogger.com/blogger/5379/409/320/07-10-06_1529.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7005051.post-109623644372352707</id><published>2004-09-26T22:20:00.000+02:00</published><updated>2004-09-27T01:14:39.773+02:00</updated><title type='text'>Multicast events</title><summary type='text'>I like multicast events in Microsoft .NET. Basically, a single event property (using Delphi terms) can be linked to multiple event handlers (as opposed to standard Delphi's events which can only be linked to a single event handler at most). In Delphi 7, a multicast technique is already used internally in TApplicationEvents, AppEvnts unit. In this case, the result is that you can have multiple </summary><link rel='replies' type='application/atom+xml' href='http://tondrej.blogspot.com/feeds/109623644372352707/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7005051&amp;postID=109623644372352707' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7005051/posts/default/109623644372352707'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7005051/posts/default/109623644372352707'/><link rel='alternate' type='text/html' href='http://tondrej.blogspot.com/2004/09/multicast-events.html' title='Multicast events'/><author><name>TOndrej</name><uri>http://www.blogger.com/profile/11973677794354930454</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://photos1.blogger.com/blogger/5379/409/320/07-10-06_1529.jpg'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7005051.post-109586277962423811</id><published>2004-09-22T16:03:00.000+02:00</published><updated>2004-09-22T16:20:46.846+02:00</updated><title type='text'>Undocumented Delphi IDE command line switch</title><summary type='text'>Another newsgroup nugget from Allen Bauer on b.p.d.n-t:&lt;quote&gt;One thing you can do with all versions of Delphi from at least D5, is use the "-r" command-line switch.  This allows you to specify the root registry key to use when loading the IDE.  For instance in D7, you could export the HKCU\Software\Borland\Delphi key to a file.  Then rename the "Delphi" key to something else, like "SafeMode".</summary><link rel='related' href='http://groups.google.com/groups?selm=4150f2df%241%40newsgroups.borland.com' title='Undocumented Delphi IDE command line switch'/><link rel='replies' type='application/atom+xml' href='http://tondrej.blogspot.com/feeds/109586277962423811/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7005051&amp;postID=109586277962423811' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7005051/posts/default/109586277962423811'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7005051/posts/default/109586277962423811'/><link rel='alternate' type='text/html' href='http://tondrej.blogspot.com/2004/09/undocumented-delphi-ide-command-line.html' title='Undocumented Delphi IDE command line switch'/><author><name>TOndrej</name><uri>http://www.blogger.com/profile/11973677794354930454</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://photos1.blogger.com/blogger/5379/409/320/07-10-06_1529.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7005051.post-109569040879087565</id><published>2004-09-20T16:05:00.000+02:00</published><updated>2004-09-21T01:35:11.700+02:00</updated><title type='text'>Just a part of it, please (part 2)</title><summary type='text'>For performance reasons, I have rewritten the ISAPI extension DLL (see my previous post) which simulates HTTP 1.1 GET with range specified.The DLL now uses the IIS function HSE_REQ_TRANSMIT_FILE which is asynchronous and performance-wise optimized for sending files to clients.Note: It helps to specify the FILE_FLAG_SEQUENTIAL_SCAN flag when opening the file. For asynchronous I/O operations, the</summary><link rel='replies' type='application/atom+xml' href='http://tondrej.blogspot.com/feeds/109569040879087565/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7005051&amp;postID=109569040879087565' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7005051/posts/default/109569040879087565'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7005051/posts/default/109569040879087565'/><link rel='alternate' type='text/html' href='http://tondrej.blogspot.com/2004/09/just-part-of-it-please-part-2.html' title='Just a part of it, please (part 2)'/><author><name>TOndrej</name><uri>http://www.blogger.com/profile/11973677794354930454</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://photos1.blogger.com/blogger/5379/409/320/07-10-06_1529.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7005051.post-109567259267602190</id><published>2004-09-20T11:26:00.000+02:00</published><updated>2007-10-21T10:51:28.092+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DataSnap'/><title type='text'>CC #22334</title><summary type='text'>Today I posted two performance counter libraries for instrumenting DataSnap appservers (one for sockets, one for HTTP transport) to CodeCentral.</summary><link rel='related' href='http://codecentral.borland.com/codecentral/ccweb.exe/listing?id=22334' title='CC #22334'/><link rel='replies' type='application/atom+xml' href='http://tondrej.blogspot.com/feeds/109567259267602190/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7005051&amp;postID=109567259267602190' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7005051/posts/default/109567259267602190'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7005051/posts/default/109567259267602190'/><link rel='alternate' type='text/html' href='http://tondrej.blogspot.com/2004/09/cc-22334.html' title='CC #22334'/><author><name>TOndrej</name><uri>http://www.blogger.com/profile/11973677794354930454</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://photos1.blogger.com/blogger/5379/409/320/07-10-06_1529.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7005051.post-109566164854203081</id><published>2004-09-20T08:26:00.000+02:00</published><updated>2004-09-20T08:27:28.543+02:00</updated><title type='text'>Visual Poetry</title><summary type='text'>Written in Delphi. Cool!</summary><link rel='related' href='http://douweosinga.com/projects/visualpoetry' title='Visual Poetry'/><link rel='replies' type='application/atom+xml' href='http://tondrej.blogspot.com/feeds/109566164854203081/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7005051&amp;postID=109566164854203081' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7005051/posts/default/109566164854203081'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7005051/posts/default/109566164854203081'/><link rel='alternate' type='text/html' href='http://tondrej.blogspot.com/2004/09/visual-poetry_20.html' title='Visual Poetry'/><author><name>TOndrej</name><uri>http://www.blogger.com/profile/11973677794354930454</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://photos1.blogger.com/blogger/5379/409/320/07-10-06_1529.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7005051.post-109551902515797654</id><published>2004-09-18T16:39:00.000+02:00</published><updated>2007-10-21T10:51:28.092+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DataSnap'/><title type='text'>CC #22332 </title><summary type='text'>Today I posted an example of creating a custom performance counter library to CodeCentral. I'm preparing my DataSnap performance libraries for publishing as well.</summary><link rel='related' href='http://cc.borland.com/codecentral/ccWeb.exe/listing?id=22332' title='CC #22332 '/><link rel='replies' type='application/atom+xml' href='http://tondrej.blogspot.com/feeds/109551902515797654/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7005051&amp;postID=109551902515797654' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7005051/posts/default/109551902515797654'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7005051/posts/default/109551902515797654'/><link rel='alternate' type='text/html' href='http://tondrej.blogspot.com/2004/09/cc-22332.html' title='CC #22332 '/><author><name>TOndrej</name><uri>http://www.blogger.com/profile/11973677794354930454</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://photos1.blogger.com/blogger/5379/409/320/07-10-06_1529.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7005051.post-109431080431099173</id><published>2004-09-04T16:58:00.000+02:00</published><updated>2004-09-04T18:08:55.176+02:00</updated><title type='text'>YAPP</title><summary type='text'>I'm using YAPP (Yet Another Pretty Printer ;-)) written by John Kaster to format my Delphi source code for HTML. The current version can highlight the following languages:C++C#Delphi (of course!) ;-)JavaSQLDelphi forms (.dfm)OMG IDLMicrosoft IDLXbaseIt can produce highlighted output in HTML or RTF.Quite useful. Thanks, John!</summary><link rel='related' href='http://cc.borland.com/ccWeb.exe/listing?id=14531' title='YAPP'/><link rel='replies' type='application/atom+xml' href='http://tondrej.blogspot.com/feeds/109431080431099173/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7005051&amp;postID=109431080431099173' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7005051/posts/default/109431080431099173'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7005051/posts/default/109431080431099173'/><link rel='alternate' type='text/html' href='http://tondrej.blogspot.com/2004/09/yapp.html' title='YAPP'/><author><name>TOndrej</name><uri>http://www.blogger.com/profile/11973677794354930454</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://photos1.blogger.com/blogger/5379/409/320/07-10-06_1529.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7005051.post-109429687308549294</id><published>2004-09-04T13:03:00.000+02:00</published><updated>2004-09-04T19:33:28.383+02:00</updated><title type='text'>Just a part of it, please</title><summary type='text'>A few days ago, I had to write an ISAPI extension DLL which would return partial content from a local file stored on the web server. This was meant as a workaround for some proxy configurations which (so I heard) strip some HTTP headers and thus make it impossible for our client code to simply use standard HTTP 1.1 GET requests with the Range header specified. (And before you ask, no, it was not </summary><link rel='replies' type='application/atom+xml' href='http://tondrej.blogspot.com/feeds/109429687308549294/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7005051&amp;postID=109429687308549294' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7005051/posts/default/109429687308549294'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7005051/posts/default/109429687308549294'/><link rel='alternate' type='text/html' href='http://tondrej.blogspot.com/2004/09/just-part-of-it-please.html' title='Just a part of it, please'/><author><name>TOndrej</name><uri>http://www.blogger.com/profile/11973677794354930454</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://photos1.blogger.com/blogger/5379/409/320/07-10-06_1529.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7005051.post-109428272536094785</id><published>2004-09-04T09:21:00.000+02:00</published><updated>2004-09-06T08:00:35.206+02:00</updated><title type='text'>Unicode Identifiers</title><summary type='text'>News from Danny Thorpe about Unicode identifiers.My personal and purely subjective note:I just hope I will never have to read source code containing non-English (e.g. Chinese) identifiers.I'm not a native English speaker but I shudder even when I think about source code containing identifiers in my own native language. Yuck! Am I too old already? ;-)</summary><link rel='related' href='http://homepages.borland.com/dthorpe/blog/delphi/2004_09_01_archive.php#109425945238760731' title='Unicode Identifiers'/><link rel='replies' type='application/atom+xml' href='http://tondrej.blogspot.com/feeds/109428272536094785/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7005051&amp;postID=109428272536094785' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7005051/posts/default/109428272536094785'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7005051/posts/default/109428272536094785'/><link rel='alternate' type='text/html' href='http://tondrej.blogspot.com/2004/09/unicode-identifiers.html' title='Unicode Identifiers'/><author><name>TOndrej</name><uri>http://www.blogger.com/profile/11973677794354930454</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://photos1.blogger.com/blogger/5379/409/320/07-10-06_1529.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7005051.post-109428147052096523</id><published>2004-09-04T09:03:00.000+02:00</published><updated>2004-09-04T09:04:30.520+02:00</updated><title type='text'>GExperts 1.2 released</title><summary type='text'></summary><link rel='related' href='http://www.gexperts.org/' title='GExperts 1.2 released'/><link rel='replies' type='application/atom+xml' href='http://tondrej.blogspot.com/feeds/109428147052096523/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7005051&amp;postID=109428147052096523' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7005051/posts/default/109428147052096523'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7005051/posts/default/109428147052096523'/><link rel='alternate' type='text/html' href='http://tondrej.blogspot.com/2004/09/gexperts-12-released.html' title='GExperts 1.2 released'/><author><name>TOndrej</name><uri>http://www.blogger.com/profile/11973677794354930454</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://photos1.blogger.com/blogger/5379/409/320/07-10-06_1529.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7005051.post-109424284925354056</id><published>2004-09-03T22:13:00.000+02:00</published><updated>2004-09-04T02:24:56.710+02:00</updated><title type='text'>Building packages from the command line</title><summary type='text'>Allen Bauer has posted this little newsgroup nugget on b.p.d.n-t:&lt;quote&gt;The IDE supports a very little know feature where you can continue to control these options while in the IDE, yet allow the command-line be able to also control the options.  In a package file, all the options listed there are propagated to all the contained units.  This is different than a normal .dpr program/library file</summary><link rel='related' href='http://groups.google.com/groups?selm=41388c09%241%40newsgroups.borland.com' title='Building packages from the command line'/><link rel='replies' type='application/atom+xml' href='http://tondrej.blogspot.com/feeds/109424284925354056/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7005051&amp;postID=109424284925354056' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7005051/posts/default/109424284925354056'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7005051/posts/default/109424284925354056'/><link rel='alternate' type='text/html' href='http://tondrej.blogspot.com/2004/09/building-packages-from-command-line.html' title='Building packages from the command line'/><author><name>TOndrej</name><uri>http://www.blogger.com/profile/11973677794354930454</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://photos1.blogger.com/blogger/5379/409/320/07-10-06_1529.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7005051.post-109416300464688071</id><published>2004-09-02T23:36:00.000+02:00</published><updated>2007-06-30T10:08:53.927+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PerfMon'/><category scheme='http://www.blogger.com/atom/ns#' term='DataSnap'/><title type='text'>PerfMon ready</title><summary type='text'>My DataSnap appserver is now instrumented. In fact, my performance counter libraries are generic and will work with all DataSnap servers installed on the computer. DataSnap class IDs are read from the registry and a separate performance object instance is created per each class ID.I have created two performance counter DLLs, one for web (httpsrvr.dll) and another for socket (scktsrvr.exe) </summary><link rel='replies' type='application/atom+xml' href='http://tondrej.blogspot.com/feeds/109416300464688071/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7005051&amp;postID=109416300464688071' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7005051/posts/default/109416300464688071'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7005051/posts/default/109416300464688071'/><link rel='alternate' type='text/html' href='http://tondrej.blogspot.com/2004/09/perfmon-ready.html' title='PerfMon ready'/><author><name>TOndrej</name><uri>http://www.blogger.com/profile/11973677794354930454</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://photos1.blogger.com/blogger/5379/409/320/07-10-06_1529.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7005051.post-109248615767913679</id><published>2004-08-14T14:18:00.000+02:00</published><updated>2004-08-14T16:02:14.276+02:00</updated><title type='text'>Delphi Meetup</title><summary type='text'>I've signed in to  in Munich, Germany.</summary><link rel='replies' type='application/atom+xml' href='http://tondrej.blogspot.com/feeds/109248615767913679/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7005051&amp;postID=109248615767913679' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7005051/posts/default/109248615767913679'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7005051/posts/default/109248615767913679'/><link rel='alternate' type='text/html' href='http://tondrej.blogspot.com/2004/08/delphi-meetup.html' title='Delphi Meetup'/><author><name>TOndrej</name><uri>http://www.blogger.com/profile/11973677794354930454</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://photos1.blogger.com/blogger/5379/409/320/07-10-06_1529.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7005051.post-109178313533150511</id><published>2004-08-06T11:00:00.000+02:00</published><updated>2004-08-06T11:06:52.396+02:00</updated><title type='text'>See the next Delphi release at BorCon 2004</title><summary type='text'>In-depth details on DiamondBack, the code name for the next Delphi release, will be shown throughout BorCon 2004. If you use Delphi, you'll want to be there!See the original BDN article by John Kaster.</summary><link rel='replies' type='application/atom+xml' href='http://tondrej.blogspot.com/feeds/109178313533150511/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7005051&amp;postID=109178313533150511' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7005051/posts/default/109178313533150511'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7005051/posts/default/109178313533150511'/><link rel='alternate' type='text/html' href='http://tondrej.blogspot.com/2004/08/see-next-delphi-release-at-borcon-2004.html' title='See the next Delphi release at BorCon 2004'/><author><name>TOndrej</name><uri>http://www.blogger.com/profile/11973677794354930454</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://photos1.blogger.com/blogger/5379/409/320/07-10-06_1529.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7005051.post-109140379102466472</id><published>2004-08-02T00:57:00.000+02:00</published><updated>2004-08-02T02:08:37.203+02:00</updated><title type='text'>First attempts in .NET</title><summary type='text'>At home, I have a DSL connection which gets a different IP address every time I connect so I sometimes use the free dynamic DNS service. To update your registered DynDNS hostname with your current IP address, you need to send it a simple HTTP request conforming to their published specs.I've been using a small tool I'd written to automate this task, using Delphi (of course!) and Indy with OpenSSL</summary><link rel='replies' type='application/atom+xml' href='http://tondrej.blogspot.com/feeds/109140379102466472/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7005051&amp;postID=109140379102466472' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7005051/posts/default/109140379102466472'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7005051/posts/default/109140379102466472'/><link rel='alternate' type='text/html' href='http://tondrej.blogspot.com/2004/08/first-attempts-in-net.html' title='First attempts in .NET'/><author><name>TOndrej</name><uri>http://www.blogger.com/profile/11973677794354930454</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://photos1.blogger.com/blogger/5379/409/320/07-10-06_1529.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7005051.post-109095833864566698</id><published>2004-07-27T21:55:00.000+02:00</published><updated>2007-10-21T10:53:27.242+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DataSnap'/><title type='text'>CC #22009</title><summary type='text'>Today I posted to Borland's CodeCentral an example which shows a possible way to access client IP address from a DataSnap remote data module.</summary><link rel='related' href='http://cc.borland.com/ccweb.exe/listing?id=22009' title='CC #22009'/><link rel='replies' type='application/atom+xml' href='http://tondrej.blogspot.com/feeds/109095833864566698/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7005051&amp;postID=109095833864566698' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7005051/posts/default/109095833864566698'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7005051/posts/default/109095833864566698'/><link rel='alternate' type='text/html' href='http://tondrej.blogspot.com/2004/07/cc-22009.html' title='CC #22009'/><author><name>TOndrej</name><uri>http://www.blogger.com/profile/11973677794354930454</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://photos1.blogger.com/blogger/5379/409/320/07-10-06_1529.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7005051.post-109025587327290081</id><published>2004-07-19T18:47:00.000+02:00</published><updated>2004-07-19T19:07:50.613+02:00</updated><title type='text'>My Delphi Tools</title><summary type='text'>Here's list of tools I often use from my Delphi IDE (menu Tools\Configure Tools):Title: Explore &amp;Target DirectoryProgram: explorer.exeWorking Dir:Parameters: /e,/select, $EXENAMETitle: Explore &amp;Source DirectoryProgram: explorer.exeWorking Dir:Parameters: /e,/select, $EDNAMETitle: Open Source in &amp;Notepad2Program: C:\Program Files\Notepad2\Notepad2.exeWorking Dir:Parameters: $EDNAME</summary><link rel='replies' type='application/atom+xml' href='http://tondrej.blogspot.com/feeds/109025587327290081/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7005051&amp;postID=109025587327290081' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7005051/posts/default/109025587327290081'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7005051/posts/default/109025587327290081'/><link rel='alternate' type='text/html' href='http://tondrej.blogspot.com/2004/07/my-delphi-tools.html' title='My Delphi Tools'/><author><name>TOndrej</name><uri>http://www.blogger.com/profile/11973677794354930454</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://photos1.blogger.com/blogger/5379/409/320/07-10-06_1529.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7005051.post-109025037888619492</id><published>2004-07-19T17:00:00.000+02:00</published><updated>2004-07-19T17:19:38.886+02:00</updated><title type='text'>Failure is rare</title><summary type='text'>A quote from MSDN:"There is no indication of success or failure. Failure is rare. There is no extended error information for this function; do not call GetLastError."I think this gem should be archived for future generations ;-)It's an excerpt from documentation of CharLower API function.</summary><link rel='replies' type='application/atom+xml' href='http://tondrej.blogspot.com/feeds/109025037888619492/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7005051&amp;postID=109025037888619492' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7005051/posts/default/109025037888619492'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7005051/posts/default/109025037888619492'/><link rel='alternate' type='text/html' href='http://tondrej.blogspot.com/2004/07/failure-is-rare.html' title='Failure is rare'/><author><name>TOndrej</name><uri>http://www.blogger.com/profile/11973677794354930454</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://photos1.blogger.com/blogger/5379/409/320/07-10-06_1529.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7005051.post-109022564015805207</id><published>2004-07-19T10:20:00.000+02:00</published><updated>2007-10-21T10:53:27.242+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DataSnap'/><title type='text'>QC #8664</title><summary type='text'>I've just posted this report to Borland's QualityCentral. Under certain circumstances, httpsrvr.dll may make one additional, superfluous call to ReadClient after all data has already been read. In such case, the call will time out after 60 seconds. Only happens if the client request content length is so big (from my tests, &gt;48K) that it has to be read in chunks. </summary><link rel='replies' type='application/atom+xml' href='http://tondrej.blogspot.com/feeds/109022564015805207/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7005051&amp;postID=109022564015805207' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7005051/posts/default/109022564015805207'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7005051/posts/default/109022564015805207'/><link rel='alternate' type='text/html' href='http://tondrej.blogspot.com/2004/07/qc-8664.html' title='QC #8664'/><author><name>TOndrej</name><uri>http://www.blogger.com/profile/11973677794354930454</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://photos1.blogger.com/blogger/5379/409/320/07-10-06_1529.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7005051.post-109017060747837733</id><published>2004-07-18T19:08:00.000+02:00</published><updated>2004-07-18T19:10:07.480+02:00</updated><title type='text'>TNT Unicode controls</title><summary type='text'>Found them today mentioned on the newsgroups... interesting idea! </summary><link rel='replies' type='application/atom+xml' href='http://tondrej.blogspot.com/feeds/109017060747837733/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7005051&amp;postID=109017060747837733' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7005051/posts/default/109017060747837733'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7005051/posts/default/109017060747837733'/><link rel='alternate' type='text/html' href='http://tondrej.blogspot.com/2004/07/tnt-unicode-controls.html' title='TNT Unicode controls'/><author><name>TOndrej</name><uri>http://www.blogger.com/profile/11973677794354930454</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://photos1.blogger.com/blogger/5379/409/320/07-10-06_1529.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7005051.post-108998876932527529</id><published>2004-07-16T16:21:00.000+02:00</published><updated>2004-07-19T17:25:18.686+02:00</updated><title type='text'>Localizing Borland runtime packages</title><summary type='text'>Today, I saw someone on a Czech Delphi mailing list saying that it's not possible to localize Borland runtime packages using Delphi's built-in Translation Manager. Well, it certainly is possible; all you have to do is create a package project with the same structure (ie. containing the same units) as the target package. The easiest way to create such a package is to let the Delphi IDE generate </summary><link rel='replies' type='application/atom+xml' href='http://tondrej.blogspot.com/feeds/108998876932527529/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7005051&amp;postID=108998876932527529' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7005051/posts/default/108998876932527529'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7005051/posts/default/108998876932527529'/><link rel='alternate' type='text/html' href='http://tondrej.blogspot.com/2004/07/localizing-borland-runtime-packages.html' title='Localizing Borland runtime packages'/><author><name>TOndrej</name><uri>http://www.blogger.com/profile/11973677794354930454</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://photos1.blogger.com/blogger/5379/409/320/07-10-06_1529.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7005051.post-108914609390414785</id><published>2004-07-06T22:22:00.000+02:00</published><updated>2004-07-06T22:34:53.903+02:00</updated><title type='text'>More silence</title><summary type='text'>My shoulder needs surgery :-(I'm going to the hospital tomorrow. Should be back home on Friday, if everything goes well. The right arm will be fixated again.Oh my. More pain. More one-hand typing... Grrrrr.</summary><link rel='replies' type='application/atom+xml' href='http://tondrej.blogspot.com/feeds/108914609390414785/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7005051&amp;postID=108914609390414785' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7005051/posts/default/108914609390414785'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7005051/posts/default/108914609390414785'/><link rel='alternate' type='text/html' href='http://tondrej.blogspot.com/2004/07/more-silence.html' title='More silence'/><author><name>TOndrej</name><uri>http://www.blogger.com/profile/11973677794354930454</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://photos1.blogger.com/blogger/5379/409/320/07-10-06_1529.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7005051.post-108855163473468539</id><published>2004-06-30T01:09:00.000+02:00</published><updated>2004-09-04T10:02:45.016+02:00</updated><title type='text'>From the Interbase trenches</title><summary type='text'>Well, it seems thatselect ... from my_proc(my_params, ...)join my_table on ...can be much slower than putting the code into a separate stored procedure and simply selecting * from it. Optimizer confused?Oh well, I have to investigate some more, but some of my selects now run 6x faster... which is a good thing (TM) ;-)Also, requesting plan on some complex queries (with a large plan) seems </summary><link rel='replies' type='application/atom+xml' href='http://tondrej.blogspot.com/feeds/108855163473468539/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7005051&amp;postID=108855163473468539' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7005051/posts/default/108855163473468539'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7005051/posts/default/108855163473468539'/><link rel='alternate' type='text/html' href='http://tondrej.blogspot.com/2004/06/from-interbase-trenches.html' title='From the Interbase trenches'/><author><name>TOndrej</name><uri>http://www.blogger.com/profile/11973677794354930454</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://photos1.blogger.com/blogger/5379/409/320/07-10-06_1529.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7005051.post-108827185934936370</id><published>2004-06-26T19:40:00.000+02:00</published><updated>2004-06-26T19:44:19.350+02:00</updated><title type='text'>Back</title><summary type='text'>Long time no post... I had an accident on in-line skates, my right arm was dislocated from my shoulder. It hurts but it's getting better slowly, at least I can type with both hands, finally.</summary><link rel='replies' type='application/atom+xml' href='http://tondrej.blogspot.com/feeds/108827185934936370/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7005051&amp;postID=108827185934936370' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7005051/posts/default/108827185934936370'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7005051/posts/default/108827185934936370'/><link rel='alternate' type='text/html' href='http://tondrej.blogspot.com/2004/06/back.html' title='Back'/><author><name>TOndrej</name><uri>http://www.blogger.com/profile/11973677794354930454</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://photos1.blogger.com/blogger/5379/409/320/07-10-06_1529.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7005051.post-108509332964773334</id><published>2004-05-21T00:48:00.000+02:00</published><updated>2004-05-21T00:48:49.646+02:00</updated><title type='text'>Victory report ;-)</title><summary type='text'>cd /pub tonight ;-)5 kennies down ;-)</summary><link rel='replies' type='application/atom+xml' href='http://tondrej.blogspot.com/feeds/108509332964773334/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7005051&amp;postID=108509332964773334' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7005051/posts/default/108509332964773334'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7005051/posts/default/108509332964773334'/><link rel='alternate' type='text/html' href='http://tondrej.blogspot.com/2004/05/victory-report.html' title='Victory report ;-)'/><author><name>TOndrej</name><uri>http://www.blogger.com/profile/11973677794354930454</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://photos1.blogger.com/blogger/5379/409/320/07-10-06_1529.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7005051.post-108507017709597936</id><published>2004-05-20T17:44:00.000+02:00</published><updated>2004-05-20T18:22:57.096+02:00</updated><title type='text'>Failure report ;-)</title><summary type='text'>I had an idea to create a Delphi IDE add-in that would use existing IDE highlighters (hint: IOTAHighlighter interface declared in ToolsAPI unit) to convert source code currently open in the editor (or perhaps just selected lines) into an HTML page with highlighted syntax. The style/color codes could be read from the registry, thus respecting your current IDE settings.Today I tried to do it but I </summary><link rel='replies' type='application/atom+xml' href='http://tondrej.blogspot.com/feeds/108507017709597936/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7005051&amp;postID=108507017709597936' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7005051/posts/default/108507017709597936'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7005051/posts/default/108507017709597936'/><link rel='alternate' type='text/html' href='http://tondrej.blogspot.com/2004/05/failure-report.html' title='Failure report ;-)'/><author><name>TOndrej</name><uri>http://www.blogger.com/profile/11973677794354930454</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://photos1.blogger.com/blogger/5379/409/320/07-10-06_1529.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7005051.post-108469526187123652</id><published>2004-05-16T10:13:00.000+02:00</published><updated>2004-05-19T19:58:59.336+02:00</updated><title type='text'>initial commenting</title><summary type='text'>  Writeln('Hello, world!');Welcome to my Delphi blog. Hope you enjoy it here.</summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7005051/posts/default/108469526187123652'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7005051/posts/default/108469526187123652'/><link rel='alternate' type='text/html' href='http://tondrej.blogspot.com/2004/05/initial-commenting.html' title='initial commenting'/><author><name>TOndrej</name><uri>http://www.blogger.com/profile/11973677794354930454</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://photos1.blogger.com/blogger/5379/409/320/07-10-06_1529.jpg'/></author></entry></feed>
