<?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-19417571</id><updated>2011-10-29T15:56:35.898+03:00</updated><category term='Philosophy'/><category term='Code sample'/><category term='Extensions'/><category term='BDS 2006'/><category term='hotfix'/><category term='software'/><category term='Tips and Tricks'/><category term='Article'/><title type='text'>I am just a DelphiGeek!</title><subtitle type='html'>All about Delphi and everything that regards to it.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://delphigeek.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19417571/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://delphigeek.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>iSkomorokh</name><uri>http://www.blogger.com/profile/14743314682753545265</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://photos1.blogger.com/hello/286/8881/400/I_am.0.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>30</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-19417571.post-7027697959309335741</id><published>2007-05-04T10:18:00.001+03:00</published><updated>2007-06-11T17:46:44.110+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Philosophy'/><title type='text'>Delphi 2007 - how to install packages and components</title><content type='html'>&lt;p&gt;Hello. As I see in my statistics one of my old posts, &lt;a href="http://delphigeek.blogspot.com/2005/12/creating-new-component-package-in.html"&gt;Creating a new component package in Delphi 2005 (Win32)&lt;/a&gt;, is very popular. Also I have notice that with appearing of Delphi 2007 for Win32 Steve Trefethen wrote a very nice tutorial which shows &lt;a href="http://www.stevetrefethen.com/blog/HowToInstallComponentsInTheDelphiIDE.aspx"&gt;How to Install Components in the Delphi IDE&lt;/a&gt; and Nick Hodges made a &lt;a title="Installing a Component into Delphi 2007" href="http://blogs.codegear.com/nickhodges/archive/2007/05/03/34317.aspx"&gt;great streemcast&lt;/a&gt; on the same topic. Now this theme is fully uncovered!&lt;/p&gt; &lt;p&gt;Come again!&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19417571-7027697959309335741?l=delphigeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://delphigeek.blogspot.com/feeds/7027697959309335741/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19417571&amp;postID=7027697959309335741' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19417571/posts/default/7027697959309335741'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19417571/posts/default/7027697959309335741'/><link rel='alternate' type='text/html' href='http://delphigeek.blogspot.com/2007/05/delphi-2007-how-to-install-packages-and.html' title='Delphi 2007 - how to install packages and components'/><author><name>iSkomorokh</name><uri>http://www.blogger.com/profile/14743314682753545265</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://photos1.blogger.com/hello/286/8881/400/I_am.0.jpg'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19417571.post-3534347486112017228</id><published>2007-04-27T14:38:00.001+03:00</published><updated>2007-05-04T10:44:48.096+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Philosophy'/><title type='text'>Subversion, Continuous Integration</title><content type='html'>&lt;p&gt;Hello all! As I was saying in one of &lt;a title="The Returning" href="http://delphigeek.blogspot.com/2007/04/returning.html"&gt;my previous&lt;/a&gt; posts, I am going to write some articles about Continuous Integration, Subversion (SVN) and other related things. But looking on some circumstance I decided not to write about those things (well, however I'll write some short notes). The reasons are pretty simple&amp;nbsp;- few guys already started to write on this topics (&lt;a href="http://memyselfanddelphi.blogspot.com/2007/04/delphi-2007-in-radical-build-part-1.html"&gt;here&lt;/a&gt;&amp;nbsp;and &lt;a href="http://www.stevetrefethen.com/blog/"&gt;here&lt;/a&gt;). They are much stronger in English than me and more advanced in this field. That's why I decided to make way for them.&amp;nbsp;And therewith I don't like to clone blog posts.&lt;/p&gt; &lt;p&gt;PS: don't forget to read a&amp;nbsp;very good&amp;nbsp;&lt;a href="http://svnbook.red-bean.com/index.en.html"&gt;book&lt;/a&gt; about Subversion. There is also a Russian version of this book.&lt;/p&gt; &lt;p&gt;Come again!&lt;/p&gt; &lt;p&gt;&lt;font size="1"&gt;-- 4/05/2007 - New useful link &lt;/font&gt;&lt;br&gt;&lt;a href="http://www.dummzeuch.de/delphi/subversion/english.html" target="_blank"&gt;Delphi and SubVersion&lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19417571-3534347486112017228?l=delphigeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://delphigeek.blogspot.com/feeds/3534347486112017228/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19417571&amp;postID=3534347486112017228' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19417571/posts/default/3534347486112017228'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19417571/posts/default/3534347486112017228'/><link rel='alternate' type='text/html' href='http://delphigeek.blogspot.com/2007/04/subversion-continuous-integration.html' title='Subversion, Continuous Integration'/><author><name>iSkomorokh</name><uri>http://www.blogger.com/profile/14743314682753545265</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://photos1.blogger.com/hello/286/8881/400/I_am.0.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19417571.post-8937566673469340066</id><published>2007-04-24T11:33:00.003+03:00</published><updated>2007-04-24T11:36:10.484+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tips and Tricks'/><category scheme='http://www.blogger.com/atom/ns#' term='BDS 2006'/><category scheme='http://www.blogger.com/atom/ns#' term='Article'/><title type='text'>Problems with ASP.NET debugging in BDS 2006</title><content type='html'>&lt;p&gt;Hello people! Today I want to talk about annoying things that occurs when you try to debug ASP.NET applications in Delphi 2006.&lt;/p&gt; &lt;p&gt;At first small prelude. Most of you are probably like me&amp;nbsp;first install all necessary applications on just&amp;nbsp;installed Windows Xp&amp;nbsp;and only after this remember that IIS supposed to be installed before .NET framework has been installed because&amp;nbsp;if you install IIS after the .NET Framework then ASP.NET will not be registered properly&amp;nbsp;in IIS and you will&amp;nbsp;have some problems with&amp;nbsp;ASP.NET.&lt;/p&gt; &lt;p&gt;In order to solve this issue you should do the following:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;Start console and browse to the "&lt;em&gt;C:\WINDOWS\Microsoft.NET\Framework\(your framework version)&lt;/em&gt;";&lt;/li&gt; &lt;li&gt;run &lt;strong&gt;aspnet_regiis.exe&lt;/strong&gt; with &lt;strong&gt;-i&lt;/strong&gt; parameter;&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;Now ASP.NET is registered but still not in the way which will satisfy me. Why? Well, it is simple. First, if you take a&amp;nbsp;look at the &lt;em&gt;Documents &lt;/em&gt;tab in the &lt;em&gt;Properties&lt;/em&gt; window of any ASP.NET application you won't see &lt;em&gt;Default.aspx&lt;/em&gt; item in the &lt;em&gt;Default&amp;nbsp;documents&lt;/em&gt; list. Yes, I know that it could be easily&amp;nbsp;added but after all it supposed to be there by default. Second, with out any reason ASP.NET applications works very slow and sometimes, when you try to debug them from BDS 2006, you receive some weird errors. So if you don't want to have any doubts whose fault is this, yours&amp;nbsp;or Microsoft, then&amp;nbsp;the following should be done -uninstall ASP.NET and&amp;nbsp;reinstall it again :) Don't worry, it won't take too much of your time. Just do next and you won't regret:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;Once again start console and browse to the "&lt;em&gt;C:\WINDOWS\Microsoft.NET\Framework\(your framework version)&lt;/em&gt;";&lt;/li&gt; &lt;li&gt;run &lt;strong&gt;aspnet_regiis.exe&lt;/strong&gt; with &lt;strong&gt;-u&lt;/strong&gt; parameter;&lt;/li&gt; &lt;li&gt;then remove ASPNET account from user accounts if it is still there (Press Start&amp;gt;Run; type &lt;strong&gt;control userpasswords2&lt;/strong&gt;);&lt;/li&gt; &lt;li&gt;run &lt;strong&gt;aspnet_regiis.exe&lt;/strong&gt; with &lt;strong&gt;-i&lt;/strong&gt; parameter;&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;Now everything will work like out of the box. But it is not the end :)&lt;/p&gt; &lt;p&gt;The only thing left to do is to uncomment tags of the &lt;strong&gt;&amp;lt;assemblies&amp;gt; &lt;/strong&gt;and &lt;strong&gt;&amp;lt;httpModules&amp;gt; &lt;/strong&gt;sections of the &lt;strong&gt;Web.config&lt;/strong&gt; file of your ASP.NET application. And now everything works like it supposed to work! Hurray! Everybody happy!&lt;/p&gt; &lt;p&gt;Stay tuned!&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19417571-8937566673469340066?l=delphigeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://delphigeek.blogspot.com/feeds/8937566673469340066/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19417571&amp;postID=8937566673469340066' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19417571/posts/default/8937566673469340066'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19417571/posts/default/8937566673469340066'/><link rel='alternate' type='text/html' href='http://delphigeek.blogspot.com/2007/04/problems-with-aspnet-debugging-in-bds_24.html' title='Problems with ASP.NET debugging in BDS 2006'/><author><name>iSkomorokh</name><uri>http://www.blogger.com/profile/14743314682753545265</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://photos1.blogger.com/hello/286/8881/400/I_am.0.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19417571.post-96030706956818675</id><published>2007-04-22T12:03:00.001+03:00</published><updated>2007-04-22T12:12:31.848+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='software'/><title type='text'>New version of a great color picker tool - AdesClrPicker</title><content type='html'>Do you know that new version (2.0) of this very easy to use tool for picking colors has been released? Who said NO??? How this could happen?! Quickly check it out! A lot of new features has been introduced. You can see the list of changes and download AdesClrPicker v2.0 from &lt;a href="http://www.adesdesign.net/php/products_color_picker.php"&gt;here&lt;/a&gt;. This is a must have tool!&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.adesdesign.net/php/products_color_picker.php"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://bp0.blogger.com/_aZnFH9kHFCk/Rism3LmTWdI/AAAAAAAAAAc/Cj2zlZKqWKk/s400/adesclrpicker_468x60.gif" alt="" id="BLOGGER_PHOTO_ID_5056177736101616082" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19417571-96030706956818675?l=delphigeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://delphigeek.blogspot.com/feeds/96030706956818675/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19417571&amp;postID=96030706956818675' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19417571/posts/default/96030706956818675'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19417571/posts/default/96030706956818675'/><link rel='alternate' type='text/html' href='http://delphigeek.blogspot.com/2007/04/new-version-of-great-color-picker-tool.html' title='New version of a great color picker tool - AdesClrPicker'/><author><name>iSkomorokh</name><uri>http://www.blogger.com/profile/14743314682753545265</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://photos1.blogger.com/hello/286/8881/400/I_am.0.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp0.blogger.com/_aZnFH9kHFCk/Rism3LmTWdI/AAAAAAAAAAc/Cj2zlZKqWKk/s72-c/adesclrpicker_468x60.gif' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19417571.post-2826136870541661633</id><published>2007-04-19T17:06:00.003+03:00</published><updated>2007-04-19T17:08:11.520+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Philosophy'/><title type='text'>Interesting sample from the book</title><content type='html'>&lt;p&gt;Hello. Yesterday I was reading one&amp;nbsp;nice book about ASP.NET - &lt;a href="http://www.amazon.com/ASP-NET-Tips-Tutorials-Scott-Mitchell/dp/0672321432/ref=sr_1_6/002-4578337-9590451?ie=UTF8&amp;amp;s=books&amp;amp;qid=1176989618&amp;amp;sr=1-6" target="_blank"&gt;ASP.NET: Tips, Tutorials and Code&lt;/a&gt;. In one chapter I have found an interesting code sample which shows how to work with &lt;em&gt;Hashtable&lt;/em&gt;. Here is a piece of it:&lt;/p&gt; &lt;p&gt;&lt;font size="1"&gt;&lt;span style="color: #0000ff"&gt;Dim&lt;/span&gt;&lt;span style="color: #000000"&gt; htSlaries &lt;/span&gt;&lt;span style="color: #0000ff"&gt;As&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;New&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #000000"&gt;Hashtable() &lt;/span&gt;&lt;/font&gt;&lt;/p&gt; &lt;div&gt;&lt;font size="1"&gt;&lt;span style="color: #000000"&gt;htSalaries.Add(&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;Bob&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;, &lt;/span&gt;&lt;span style="color: #800080"&gt;40000&lt;/span&gt;&lt;span style="color: #000000"&gt;)&lt;/span&gt;&lt;/font&gt;&lt;/div&gt; &lt;div&gt;&lt;font size="1"&gt;&lt;span style="color: #000000"&gt;htSalaries.Add(&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;John&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;, &lt;/span&gt;&lt;span style="color: #800080"&gt;65000&lt;/span&gt;&lt;span style="color: #000000"&gt;)&lt;/span&gt;&lt;/font&gt;&lt;/div&gt; &lt;div&gt;&lt;font size="1"&gt;&lt;span style="color: #000000"&gt;htSalaries.Add(&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;Dilbert&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;, &lt;/span&gt;&lt;span style="color: #800080"&gt;25000&lt;/span&gt;&lt;span style="color: #000000"&gt;) &lt;/span&gt;&lt;/font&gt;&lt;/div&gt; &lt;div&gt;&lt;font size="1"&gt;&lt;span style="color: #000000"&gt;htSalaries.Add(&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;Scott&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;, &lt;/span&gt;&lt;span style="color: #800080"&gt;85000&lt;/span&gt;&lt;span style="color: #000000"&gt;)&lt;/span&gt;&lt;/font&gt;&lt;/div&gt; &lt;div&gt;&lt;font size="1"&gt;&lt;span style="color: #000000"&gt;htSalaries.Add(&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;BillG&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;, &lt;/span&gt;&lt;span style="color: #800080"&gt;90000000&lt;/span&gt;&lt;span style="color: #000000"&gt;) &lt;/span&gt;&lt;/font&gt;&lt;/div&gt; &lt;div&gt;&lt;font size="1"&gt;&lt;span style="color: #008000"&gt;'&lt;/span&gt;&lt;span style="color: #008000"&gt; Then show this list in the label&lt;/span&gt;&lt;span style="color: #008000"&gt; &lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt; &lt;div&gt;&lt;font size="1"&gt;&lt;span style="color: #000000"&gt;htSalaries.Remove(&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;BillG&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;)&lt;/span&gt;&lt;/font&gt;&lt;/div&gt; &lt;div&gt;&lt;font size="1"&gt;&lt;span style="color: #000000"&gt;&lt;/span&gt;&lt;/font&gt;&amp;nbsp;&lt;/div&gt; &lt;p&gt;&lt;font size="2"&gt;&lt;span style="color: #000000"&gt;Now guess who is BillG?! :) Firstly he gets his salary on paper and then employers change their mind :) Probably they decided that he has got enough already.&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19417571-2826136870541661633?l=delphigeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://delphigeek.blogspot.com/feeds/2826136870541661633/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19417571&amp;postID=2826136870541661633' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19417571/posts/default/2826136870541661633'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19417571/posts/default/2826136870541661633'/><link rel='alternate' type='text/html' href='http://delphigeek.blogspot.com/2007/04/interesting-sample-from-book_19.html' title='Interesting sample from the book'/><author><name>iSkomorokh</name><uri>http://www.blogger.com/profile/14743314682753545265</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://photos1.blogger.com/hello/286/8881/400/I_am.0.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19417571.post-199621278836166352</id><published>2007-04-17T15:54:00.001+03:00</published><updated>2007-04-18T15:59:23.780+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Philosophy'/><category scheme='http://www.blogger.com/atom/ns#' term='software'/><title type='text'>First impression about Delphi 2007</title><content type='html'>&lt;p&gt;Hello all! I finally&amp;nbsp;have installed Delphi 2007 about an hour ago and now make some testdrive. Here is my first impressions:&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Positive:&lt;/strong&gt;&lt;/p&gt; &lt;ul&gt; &lt;li&gt;New installer became nicer and faster;  &lt;li&gt;BDS 2007 starts faster then BDS 2006 (not pretty much but still faster);  &lt;li&gt;The second start of BDS 2007 is definitely much faster than BDS 2006;  &lt;li&gt;Help looks better too (hope the content became better too);  &lt;li&gt;Finally we have Build Events!;&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;&lt;strong&gt;Negative:&lt;/strong&gt;&lt;/p&gt; &lt;ul&gt; &lt;li&gt;New installer didn't want to run properly from my D: partition (Windows installed on C:);  &lt;li&gt;Text size&amp;nbsp;button in the&amp;nbsp;help&amp;nbsp;doesn't work (actually it works but the only thing that changes is bullets size; the text size remains the same);&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;More will be later!&lt;/p&gt; &lt;p&gt;&lt;u&gt;Conclusion&lt;/u&gt;:&lt;/p&gt; &lt;p&gt;First impression is pleasant so far.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19417571-199621278836166352?l=delphigeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://delphigeek.blogspot.com/feeds/199621278836166352/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19417571&amp;postID=199621278836166352' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19417571/posts/default/199621278836166352'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19417571/posts/default/199621278836166352'/><link rel='alternate' type='text/html' href='http://delphigeek.blogspot.com/2007/04/first-impression-about-delphi-2007.html' title='First impression about Delphi 2007'/><author><name>iSkomorokh</name><uri>http://www.blogger.com/profile/14743314682753545265</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://photos1.blogger.com/hello/286/8881/400/I_am.0.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19417571.post-740116560653569723</id><published>2007-04-13T14:06:00.001+03:00</published><updated>2007-04-13T18:20:50.544+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Philosophy'/><title type='text'>The Returning</title><content type='html'>&lt;p&gt;Hello-hello! Sorry for the long period of silence. I have been out of the city and had not much opportunities to be online. Also I had to finish few projects.&amp;nbsp;So in one word - busy :) &lt;/p&gt; &lt;p&gt;Well during that nice&amp;nbsp;period&amp;nbsp;I have visited the capital (Kyiv). I have spent such a great time there even in spite of the fact that I have been in the business trip :). I spent in Kyiv 3 wonderful&amp;nbsp;weeks&amp;nbsp;and have passed&amp;nbsp;very interesting courses - Visual Studio .NET. So from now I am starting to dig&amp;nbsp;dipper into the world of .NET and planing to write on this blog&amp;nbsp;not only about Delphi but also about C# and .NET.&lt;/p&gt; &lt;p&gt;At the courses I have started to learn C#. Nice programming language but I am interesting in it&amp;nbsp;only as a language for writing ASP.NET applications. All the rest I'll write exceptionally on Delphi (Delphi for .NET). Even ASP.NET applications I write in Delphi (code behind) but sometimes it is necessary to write some code in the aspx file and exactly for such&amp;nbsp;situations I need to know&amp;nbsp;CSharp (or at least VB.NET).&lt;/p&gt; &lt;p&gt;Currently I am playing with few very interesting technologies: CVS, Subversion (well now I know precisely that Subversion is better than CVS and I'll use exactly Subversion; &lt;a href="http://www.google.com.ua/search?sourceid=navclient-ff&amp;amp;ie=UTF-8&amp;amp;rls=GGGL,GGGL:2006-38,GGGL:ru&amp;amp;q=continuous+integration" target="_blank"&gt;Continuous Integration&lt;/a&gt;), XML Documentation and OpenTools API. More about this later.&lt;/p&gt; &lt;p&gt;And probably the most important thing - I am going to move my blog to the new place! Hurray!&amp;nbsp;New online home for my blog will be at&amp;nbsp;&lt;a href="http://www.iskomorokh.com" target="_blank"&gt;www.iskomorokh.com&lt;/a&gt;. For&amp;nbsp;now this place is empty but soon everything will change.&amp;nbsp;The reasons of this move&amp;nbsp;are pretty&amp;nbsp;obvious:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;Desire to have more features then &lt;a href="http://www.blogger.com"&gt;Blogger&lt;/a&gt;&amp;nbsp;can give and more styles (own implementation);  &lt;li&gt;total control;  &lt;li&gt;great chance to have&amp;nbsp;practice;  &lt;li&gt;many other :)&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;See you.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19417571-740116560653569723?l=delphigeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://delphigeek.blogspot.com/feeds/740116560653569723/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19417571&amp;postID=740116560653569723' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19417571/posts/default/740116560653569723'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19417571/posts/default/740116560653569723'/><link rel='alternate' type='text/html' href='http://delphigeek.blogspot.com/2007/04/returning.html' title='The Returning'/><author><name>iSkomorokh</name><uri>http://www.blogger.com/profile/14743314682753545265</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://photos1.blogger.com/hello/286/8881/400/I_am.0.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19417571.post-2955625178241931614</id><published>2007-02-18T19:36:00.001+02:00</published><updated>2007-02-18T20:06:35.097+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='BDS 2006'/><category scheme='http://www.blogger.com/atom/ns#' term='Article'/><category scheme='http://www.blogger.com/atom/ns#' term='Code sample'/><title type='text'>How to remove an application button from the taskbar in Delphi?</title><content type='html'>&lt;p&gt;This is a question which each Delphi programmer ask himself at least once in his life. If you use Google or any other search engine you will easily find this solution:&lt;/p&gt;&lt;br /&gt;&lt;pre  style="color:white;"&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;1&lt;/span&gt; &lt;span style="color: rgb(0, 0, 255);"&gt;procedure&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; TForm1.CreateParams(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;var&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; Params: TCreateParams);&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;2&lt;/span&gt; &lt;span style="color: rgb(0, 0, 255);"&gt;begin&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;3&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;  inherited CreateParams(Params);&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;4&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;  &lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;with&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; Params &lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;do&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; &lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;begin&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;5&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;    ExStyle :&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;=&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; ExStyle &lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;or&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; WS_EX_TOPMOST;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;6&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;    WndParent :&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;=&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; GetDesktopwindow;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;7&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;  &lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;end&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;8&lt;/span&gt; &lt;span style="color: rgb(0, 0, 255);"&gt;end&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;;&lt;/span&gt;&lt;/pre&gt; &lt;p&gt;So now you definitely have a question: "If it is so easy to find a solution then why I am talking about this?" An answer is simple. I have merely encountered a situation when approach which has been shown above is not suitable and decided to share my solution of this case with you.&lt;/p&gt; &lt;p&gt;Well what is the intention of the problem? According to the MSDN if you add &lt;strong&gt;WS_EX_TOOLWINDOW&lt;/strong&gt; to the window ExStyle then window will act like this:&lt;/p&gt; &lt;blockquote&gt;&lt;strong&gt;WS_EX_TOOLWINDOW&lt;/strong&gt;  &lt;p&gt;Creates a tool window; that is, a window intended to be used as a floating toolbar. A tool window has a title bar that is shorter than a normal title bar, and the window title is drawn using a smaller font. &lt;em&gt;A tool window does not appear in the taskbar or in the dialog that appears when the user presses ALT+TAB&lt;/em&gt;. If a tool window has a system menu, its icon is not displayed on the title bar. However, you can display the system menu by right-clicking or by typing ALT+SPACE.&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;But my client asked me to remove the button from the taskbar and leave the ability to see the window in the ALT+TAB dialog. Thus I had to refuse from above method and create my own. The solution in principle is not hard. Here is the list of steps you should do if you want to achieve an appropriate behavior:&lt;/p&gt; &lt;ol&gt;&lt;li&gt;Set &lt;em&gt;FormStyle&lt;/em&gt; property of your form to &lt;strong&gt;&lt;em&gt;fsStayOnTop&lt;/em&gt;&lt;/strong&gt; (this helps us to hold our window on top of the rest windows of our application);  &lt;/li&gt;&lt;li&gt;Write next piece of code:&lt;/li&gt;&lt;/ol&gt; &lt;pre color="white"&gt;&lt;div&gt;&lt;pre style="background-color: white;"&gt;&lt;span style="color: rgb(0, 128, 128);"&gt; 1&lt;/span&gt; &lt;span style="color: rgb(0, 0, 255);"&gt;type&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 128, 128);"&gt; 2&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;  TfrmSamples &lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;=&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; class(TForm)&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 128, 128);"&gt; 3&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;   &lt;/span&gt;&lt;span style="color: rgb(0, 128, 0);"&gt;{&lt;/span&gt;&lt;span style="color: rgb(0, 128, 0);"&gt; ... &lt;/span&gt;&lt;span style="color: rgb(0, 128, 0);"&gt;}&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 128, 128);"&gt; 4&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;  public&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 128, 128);"&gt; 5&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;    &lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;procedure&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; FormDeactivate(Sender: TObject);&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 128, 128);"&gt; 6&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;    &lt;/span&gt;&lt;span style="color: rgb(0, 128, 0);"&gt;{&lt;/span&gt;&lt;span style="color: rgb(0, 128, 0);"&gt; Public declarations &lt;/span&gt;&lt;span style="color: rgb(0, 128, 0);"&gt;}&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 128, 128);"&gt; 7&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;  &lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;end&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 128, 128);"&gt; 8&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 128, 128);"&gt; 9&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;  &lt;/span&gt;&lt;span style="color: rgb(0, 128, 0);"&gt;{&lt;/span&gt;&lt;span style="color: rgb(0, 128, 0);"&gt; ... &lt;/span&gt;&lt;span style="color: rgb(0, 128, 0);"&gt;}&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;10&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;11&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;procedure&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; TfrmSamples.FormCreate(Sender: TObject);&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;12&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;begin&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;13&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;  &lt;/span&gt;&lt;span style="color: rgb(0, 128, 0);"&gt;{&lt;/span&gt;&lt;span style="color: rgb(0, 128, 0);"&gt; force floating window to be on top &lt;/span&gt;&lt;span style="color: rgb(0, 128, 0);"&gt;}&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;14&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;  Application.OnDeactivate :&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;=&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; FormDeactivate;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;15&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;end&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;16&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;17&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;procedure&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; TfrmSamples.FormShow(Sender: TObject);&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;18&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;begin&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;19&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;  ShowWindow(Application.Handle, SW_HIDE);&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;20&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;end&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;21&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;22&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;procedure&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; TfrmSamples.FormDeactivate;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;23&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;begin&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;24&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;  Application.BringToFront;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;25&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;end&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;;&lt;/span&gt;&lt;/pre&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;                                                                &lt;p&gt;According to the Borland help &lt;span style="font-style: italic;"&gt;TApplication.OnDeactivate&lt;/span&gt; event occurs when an application becomes inactive therefore if we want to keep our window above all other applications (windows) then this is exec place to act.&lt;/p&gt;&lt;p&gt;That's all! Quick and easy.&lt;/p&gt;If you have some other solution of this task please post them in the comments.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19417571-2955625178241931614?l=delphigeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://delphigeek.blogspot.com/feeds/2955625178241931614/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19417571&amp;postID=2955625178241931614' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19417571/posts/default/2955625178241931614'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19417571/posts/default/2955625178241931614'/><link rel='alternate' type='text/html' href='http://delphigeek.blogspot.com/2007/02/how-to-remove-application-button-from.html' title='How to remove an application button from the taskbar in Delphi?'/><author><name>iSkomorokh</name><uri>http://www.blogger.com/profile/14743314682753545265</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://photos1.blogger.com/hello/286/8881/400/I_am.0.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19417571.post-2692206040858818750</id><published>2007-02-15T14:07:00.000+02:00</published><updated>2007-02-15T14:06:12.247+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='software'/><category scheme='http://www.blogger.com/atom/ns#' term='BDS 2006'/><category scheme='http://www.blogger.com/atom/ns#' term='Article'/><category scheme='http://www.blogger.com/atom/ns#' term='Code sample'/><title type='text'>Global mouse hook in Delphi</title><content type='html'>&lt;p&gt;Hello everyone!&lt;/p&gt; &lt;p&gt;On my primary job I have changed my mouse. At home I have &lt;em&gt;A4Tech&lt;/em&gt; optical mouse with a scroll but on my job I have &lt;em&gt;Genius&lt;/em&gt; mouse (optical and with a scroll as well). At home I use my scroll also as a middle button and when I press it the window which is under cursor getting minimized. It was easy to achieve this behavior because software which comes with my &lt;em&gt;A4Tech&lt;/em&gt; mouse supports this functionality. Another case is my &lt;em&gt;Genius&lt;/em&gt; mouse at work. Software which bundled with it does not allow to minimize the window under the cursor when the scroll button is pressed. Pity!&lt;/p&gt; &lt;p&gt;But solution always can be found! I decided to write a global mouse hook on &lt;strong&gt;Delphi&lt;/strong&gt; which will intercept middle (scroll) button click (&lt;strong&gt;WM_NCMBUTTONDOWN&lt;/strong&gt; and &lt;strong&gt;WM_MBUTTONDOWN&lt;/strong&gt; messages), check if any top level window is under the cursor and if yes then minimize that window.  &lt;/p&gt;&lt;p&gt;The code is pretty simple.  &lt;/p&gt;&lt;p&gt;We need two projects: one - which runs the hook and then kills it; the other - the hook itself (it is supposed to be a DLL because it is a global hook). Nothing difficult (at least if you what is DLL and how to use them)!  &lt;/p&gt;&lt;p style="font-weight: bold; color: rgb(153, 0, 0);"&gt;Here is the mouse hook (&lt;strong&gt;WH_MOUSE&lt;/strong&gt;) implementation:&lt;/p&gt;&lt;pre  style=";color:white;"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;library MiddleButton;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;uses&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;br /&gt;Windows,&lt;br /&gt;Messages;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;const&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;br /&gt;MemMapFile &lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;=&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; &lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;'&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;Igor_thief&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;'&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;type&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;br /&gt;PDLLGlobal &lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;=&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; ^TDLLGlobal;&lt;br /&gt;TDLLGlobal &lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;=&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; &lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;packed&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; &lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;record&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;br /&gt;  HookHandle: HHOOK;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;end&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;var&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;br /&gt;GlobalData: PDLLGlobal;&lt;br /&gt;MMF: THandle;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 128, 0);"&gt;{&lt;/span&gt;&lt;span style="color: rgb(0, 128, 0);"&gt;$R *.res&lt;/span&gt;&lt;span style="color: rgb(0, 128, 0);"&gt;}&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;function&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; HookProc(Code: integer; wParam: WPARAM; lParam: LPARAM): LRESULT; stdcall;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;var&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;br /&gt;CurrWND: THandle;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;begin&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;if&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; Code &lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; &lt;/span&gt;&lt;span style="color: rgb(128, 0, 128);"&gt;0&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; &lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;then&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;begin&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;br /&gt;  Result :&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;=&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; CallNextHookEx(GlobalData^.HookHandle, Code, wParam, lParam);&lt;br /&gt;  exit;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;end&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;; &lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;//&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; &lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;if&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;if&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; (wParam &lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;=&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; WM_NCMBUTTONDOWN) &lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;or&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; (wParam &lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;=&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; WM_MBUTTONDOWN) &lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;then&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;begin&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;br /&gt;  CurrWND :&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;=&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; PMouseHookStruct(lParam)^.hwnd;&lt;br /&gt;  CurrWND :&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;=&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; GetAncestor(CurrWND, GA_ROOTOWNER);&lt;br /&gt;  SendMessage(CurrWND, WM_SYSCOMMAND, SC_MINIMIZE, &lt;/span&gt;&lt;span style="color: rgb(128, 0, 128);"&gt;0&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;);&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;end&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;; &lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;//&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; &lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;if&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;br /&gt;&lt;br /&gt;Result :&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;=&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; CallNextHookEx(GlobalData^.HookHandle, Code, wParam, lParam);&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;end&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;procedure&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; CreateGlobalHeap;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;begin&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;br /&gt;MMF:&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;=&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; CreateFileMapping(INVALID_HANDLE_VALUE, &lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;nil&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;, PAGE_READWRITE, &lt;/span&gt;&lt;span style="color: rgb(128, 0, 128);"&gt;0&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;,&lt;br /&gt;  SizeOf(TDLLGlobal), MemMapFile);&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;if&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; MMF &lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;=&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; &lt;/span&gt;&lt;span style="color: rgb(128, 0, 128);"&gt;0&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; &lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;then&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; &lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;begin&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;br /&gt;  MessageBox(&lt;/span&gt;&lt;span style="color: rgb(128, 0, 128);"&gt;0&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;, &lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;'&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;CreateFileMapping -&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;'&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;, &lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;''&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;, &lt;/span&gt;&lt;span style="color: rgb(128, 0, 128);"&gt;0&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;);&lt;br /&gt;  exit;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;end&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;;&lt;br /&gt;&lt;br /&gt;GlobalData:&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;=&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; MapViewOfFile(MMF, FILE_MAP_ALL_ACCESS, &lt;/span&gt;&lt;span style="color: rgb(128, 0, 128);"&gt;0&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;, &lt;/span&gt;&lt;span style="color: rgb(128, 0, 128);"&gt;0&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;, SizeOf(TDLLGlobal));&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;if&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; GlobalData &lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;=&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; &lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;nil&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; &lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;then&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; &lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;begin&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;//&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; не смогди создать отображение&lt;br /&gt;  CloseHandle(MMF);&lt;br /&gt;  MessageBox(&lt;/span&gt;&lt;span style="color: rgb(128, 0, 128);"&gt;0&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;, &lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;'&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;MapViewOfFile -&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;'&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;, &lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;''&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;, &lt;/span&gt;&lt;span style="color: rgb(128, 0, 128);"&gt;0&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;);&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;end&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;end&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;procedure&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; DeleteGlobalHeap;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;begin&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;if&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; GlobalData&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;nil&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; &lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;then&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;br /&gt;  UnmapViewOfFile(GlobalData);&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;if&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; MMF&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; INVALID_HANDLE_VALUE &lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;then&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;br /&gt;  CloseHandle(MMF);&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;end&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;procedure&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; RunHook; stdcall;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;begin&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;br /&gt;GlobalData^.HookHandle:&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;=&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; SetWindowsHookEx(WH_MOUSE, @HookProc, HInstance, &lt;/span&gt;&lt;span style="color: rgb(128, 0, 128);"&gt;0&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;);&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;if&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; GlobalData^.HookHandle &lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;=&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; INVALID_HANDLE_VALUE &lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;then&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;begin&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;br /&gt;  MessageBox(&lt;/span&gt;&lt;span style="color: rgb(128, 0, 128);"&gt;0&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;, &lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;'&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;Error :)&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;'&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; , &lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;''&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; , MB_OK);&lt;br /&gt;  Exit;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;end&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;end&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;procedure&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; KillHook; stdcall;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;begin&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;if&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; (GlobalData&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;nil&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;) &lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;and&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; (GlobalData^.HookHandle&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;INVALID_HANDLE_VALUE) &lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;then&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;br /&gt;  UnhookWindowsHookEx(GlobalData^.HookHandle);&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;end&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;procedure&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; DLLEntry(dwReason: DWORD);&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;begin&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;case&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; dwReason &lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;of&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;br /&gt;  DLL_PROCESS_ATTACH: CreateGlobalHeap;&lt;br /&gt;  DLL_PROCESS_DETACH: DeleteGlobalHeap;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;end&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;end&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;;&lt;br /&gt;&lt;br /&gt;exports&lt;br /&gt;KillHook,&lt;br /&gt;RunHook;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;begin&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;br /&gt;DLLProc:&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;=&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; @DLLEntry;&lt;br /&gt;DLLEntry(DLL_PROCESS_ATTACH);&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;end&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;.&lt;/span&gt;&lt;/pre&gt;&lt;span style="color: rgb(153, 51, 0); font-weight: bold;"&gt;And here is an implementation of the hook launcher:&lt;/span&gt;&lt;br /&gt;&lt;pre  style=";color:white;"&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;unit&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; RunMiddleButton;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;interface&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;uses&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;br /&gt;Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;type&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;br /&gt;TfrmMain &lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;=&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; class(TForm)&lt;br /&gt;  btnRunHook: TButton;&lt;br /&gt;  btnKillHook: TButton;&lt;br /&gt;  &lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;procedure&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; btnRunHookClick(Sender: TObject);&lt;br /&gt;  &lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;procedure&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; btnKillHookClick(Sender: TObject);&lt;br /&gt;private&lt;br /&gt;  &lt;/span&gt;&lt;span style="color: rgb(0, 128, 0);"&gt;{&lt;/span&gt;&lt;span style="color: rgb(0, 128, 0);"&gt; Private declarations &lt;/span&gt;&lt;span style="color: rgb(0, 128, 0);"&gt;}&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;br /&gt;public&lt;br /&gt;  &lt;/span&gt;&lt;span style="color: rgb(0, 128, 0);"&gt;{&lt;/span&gt;&lt;span style="color: rgb(0, 128, 0);"&gt; Public declarations &lt;/span&gt;&lt;span style="color: rgb(0, 128, 0);"&gt;}&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;end&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;procedure&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; RunHook; stdcall; external &lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;'&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;MiddleButton.dll&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;'&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; name &lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;'&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;RunHook&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;'&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;procedure&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; KillHook; stdcall; external &lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;'&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;MiddleButton.dll&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;'&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; name &lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;'&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;KillHook&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;'&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;var&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;br /&gt;frmMain: TfrmMain;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;implementation&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 128, 0);"&gt;{&lt;/span&gt;&lt;span style="color: rgb(0, 128, 0);"&gt;$R *.dfm&lt;/span&gt;&lt;span style="color: rgb(0, 128, 0);"&gt;}&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;procedure&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; TfrmMain.btnRunHookClick(Sender: TObject);&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;begin&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;br /&gt;RunHook;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;end&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;procedure&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; TfrmMain.btnKillHookClick(Sender: TObject);&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;begin&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;br /&gt;KillHook;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;end&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;end&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;.&lt;br /&gt;&lt;br /&gt;If you don't know what is HOOK and how it works at all then you shoulf go and read MSDN.&lt;br /&gt;Good luck! Study hard!&lt;br /&gt;&lt;/span&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19417571-2692206040858818750?l=delphigeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://delphigeek.blogspot.com/feeds/2692206040858818750/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19417571&amp;postID=2692206040858818750' title='15 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19417571/posts/default/2692206040858818750'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19417571/posts/default/2692206040858818750'/><link rel='alternate' type='text/html' href='http://delphigeek.blogspot.com/2007/02/global-mouse-hook-in-delphi.html' title='Global mouse hook in Delphi'/><author><name>iSkomorokh</name><uri>http://www.blogger.com/profile/14743314682753545265</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://photos1.blogger.com/hello/286/8881/400/I_am.0.jpg'/></author><thr:total>15</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19417571.post-4024751934631210562</id><published>2007-02-07T11:13:00.001+02:00</published><updated>2007-02-07T11:13:41.042+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='BDS 2006'/><category scheme='http://www.blogger.com/atom/ns#' term='Article'/><title type='text'>Debugging DLL in Delphi</title><content type='html'>&lt;p&gt;Yesterday I spend about an hour to figure out how to debug DLL in Delphi. It is really long time considering that I was doing this before. &lt;a title="One of the best search engines in the whole world!" href="http://www.google.com" target="_blank"&gt;Google&lt;/a&gt; didn't help me a lot because all I have found wasn't really helpful.&lt;/p&gt; &lt;p&gt;I have found this solution in the Internet:&lt;/p&gt; &lt;blockquote&gt; &lt;p&gt;Until up to Win2k, you had to set the HostApplication on Start=&amp;gt;Parameter to debug a DLL. This will not work on Windows XP. That Delphi will know the DLL if you run the program, you have to do the following:&lt;br&gt;The program must load the DLL. After this, press Ctrl-Alt-M in Delphi, to list all modules. Sometimes there will be the DLL with path.&lt;br&gt;&lt;strong&gt;Solution&lt;/strong&gt;:&lt;br&gt;Right click on the DLL, select "Reload symbols" and set the full path to the DLL. Now the breakpoints should be active.&lt;br&gt;When the DLL will be compiled in the system path (directory in PATH) this problem don't occur.&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;&lt;font color="#666666"&gt;Not bad! But I have discovered for myself&amp;nbsp;more easy and fast way. Next steps need to be done:&lt;/font&gt;&lt;/p&gt; &lt;ol&gt; &lt;li&gt;&lt;font color="#666666"&gt;In the &lt;em&gt;Project Manager&lt;/em&gt; make your DLL project active and press &lt;strong&gt;Ctrl+Shift+F11&lt;/strong&gt;;&lt;/font&gt;&lt;/li&gt; &lt;li&gt;&lt;font color="#666666"&gt;In the &lt;em&gt;Project Options&lt;/em&gt; window which just appeared select &lt;em&gt;Debugger&lt;/em&gt; node and on the right side of the window in the &lt;em&gt;Host Application&lt;/em&gt; field specify the host application (press &lt;em&gt;Browse&lt;/em&gt; button and select the application which use your library) and then close the dialog by pressing the &lt;em&gt;Ok&lt;/em&gt; button;&lt;/font&gt;&lt;/li&gt; &lt;li&gt;&lt;font color="#666666"&gt;Then simply press &lt;strong&gt;F9&lt;/strong&gt;&lt;/font&gt;&lt;strong&gt; &lt;/strong&gt;and be happy!&lt;/li&gt;&lt;/ol&gt; &lt;p&gt;BTW, it is also good to set up dependencies of your main application which use the DLL you want to debug. You can read about this &lt;a title="Pre and Post-Build Automation in Delphi" href="http://delphi.about.com/od/devutilities/a/pre_post_build.htm" target="_blank"&gt;here&lt;/a&gt;.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19417571-4024751934631210562?l=delphigeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://delphigeek.blogspot.com/feeds/4024751934631210562/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19417571&amp;postID=4024751934631210562' title='10 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19417571/posts/default/4024751934631210562'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19417571/posts/default/4024751934631210562'/><link rel='alternate' type='text/html' href='http://delphigeek.blogspot.com/2007/02/debugging-dll-in-delphi.html' title='Debugging DLL in Delphi'/><author><name>iSkomorokh</name><uri>http://www.blogger.com/profile/14743314682753545265</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://photos1.blogger.com/hello/286/8881/400/I_am.0.jpg'/></author><thr:total>10</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19417571.post-3859412174849057849</id><published>2007-01-15T18:19:00.001+02:00</published><updated>2007-01-15T19:18:05.204+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Philosophy'/><title type='text'>Color namespaces and their implementation in Delphi or any other programming language</title><content type='html'>&lt;p&gt;&lt;/p&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt;There are few color namespaces (color models). Some of them are better in one field but worse in other. Sometimes it happens that you need to convert some color from one color model to another. This is exact situation which has&amp;nbsp;happened to me. So I decided to find a little bit&amp;nbsp;more information about color models which I need to work with. I went to &lt;a href="http://www.en.wikipedia.org"&gt;Wikipedia&lt;/a&gt;&amp;nbsp;and &lt;a href="http://www.google.com"&gt;Google&lt;/a&gt;&amp;nbsp;and found a lot of useful information and few code snippets. That made me happy … but not for long L  &lt;p&gt;Well, here is the situation: there is one color which I need to convert from RGB color model to HSL (HLS) and back but for all that I need all the work to be done with whole numbers. It seems that the task is not complicated. But I have been put in horror by the fact that all the versions of the source code I have found in Internet use different approaches to present color formats. Some represent RGB values as 0..255 but the other as 0..1; HLS values as H – 0..360, S и L – 0..1 or H – 0..239, S и L – 0..240 (e.g. &lt;strong&gt;Microsoft&lt;/strong&gt;). I have seen few another modifications. Weird – isn’t it?  &lt;p&gt;But this is yet far not the end of the story. Later I have been put into more horrible horror. Having tested some variants of a code I have discovered that returned results from the different versions of code almost completely mismatch, though the input was the same for all of them. Suddenly one interesting question came to my mind. Is it possible that &lt;a href="http://www.borland.com"&gt;Borland&lt;/a&gt; (or I should better say &lt;a href="http://www.codegear.com"&gt;CodeGear&lt;/a&gt;) or &lt;a href="http://www.microsoft.com"&gt;Microsoft&lt;/a&gt; do not give us some solution for this, it would seem basic task? And I have appeared right! Both giants give us necessary routines. &lt;a href="http://www.codegear.com"&gt;CodeGear&lt;/a&gt; gives us &lt;strong&gt;ColorRGBToHLS&lt;/strong&gt; and &lt;strong&gt;ColorHLSToRGB&lt;/strong&gt; respectively which can be found in &lt;em&gt;&lt;strong&gt;GraphUtil&lt;/strong&gt;&lt;/em&gt; unit. You can get access to the &lt;a href="http://www.microsoft.com"&gt;Microsoft&lt;/a&gt; functions &lt;strong&gt;ColorHLSToRGB&lt;/strong&gt; and &lt;strong&gt;ColorRGBToHLS&lt;/strong&gt; with the help of &lt;em&gt;&lt;strong&gt;ShlwAPi&lt;/strong&gt;&lt;/em&gt; unit. Hurrah! – I exclaimed, but again it was too early. Once again a great surprise expected me.  &lt;p&gt;This time the thing was that at the first glance everything seems to work, and even looks like the truth, but it turned out, that as a result – this is just at first glance. The fact is that few colors in RGB model has been found which can be converted into HLS model without any problem, but it is impossible to get the same RGB color back from the HLS model. You can easily make sure in it. Simply run MS paint and enter these RGB values R=196, G=136, B=248 in the Select Color dialog. Remember HLS values. Now change the color to some other. And now enter HLS values which you remembered. Then compare resulted RGB values with RGB values you have been entering at the beginning. See?!  &lt;p&gt;I have found a bug in the &lt;strong&gt;ColorRGBToHLS&lt;/strong&gt; procedure which is in the &lt;strong&gt;&lt;em&gt;GraphUtil&lt;/em&gt;&lt;/strong&gt; and reported it in QC (&lt;a href="http://qc.borland.com/wc/qcmain.aspx?d=37436"&gt;QC#37436: GraphUtil.ColorRGBToHLS&lt;/a&gt;). It was rounding issue. I thought that this will save the situation but I was wrong. The &lt;strong&gt;ColorHLSToRGB&lt;/strong&gt; routine was buggy too (&lt;a href="http://qc.borland.com/wc/qcmain.aspx?d=37572"&gt;QC#37572: conversion issue between ColorRGBToHLS and back ColorRGBToHLS (GraphUtil)&lt;/a&gt;) but this time the problem hides in formulas.  &lt;p&gt;Conclusion:  &lt;ul&gt; &lt;li&gt;I still don't understand - is there any standard in this field? If yes, why nobody follows them?  &lt;li&gt;Don't try to remove those bugs I described above. The problem is not in code - the problem is in the formulas. Yes, yes ... I am saying that HLS color model is buggy!  &lt;li&gt;No matter which code version you will use (&lt;a href="http://www.codegear.com"&gt;CodeGear&lt;/a&gt;, &lt;a href="http://www.microsoft.com"&gt;Microsoft&lt;/a&gt;, anybody else)&amp;nbsp;- they all works wrong!&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19417571-3859412174849057849?l=delphigeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://delphigeek.blogspot.com/feeds/3859412174849057849/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19417571&amp;postID=3859412174849057849' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19417571/posts/default/3859412174849057849'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19417571/posts/default/3859412174849057849'/><link rel='alternate' type='text/html' href='http://delphigeek.blogspot.com/2007/01/color-namespaces-and-their.html' title='Color namespaces and their implementation in Delphi or any other programming language'/><author><name>iSkomorokh</name><uri>http://www.blogger.com/profile/14743314682753545265</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://photos1.blogger.com/hello/286/8881/400/I_am.0.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19417571.post-6497100635635487108</id><published>2007-01-02T09:31:00.000+02:00</published><updated>2007-01-02T09:32:35.557+02:00</updated><title type='text'>Happy New Year!</title><content type='html'>&lt;span style="font-weight:bold;"&gt;Happy New Year!!!&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19417571-6497100635635487108?l=delphigeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://delphigeek.blogspot.com/feeds/6497100635635487108/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19417571&amp;postID=6497100635635487108' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19417571/posts/default/6497100635635487108'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19417571/posts/default/6497100635635487108'/><link rel='alternate' type='text/html' href='http://delphigeek.blogspot.com/2007/01/happy-new-year.html' title='Happy New Year!'/><author><name>iSkomorokh</name><uri>http://www.blogger.com/profile/14743314682753545265</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://photos1.blogger.com/hello/286/8881/400/I_am.0.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19417571.post-1648236116563826374</id><published>2006-10-03T15:12:00.001+03:00</published><updated>2006-10-03T15:17:30.418+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Philosophy'/><title type='text'>Video lessons (tutorials)</title><content type='html'>&lt;p&gt;Hello all!&lt;/p&gt; &lt;p&gt;If you know English and love Delphi then I am almost sure that you know &lt;a href="http://blogs.borland.com/nickhodges/"&gt;Nick Hodges&lt;/a&gt;&amp;nbsp;(at least his &lt;a title="Nick's blog" href="http://blogs.borland.com/nickhodges/" target="_blank"&gt;blog&lt;/a&gt;). You probably wondering why I am talking about him? The answer is pretty obvious. Nick Hodges is great man which is strongly related to Delphi. Recently this incredibly active man has created 30 videos in 30 days&amp;nbsp;about&amp;nbsp;Delphi.&amp;nbsp;His action inspired Camtasia team to &lt;a href="http://www.techsmith.com/community/blogcomments.asp?thread=211"&gt;make 30 videos in 30 days&lt;/a&gt; about their product - Camtasia Studio. I think that Nick Hodges action should inspire all the professionals in the Delphi community to do the same.&lt;/p&gt; &lt;p&gt;IMHO - video tutorials/lessons is a right direction! Microsoft has chosen this direction and walks&amp;nbsp;on it confidently. Visit &lt;a href="http://www.ASP.net"&gt;www.ASP.net&lt;/a&gt;&amp;nbsp;and you will make sure in it. You will find there a lot of fresh video material&amp;nbsp;for beginners and video answer on&amp;nbsp;frequently asked question&amp;nbsp;"How do I ... ?".&lt;/p&gt; &lt;p&gt;I like to watch video from BDS 2006 presentation and found them very useful and informative. I think Borland should spend some time and efforts to make more Delphi&amp;nbsp;videos. It is good to read books, articles ... but it is much better to read some book and then to watch related video made by Delphi&amp;nbsp;professionals.&lt;/p&gt; &lt;p&gt;&lt;font size="2"&gt;PS: some video material can be found at &lt;/font&gt;&lt;a title="BDN" href="http://bdn.borland.com/" target="_blank"&gt;&lt;font size="2"&gt;Borland Developer Network&lt;/font&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Thank you!&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19417571-1648236116563826374?l=delphigeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://delphigeek.blogspot.com/feeds/1648236116563826374/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19417571&amp;postID=1648236116563826374' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19417571/posts/default/1648236116563826374'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19417571/posts/default/1648236116563826374'/><link rel='alternate' type='text/html' href='http://delphigeek.blogspot.com/2006/10/video-lessons-tutorials.html' title='Video lessons (tutorials)'/><author><name>iSkomorokh</name><uri>http://www.blogger.com/profile/14743314682753545265</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://photos1.blogger.com/hello/286/8881/400/I_am.0.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19417571.post-1808139183493494072</id><published>2006-09-29T15:40:00.000+03:00</published><updated>2006-09-29T16:30:32.109+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Philosophy'/><category scheme='http://www.blogger.com/atom/ns#' term='software'/><title type='text'>Straggle between blogging software giants</title><content type='html'>Hello all.&lt;br /&gt;    Today I want to get back to my previous &lt;a href="http://delphigeek.blogspot.com/2006/08/hello-all-before-this-day-i-was-using.html"&gt;post&lt;/a&gt; about blogging software and blogging services.  I have promised that soon I'll announce who has won (IMHO) in this battle for users. As you remember (if you don't you can recollect &lt;a href="http://delphigeek.blogspot.com/2006/08/hello-all-before-this-day-i-was-using.html"&gt;here&lt;/a&gt;) I was talking about 3 competitors: BlogJet, Windows Live Writer and &lt;a href="http://www.writely.com/"&gt;www.writely.com&lt;/a&gt; (Google's service). I don't know how I forgot about Microsoft Word 2007 :). Microsoft has  added  an ability to blog directly from Word.  Honestly saying I like it pretty much.&lt;br /&gt;    Well, who is the winner? I guess it is Windows Live Writer!!! You will ask why. Because it is FREE, easy to use and convenient. It is a standalone application thus we don't need to go to the web and be tied to the Internet connection speed. In spite of the speed of &lt;a href="http://www.writely.com/"&gt;www.writely.com&lt;/a&gt; and my Internet connection I still didn't used to use it as a text processor. Who knows? Maybe sooner or later things will change but for now my decision is Windows Live writer.&lt;br /&gt;But! But one thing has disappointed me. Recently Microsoft released an &lt;a href="http://windowslivewriter.spaces.live.com/blog/cns%21D85741BB5E0BE8AA%21702.entry?_c11_blogpart_blogpart=blogview&amp;_c=blogpart#permalink"&gt;updated version&lt;/a&gt; of Windows Live Writer and said that support of Blogger &lt;span style="font-weight: bold;"&gt;Beta &lt;/span&gt;has been added. That made me excited ... but not for long :(. I have downloaded an updated version, installed it and discovered that it is not completely true. First, I had to get my &lt;span style="font-style: italic;"&gt;BlogId &lt;/span&gt;number to be able to work with my blog. For me it was not a hard task. &lt;blockquote&gt;For example JCHeng in his blog post "&lt;a href="http://jcheng.wordpress.com/2006/09/28/blogger-beta-workaround/"&gt;Blogger Beta Workaround&lt;/a&gt;" says that you should navigate in browser to your blog, view source and find &lt;span style="font-style: italic;"&gt;blogID &lt;/span&gt;string.&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;       That's easy. But you can also do it in other way. Just navigate to your blog and move your cursor to "New Post" link and in the status bar you will see the link url which has your &lt;span style="font-style: italic;"&gt;blogID&lt;/span&gt; at the end. So you simply copy that link (right click an url and select 'copy' command from the context menu) and then insert it wherever you need and remove everything unnecessary. That's all! Second, I had to change the beginning of the string (url) from "&lt;a style="color: rgb(255, 102, 0);" class="linkification-ext" href="http://www.blogger.com/" title="Linkification: http://www.blogger.com"&gt;http://www.blogger.com&lt;/a&gt;" to "&lt;a style="color: rgb(255, 102, 0);" class="linkification-ext" href="http://beta.blogger.com/" title="Linkification: http://beta.blogger.com"&gt;http://beta.blogger.com&lt;/a&gt;". Ok, a piece of cake. But all these movement didn't help :(. I continued reciving errors.&lt;br /&gt;          Fortunately one of the visitors of JCHeng's blog left a very useful comment. He gave a &lt;a href="http://mostlytech.blogspot.com/2006/09/windows-live-writer-i18n-not-complete.html"&gt;link&lt;/a&gt; to another workaround which fixed an issue. The problem was in the regional settings. If you want Windows Live Writer to work correctly you should change the regional settings to English (United States). Thanks SiD. This method works but it is not acceptable for me. Therefore all I have to do is wait when another new version of Windows Live Writer will be released. Hope it won't take long!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19417571-1808139183493494072?l=delphigeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://delphigeek.blogspot.com/feeds/1808139183493494072/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19417571&amp;postID=1808139183493494072' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19417571/posts/default/1808139183493494072'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19417571/posts/default/1808139183493494072'/><link rel='alternate' type='text/html' href='http://delphigeek.blogspot.com/2006/09/staggle-between-blogging-software.html' title='Straggle between blogging software giants'/><author><name>iSkomorokh</name><uri>http://www.blogger.com/profile/14743314682753545265</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://photos1.blogger.com/hello/286/8881/400/I_am.0.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19417571.post-4623727379846108239</id><published>2006-09-19T10:40:00.000+03:00</published><updated>2006-09-19T10:55:50.615+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='hotfix'/><category scheme='http://www.blogger.com/atom/ns#' term='BDS 2006'/><title type='text'>Fresh hotfix for BDS 2006</title><content type='html'>You probably know about &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;hotfixes&lt;/span&gt; 1-6? Well, new &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;hotfixes&lt;/span&gt; 7-9 for &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;Borland&lt;/span&gt; Developer Studio 2006 has been released and available for download &lt;a href="http://homepages.borland.com/abauer/BDS2006HotfixRollup.exe"&gt;here&lt;/a&gt;. Detailed description of the &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;hotfixes&lt;/span&gt; can be found &lt;a href="http://cc.borland.com/item.aspx?id=24132"&gt;here&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19417571-4623727379846108239?l=delphigeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://delphigeek.blogspot.com/feeds/4623727379846108239/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19417571&amp;postID=4623727379846108239' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19417571/posts/default/4623727379846108239'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19417571/posts/default/4623727379846108239'/><link rel='alternate' type='text/html' href='http://delphigeek.blogspot.com/2006/09/fresh-hotfix-for-bds-2006.html' title='Fresh hotfix for BDS 2006'/><author><name>iSkomorokh</name><uri>http://www.blogger.com/profile/14743314682753545265</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://photos1.blogger.com/hello/286/8881/400/I_am.0.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19417571.post-5103613458572694399</id><published>2006-09-14T15:58:00.000+03:00</published><updated>2006-09-14T15:59:40.144+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Extensions'/><category scheme='http://www.blogger.com/atom/ns#' term='Philosophy'/><category scheme='http://www.blogger.com/atom/ns#' term='BDS 2006'/><title type='text'>Delphi extensions (experts)</title><content type='html'>Hello world! Probably favorite phrase of most programmers :) Today I want to tell you about a very useful extension for Delphi.&lt;br /&gt;&lt;br /&gt;Personally I don't like to use extensions at all. The main reason is "functional overflow". Seems to me that it is hard to find in Internet an experts package containing only necessary functionality which you will use regularly. I don't want to say that all (or almost all) the experts are useless! No! There are a lot of extremely useful experts but they are often not free.&lt;br /&gt;&lt;br /&gt;Want proves? Well, no problems!&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.jed-software.com/vf.htm"&gt;Visual Forms&lt;/a&gt; - is a thumbnail viewer for the forms in your project. Greatly useful and especially for large projects which contain large amount of forms but :( not free. It costs 35 EUROS. Expensive as for me. This expert has only required features and there are no such which will never be used.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.gexperts.org/"&gt;GExperts&lt;/a&gt; - a very huge Delphi experts package, free but contain some useless features. I am wondering how much time someone should spend before he will be able to use all of them efficiently? I think that a lot. Once again I don't want to say that this package is bad I am just trying to say that user should have a way to install only those experts which he consider useful.&lt;br /&gt;&lt;br /&gt;Well, now let's get back to the experts package which I wished to describe to you. It is &lt;a href="http://andy.jgknet.de/dspeedup/index.php?page=DDevExtensions"&gt;DDevExtensions&lt;/a&gt; Delphi/BCB/BDS IDE plugin. This plugin is free and has only useful features (IMHO). Go and try it! I should say that when I saw it for the first time on the home page I thought that this expert is absolutely useless because the new tool palette layout in BDS is very convenient. But I was wrong. I understood it after I tried &lt;a href="http://andy.jgknet.de/dspeedup/index.php?page=DDevExtensions"&gt;DDevExtensions&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;have a couple idea concerning creation of experts for Delphi. Hope you will see the realization very soon. Keep in touch!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19417571-5103613458572694399?l=delphigeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://delphigeek.blogspot.com/feeds/5103613458572694399/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19417571&amp;postID=5103613458572694399' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19417571/posts/default/5103613458572694399'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19417571/posts/default/5103613458572694399'/><link rel='alternate' type='text/html' href='http://delphigeek.blogspot.com/2006/09/delphi-extensions-experts.html' title='Delphi extensions (experts)'/><author><name>iSkomorokh</name><uri>http://www.blogger.com/profile/14743314682753545265</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://photos1.blogger.com/hello/286/8881/400/I_am.0.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19417571.post-115813892781863741</id><published>2006-09-13T12:15:00.000+03:00</published><updated>2006-09-13T12:20:01.416+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Code sample'/><title type='text'>Building ADO ConnectionString</title><content type='html'>&lt;span id="r_text" name="r_text"&gt;Last night I was looking for a way of building a &lt;span style="font-weight: bold"&gt;ConnectionString &lt;/span&gt;for &lt;span style="font-weight: bold"&gt;TAdoConnection &lt;/span&gt;from Delphi code and having visited section of "Databases" of a &lt;/span&gt;&lt;a title="Forum for programers" href="http://forum.vingrad.ru/" target="blank_"&gt;Vingrad&lt;/a&gt; &lt;span id="r_text" name="r_text"&gt;forum found the solution. It turned out that it could be easily done! All you need to do is just include &lt;span style="font-weight: bold"&gt;AdoConEd&lt;/span&gt; unit call &lt;span style="font-weight: bold"&gt;EditConnectionString &lt;/span&gt;function and send &lt;span style="font-weight: bold"&gt;TAdoConnection &lt;/span&gt;object as a parameter. Further all is simple. A standard window for building a ConnectionString will be shown in which you will do everything as usual.&lt;br&gt;Thus deploying applications that use ADO connections became much easier!&lt;br&gt;&lt;br&gt;&lt;span style="text-decoration: underline"&gt;Code sample&lt;/span&gt;:&lt;br&gt;&lt;/span&gt;&lt;pre&gt;  &lt;span style="font-weight: bold"&gt;if&lt;/span&gt; EditConnectionString(DataModule1.adoconPETS) &lt;span style="font-weight: bold"&gt;then&lt;/span&gt;&lt;br&gt;  &lt;span style="font-weight: bold"&gt;begin&lt;/span&gt;&lt;br&gt;    mmConnString.Text := DataModule1.adoconPETS.ConnectionString;&lt;br&gt;  &lt;span style="font-weight: bold"&gt;end;&lt;/span&gt; &lt;span style="color: rgb(0,102,0)"&gt;// if&lt;/span&gt;&lt;span style="color: rgb(0,102,0)"&gt;&lt;br&gt;&lt;/span&gt;&lt;font size="2"&gt;&lt;/font&gt;&lt;/pre&gt;&lt;pre&gt;&lt;font size="1"&gt;PS: this post has been written with the help of &lt;/font&gt;&lt;a title="www.writely.com" href="http://www.writely.com" target="blank_"&gt;&lt;font size="1"&gt;www.writely.com&lt;/font&gt;&lt;/a&gt;&lt;br&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19417571-115813892781863741?l=delphigeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://delphigeek.blogspot.com/feeds/115813892781863741/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19417571&amp;postID=115813892781863741' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19417571/posts/default/115813892781863741'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19417571/posts/default/115813892781863741'/><link rel='alternate' type='text/html' href='http://delphigeek.blogspot.com/2006/09/last-night-i-was-looking-for-way-of_13.html' title='Building ADO ConnectionString'/><author><name>iSkomorokh</name><uri>http://www.blogger.com/profile/14743314682753545265</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://photos1.blogger.com/hello/286/8881/400/I_am.0.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19417571.post-115763146207286798</id><published>2006-09-07T15:17:00.000+03:00</published><updated>2006-09-07T15:19:21.056+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Extensions'/><category scheme='http://www.blogger.com/atom/ns#' term='BDS 2006'/><title type='text'>Delphi 7 Help for BDS expert</title><content type='html'>&lt;p&gt;If you use Delphi 2005/2006 and want to use an&amp;nbsp;old Delphi 7 help files (or any other help files)&amp;nbsp;then you&amp;nbsp;need to&amp;nbsp;download updated &lt;a href="http://cc.borland.com/Download.aspx?id=23948"&gt;BDS expert&lt;/a&gt; (source code included) &lt;strong&gt;15.4 K&lt;/strong&gt;. After install you can use 3 different help files by pressing &lt;em&gt;Ctrl-F1, Alt-F1 &lt;/em&gt;or&lt;em&gt; Shift-F1&lt;/em&gt;.&lt;/p&gt; &lt;p&gt;&lt;font size="1"&gt;PS: this post has been written in Microsoft Live Writer.&lt;/font&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19417571-115763146207286798?l=delphigeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://delphigeek.blogspot.com/feeds/115763146207286798/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19417571&amp;postID=115763146207286798' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19417571/posts/default/115763146207286798'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19417571/posts/default/115763146207286798'/><link rel='alternate' type='text/html' href='http://delphigeek.blogspot.com/2006/09/delphi-7-help-for-bds-expert.html' title='Delphi 7 Help for BDS expert'/><author><name>iSkomorokh</name><uri>http://www.blogger.com/profile/14743314682753545265</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://photos1.blogger.com/hello/286/8881/400/I_am.0.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19417571.post-115684805183622742</id><published>2006-08-29T13:40:00.000+03:00</published><updated>2006-08-29T13:48:23.680+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Philosophy'/><category scheme='http://www.blogger.com/atom/ns#' term='software'/><title type='text'>Blogging software</title><content type='html'>Hello all!&lt;br /&gt;Before this day I was using &lt;a href="http://blogjet.com/" target="blank_" title="http://blogjet.com/"&gt;BlogJet&lt;/a&gt; (BTW, can't wait to see new version 2.0) to post to my blog but recently &lt;a href="http://www.microsoft.com/" target="blank_" title="Microsoft"&gt;Microsoft&lt;/a&gt; released its &lt;a href="http://windowslivewriter.spaces.live.com/" target="blank_" title="Windows Live Writer is a desktop application that makes it easier to compose compelling blog posts using Windows Live Spaces or your current blog service."&gt;Windows Live Writer&lt;/a&gt; and I began to doubt which software to use. My doubts became greater after I saw &lt;a href="http://www.blogjet.com/blog/2006/08/14/competition-the-microsofts-rip-offs-game/" target="blank_" title="this"&gt;this&lt;/a&gt; blog post. In my opinion both programs are great. Each has its own benefits but .. but Windows Live Writer (beta yet) is &lt;span style="font-weight: bold;"&gt;FREE &lt;/span&gt;and I should say that this is a very telling argument. BTW, my previous post was made from Windows Live Writer. I should say that's its functionality is great.&lt;br /&gt;But its not the end! Today &lt;a href="http://www.google.com/" target="blank_" title="www.google.com"&gt;Google&lt;/a&gt; finally renew the work of its &lt;a href="http://www.writely.com/" target="blank_" title="www.writely.com"&gt;Writely&lt;/a&gt; service. Using Writely you can post to your favorite blog too (its not the only and not the main feature of this great service) and it is absolutely &lt;span style="font-weight: bold;"&gt;FREE &lt;/span&gt;(at least for now). So now I am fully confused! But its not for long! Soon, after some research and test, I'll find out which way/software is better to use.&lt;br /&gt;&lt;br /&gt;Almost forgot to tell that &lt;a href="http://www.blogger.com/" target="blank_" title="www.blogger.com"&gt;www.blogger.com&lt;/a&gt; is going to update its way of editing posts. Now &lt;a title="AJAX" target="blank_" href="http://en.wikipedia.org/wiki/AJAX"&gt;AJAX&lt;/a&gt;   technology will be used and I am sure that it would be much more convenient to edit the blog then it is now.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Stay tuned and soon you will know my conclusion about who is the winner.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt; PS: this post has been written with the help of &lt;a href="http://www.writely.com/" target="blank_" title="www.writely.com"&gt;www.writely.com&lt;/a&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19417571-115684805183622742?l=delphigeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://delphigeek.blogspot.com/feeds/115684805183622742/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19417571&amp;postID=115684805183622742' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19417571/posts/default/115684805183622742'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19417571/posts/default/115684805183622742'/><link rel='alternate' type='text/html' href='http://delphigeek.blogspot.com/2006/08/hello-all-before-this-day-i-was-using.html' title='Blogging software'/><author><name>iSkomorokh</name><uri>http://www.blogger.com/profile/14743314682753545265</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://photos1.blogger.com/hello/286/8881/400/I_am.0.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19417571.post-115582442082968008</id><published>2006-08-17T17:14:00.001+03:00</published><updated>2006-08-19T13:44:43.220+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='software'/><title type='text'>New version 1.5 of AdesClrPicker released</title><content type='html'>&lt;p&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/3368/1921/1600/www.adesdesign.net_pick.2.jpg"&gt;&lt;img style="float: left; margin: 0px 10px 10px 0px; cursor: hand" alt="" src="http://photos1.blogger.com/blogger/3368/1921/200/www.adesdesign.net_pick.1.jpg" border="0"&gt;&lt;/a&gt;Hello all! I hope you remember AdesClrPicker. Yes, yes, yes I am talking about an easy to use, yet powerful color picker application for Web Designers and Web Developers which has been developed by myself.&lt;/p&gt; &lt;p&gt;And now let me tell you a great news. I have released a new version 1.5 of it yesterday. Some new features has been added and some improvements has been made. As always you can download the demo version&amp;nbsp;from the Ades Design &lt;a href="http://www.adesdesign.net/php/products_color_picker.php" target="_blank"&gt;site&lt;/a&gt;&amp;nbsp; for free or buy a fully functional version only for $19.90. Please read &lt;a href="http://www.adesdesign.net/php/products_color_picker_features.php"&gt;all details&lt;/a&gt; on the site.&lt;/p&gt; &lt;p&gt;&lt;em&gt;Hurry up! Be the&amp;nbsp;first to try an updated version!&lt;/em&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19417571-115582442082968008?l=delphigeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://delphigeek.blogspot.com/feeds/115582442082968008/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19417571&amp;postID=115582442082968008' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19417571/posts/default/115582442082968008'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19417571/posts/default/115582442082968008'/><link rel='alternate' type='text/html' href='http://delphigeek.blogspot.com/2006/08/new-version-15-of-adesclrp_115582442082968008.html' title='New version 1.5 of AdesClrPicker released'/><author><name>iSkomorokh</name><uri>http://www.blogger.com/profile/14743314682753545265</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://photos1.blogger.com/hello/286/8881/400/I_am.0.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19417571.post-115408952405321144</id><published>2006-07-28T14:54:00.001+03:00</published><updated>2006-07-28T15:29:06.466+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Code sample'/><title type='text'>Enable Taskbar's auto hide feature from Delphi code</title><content type='html'>Hi. Recently I was looking for an easy solution on how to enable Taskbar's auto hide and always on top features. The only thing I have found was the solution on how to find out "Is Windows taskbar's auto hide feature enabled?". Here is the solution:&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;uses &lt;span style="font-style:italic;"&gt;ShellAPI&lt;/span&gt;;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;function&lt;/span&gt; IsTaskbarAutoHideOn : boolean;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;var&lt;/span&gt;&lt;br /&gt;   ABData : TAppBarData;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;begin&lt;/span&gt;&lt;br /&gt;   ABData.cbSize := sizeof(ABData) ;&lt;br /&gt;   Result :=&lt;br /&gt;     (SHAppBarMessage(ABM_GETSTATE, ABData)&lt;br /&gt;      and ABS_AUTOHIDE) &gt; 0;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;end;&lt;/span&gt;&lt;br /&gt;&lt;/blockquote&gt; &lt;br /&gt;  But as you understand this is good but not what I was looking for.&lt;br /&gt;  Later I have found something similar to the solution, but once again it was not proper because it was just "cheating" :). Here is it:&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;procedure&lt;/span&gt; TForm1.Button1Click(Sender: TObject);&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;var&lt;/span&gt;&lt;br /&gt;   hTaskbar: THandle;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;begin&lt;/span&gt;&lt;br /&gt;     hTaskbar := FindWindow('Shell_TrayWnd', Nil);&lt;br /&gt;     ShowWindow(hTaskbar, SW_HIDE);&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;end;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;procedure&lt;/span&gt; TForm1.Button2Click(Sender: TObject);&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;var&lt;/span&gt;&lt;br /&gt;   hTaskbar: THandle;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;begin&lt;/span&gt;&lt;br /&gt;     hTaskbar := FindWindow('Shell_TrayWnd', Nil);&lt;br /&gt;     ShowWindow(hTaskbar, SW_SHOWNORMAL);&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;end;&lt;/span&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;  That's why I had to dig deep into the MSDN and write my own solution. So, take a look how I have solved the problem.&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;procedure&lt;/span&gt; TForm1.Button1Click(Sender: TObject);&lt;br /&gt;var&lt;br /&gt;  ABData: TAppBarData;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;begin&lt;/span&gt;&lt;br /&gt;  ABData.cbSize := sizeof(tappbardata);&lt;br /&gt;  ABData.hWnd := FindWindow('SHELL_TRAYWND', nil);&lt;br /&gt;  ABData.lParam := LParam(ABS_ALWAYSONTOP or ABS_AUTOHIDE);&lt;br /&gt;  SHAppBarMessage($0000000a, ABData);&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;end;&lt;/span&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;  As it turned out, the main problem was to find &lt;span style="font-weight:bold;"&gt;ABM_SETSTATE&lt;/span&gt; constant which equal to &lt;span style="font-weight:bold;"&gt;$0000000a&lt;/span&gt; and not declared in Delphi.&lt;br /&gt;That's it!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19417571-115408952405321144?l=delphigeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://delphigeek.blogspot.com/feeds/115408952405321144/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19417571&amp;postID=115408952405321144' title='7 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19417571/posts/default/115408952405321144'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19417571/posts/default/115408952405321144'/><link rel='alternate' type='text/html' href='http://delphigeek.blogspot.com/2006/07/enable-taskbars-auto-hide-feature-from.html' title='Enable Taskbar&apos;s auto hide feature from Delphi code'/><author><name>iSkomorokh</name><uri>http://www.blogger.com/profile/14743314682753545265</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://photos1.blogger.com/hello/286/8881/400/I_am.0.jpg'/></author><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19417571.post-115340132235410750</id><published>2006-07-20T15:51:00.000+03:00</published><updated>2006-07-20T16:15:23.013+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='software'/><title type='text'>Delphi 10 Lite</title><content type='html'>Great news for those who has slow PC and want to use BDS 2006! There is an Lite version of BDS 2006 in the Internet. Yo can download it from &lt;a href="http://rapidshare.de/files/25763925/Dl.exe.html"&gt;here&lt;/a&gt;. The password is "496sgjde7869". For more details read "&lt;a href="http://www.igor-thief.pisem.net/delphi/Delphi10Lite/readme.txt"&gt;readme.txt&lt;/a&gt;"&lt;br /&gt;I have already downloaded it and making some tests. So far it works fine and fast. Will see what will be next.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19417571-115340132235410750?l=delphigeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://delphigeek.blogspot.com/feeds/115340132235410750/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19417571&amp;postID=115340132235410750' title='17 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19417571/posts/default/115340132235410750'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19417571/posts/default/115340132235410750'/><link rel='alternate' type='text/html' href='http://delphigeek.blogspot.com/2006/07/delphi-10-lite.html' title='Delphi 10 Lite'/><author><name>iSkomorokh</name><uri>http://www.blogger.com/profile/14743314682753545265</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://photos1.blogger.com/hello/286/8881/400/I_am.0.jpg'/></author><thr:total>17</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19417571.post-115160294624557036</id><published>2006-06-29T20:38:00.000+03:00</published><updated>2006-06-29T20:42:26.316+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Philosophy'/><title type='text'>ASP.NET</title><content type='html'>&lt;span xmlns=""&gt;&lt;p&gt;After a long period of silence the first thing that I want to write about is &lt;a href="http://www.asp.net"&gt;ASP.NET&lt;/a&gt;. The reason why I am speaking about it is my diploma theme. It was something like “ASP.NET in Delphi”. In this post I am not going to tell you about how ASP.NET technology is tough, simple and efficient. In this post I want to highlight the first thing that disappointed me in Delphi (actually in an IDE but not in the language). &lt;br /&gt;&lt;/p&gt;&lt;p&gt;Well I love Delphi and I like new DBS 2006 IDE very much. But when I started to study ASP.NET and tried to write some plain .aspx files in BDS 2006 I was very, very much disappointed. The visual HTML editor in this IDE is terrible, awful, horrible … Solution was found very fast. I have simply opened an .aspx file in the DreamWeaver  and made everything as I wanted. But there are few annoying things on this stage too. Also Code Editor sometimes behaves really strange when I am editing an .aspx file.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;The other thing that made me feel sad is that when I was checking the results of my work in Internet Explorer everything appeared wonderful but when I was using Firefox to see the results WebControls where looking not exactly as I wanted them to look. E.g. when I was changing the width of some control to 100 pixels it was shown correctly in IE but in Firefox it was shown with default width. Fortunately the decision of this problem was found. Thanks to &lt;a href="http://85.146.33.29/Weblog/Blog.aspx?RootId=5:50"&gt;Dr.Bob’s post&lt;/a&gt;. He explained the reason of the problem and how to solve this problem.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Conclusion&lt;/strong&gt;:&lt;br /&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;div&gt;ASP.NET – Rulezzz;&lt;br /&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div&gt;Borland (DevCo) should greatly improve it’s solution for ASP.NET;&lt;br /&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Thank you for your attention and sorry for bad English.&lt;/p&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19417571-115160294624557036?l=delphigeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://delphigeek.blogspot.com/feeds/115160294624557036/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19417571&amp;postID=115160294624557036' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19417571/posts/default/115160294624557036'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19417571/posts/default/115160294624557036'/><link rel='alternate' type='text/html' href='http://delphigeek.blogspot.com/2006/06/aspnet.html' title='ASP.NET'/><author><name>iSkomorokh</name><uri>http://www.blogger.com/profile/14743314682753545265</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://photos1.blogger.com/hello/286/8881/400/I_am.0.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19417571.post-115160029732045357</id><published>2006-06-29T19:54:00.000+03:00</published><updated>2006-06-29T19:58:17.356+03:00</updated><title type='text'>Freedom</title><content type='html'>&lt;span xmlns=""&gt;&lt;p&gt;Hi all! I know that for a pretty long period of time my blog  has not been updated. As you might know or guess I was extremely busy with my graduation project. Finally I have finished it and protected my diploma. Now I am absolutely free and have enough time to write new and interesting (I hope) posts.&lt;/p&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19417571-115160029732045357?l=delphigeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://delphigeek.blogspot.com/feeds/115160029732045357/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19417571&amp;postID=115160029732045357' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19417571/posts/default/115160029732045357'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19417571/posts/default/115160029732045357'/><link rel='alternate' type='text/html' href='http://delphigeek.blogspot.com/2006/06/freedom.html' title='Freedom'/><author><name>iSkomorokh</name><uri>http://www.blogger.com/profile/14743314682753545265</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://photos1.blogger.com/hello/286/8881/400/I_am.0.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19417571.post-114099422452901515</id><published>2006-02-26T23:50:00.001+02:00</published><updated>2006-02-27T00:50:24.530+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='software'/><title type='text'>AdesClrPicker</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/3368/1921/1600/www.adesdesign.net_pick.0.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://photos1.blogger.com/blogger/3368/1921/200/www.adesdesign.net_pick.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;I have recently finished one very interesting program which was ordered by &lt;a href="http://www.adesdesign.net/php/about.php"&gt;Ades&lt;/a&gt;. This program is very useful for web designers or any other kind of designers. The main purpose of it is to capture colors anywhere on the screen and store them in either HTML or RGB color codes. You can read more detailed description, see more screenshots and download the demo from &lt;a href="http://www.adesdesign.net/php/products_color_picker.php"&gt;here&lt;/a&gt;.&lt;br /&gt;I will be &lt;span style="font-weight:bold;"&gt;tremendously&lt;/span&gt; appreciated for those who will leave any suggestions, critics etc. here in the comments.&lt;br /&gt;&lt;br /&gt;PS: &lt;span style="font-style:italic;"&gt;very soon new version will be released so stay tuned!&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19417571-114099422452901515?l=delphigeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://delphigeek.blogspot.com/feeds/114099422452901515/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19417571&amp;postID=114099422452901515' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19417571/posts/default/114099422452901515'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19417571/posts/default/114099422452901515'/><link rel='alternate' type='text/html' href='http://delphigeek.blogspot.com/2006/02/adesclrpicker_26.html' title='AdesClrPicker'/><author><name>iSkomorokh</name><uri>http://www.blogger.com/profile/14743314682753545265</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://photos1.blogger.com/hello/286/8881/400/I_am.0.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19417571.post-113926247053352927</id><published>2006-02-06T23:47:00.000+02:00</published><updated>2006-02-06T23:47:51.130+02:00</updated><title type='text'>Very busy</title><content type='html'>&lt;p&gt;Hello everyone! Sorry that I didn&amp;rsquo;t wrote any post&amp;nbsp;during such a long period! The reason is that I have found a job and trying to pass probation period. Therefore I am busy almost all the day and when I am&amp;nbsp;coming back home at the evening I am trying to&amp;nbsp;rest. I have only one weekend in the week &lt;img src="http://www.myhosting.com/blog/smile9.gif" /&gt;. That&amp;rsquo;s horrible! Also, I need to write my graduation paper. So, I am very, very busy! But I promise that&amp;nbsp;very soon the situation will change&amp;nbsp;to the&amp;nbsp;best side!!! The reasons are: &lt;/p&gt;&lt;ul&gt;&lt;li&gt;I think I&amp;rsquo;ll left this job very soon because I don&amp;rsquo;t like it;&lt;/li&gt;&lt;li&gt;I&amp;rsquo;ll write my graduation paper and will try to find a much better(I mean more interesting) job than I have found recently;&lt;/li&gt;&lt;li&gt;I have finished one very useful&amp;nbsp;project and I am going to tell how realized some parts of it.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&amp;nbsp;And also I&amp;rsquo;ll share&amp;nbsp;some very interesting links&amp;nbsp;with you. See you soon!&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19417571-113926247053352927?l=delphigeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://delphigeek.blogspot.com/feeds/113926247053352927/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19417571&amp;postID=113926247053352927' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19417571/posts/default/113926247053352927'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19417571/posts/default/113926247053352927'/><link rel='alternate' type='text/html' href='http://delphigeek.blogspot.com/2006/02/very-busy.html' title='Very busy'/><author><name>iSkomorokh</name><uri>http://www.blogger.com/profile/14743314682753545265</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://photos1.blogger.com/hello/286/8881/400/I_am.0.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19417571.post-113724092917330136</id><published>2006-01-14T14:15:00.000+02:00</published><updated>2006-01-14T14:15:29.243+02:00</updated><title type='text'>UI</title><content type='html'>Today I have found a very interesting&amp;nbsp;link &lt;a href="http://www.activewin.com/reviews/previews/office12/"&gt;http://www.activewin.com/reviews/previews/office12/&lt;/a&gt;. I have read about new features of the MS Office 12 and have seen some screen shots before. But this article contain more screen shots than I have seen before. I am looking&amp;nbsp;at those screen shots and thinking: &amp;ldquo;It would be incredibly&amp;nbsp;&lt;strong&gt;GREAT&lt;/strong&gt; if all programmers were trying to make such a brilliant and fancy UI in there own&amp;nbsp;programs like MS do! Eh&amp;hellip;&amp;rdquo;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19417571-113724092917330136?l=delphigeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://delphigeek.blogspot.com/feeds/113724092917330136/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19417571&amp;postID=113724092917330136' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19417571/posts/default/113724092917330136'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19417571/posts/default/113724092917330136'/><link rel='alternate' type='text/html' href='http://delphigeek.blogspot.com/2006/01/ui.html' title='UI'/><author><name>iSkomorokh</name><uri>http://www.blogger.com/profile/14743314682753545265</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://photos1.blogger.com/hello/286/8881/400/I_am.0.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19417571.post-113604685026914029</id><published>2005-12-31T18:34:00.000+02:00</published><updated>2005-12-31T18:41:22.530+02:00</updated><title type='text'>Happy New Year!!!</title><content type='html'>&lt;p&gt;&lt;font color="#ff7f00" size="5"&gt;&lt;strong&gt;Happy New Year!!!&lt;/strong&gt;&lt;/font&gt; &lt;/p&gt;&lt;p&gt;Wish all the best to all! &lt;/p&gt;&lt;p&gt;See soon. &lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19417571-113604685026914029?l=delphigeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://delphigeek.blogspot.com/feeds/113604685026914029/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19417571&amp;postID=113604685026914029' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19417571/posts/default/113604685026914029'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19417571/posts/default/113604685026914029'/><link rel='alternate' type='text/html' href='http://delphigeek.blogspot.com/2005/12/happy-new-year.html' title='Happy New Year!!!'/><author><name>iSkomorokh</name><uri>http://www.blogger.com/profile/14743314682753545265</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://photos1.blogger.com/hello/286/8881/400/I_am.0.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19417571.post-113476865432460997</id><published>2005-12-16T22:55:00.000+02:00</published><updated>2005-12-28T11:01:28.740+02:00</updated><title type='text'>Innovations in Delphi 2006</title><content type='html'>I didn’t create new posts for some period because I was little busy. But now I have some free time and I decided to use it for writing this post. As you guessed from the title this post is about innovations in Delphi 2006.&lt;br /&gt;   Browsing the Internet I have found many interesting posts about Delphi 2006. But all this posts are located on different sites. Since I still don’t have Delphi 2006 I can forgot some of the new features as I can’t test them immediately after reading about them. So I made a decision to collect links on the most interesting posts and read those posts again after receiving Delphi 2006. I also decided to share those links with you. So, let’s begin …&lt;br /&gt;&lt;br /&gt;[&lt;font color="#ff7f00" size="2"&gt;Updated 28.12.05&lt;/font&gt;]&lt;br /&gt;&lt;a href="http://delphi.about.com/od/productreviews/ss/delphi2006first.htm"&gt;A First Look at Delphi 2006&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.lemanix.com/nick/archive/2005/11/19/3274.aspx"&gt;Borland Developer Studio 2006&lt;/a&gt;&lt;br /&gt;&lt;a href="http://bdn.borland.com/article/0,1410,33411,00.html"&gt;What's new in Delphi 2006 - by Malcolm Groves and Jason Vokes&lt;/a&gt;&lt;br /&gt;&lt;a href="http://blogs.borland.com/stevet/archive/2005/12/08/22412.aspx"&gt;Introducing OnMouseEnter/OnMouseLeave events on TControl in VCL for Delphi 2006&lt;/a&gt; - at last (&lt;span style="font-weight:bold;"&gt;IMHO&lt;/span&gt;)&lt;br /&gt;&lt;a href="http://blogs.borland.com/jesperhogstrom/archive/2005/12/02/22309.aspx"&gt;Making use of templates&lt;/a&gt;&lt;br /&gt;&lt;a href="http://blogs.borland.com/adammarkowitz/archive/2005/12/05/22340.aspx"&gt;Creating Code Templates - Basics (Delphi2006)&lt;/a&gt;&lt;br /&gt;&lt;a href="http://blogs.borland.com/chrishesik/archive/2005/12/09/22434.aspx"&gt;Automatically close files implicitly opened during debugging&lt;/a&gt;&lt;br /&gt;&lt;a href="http://blogs.borland.com/adammarkowitz/archive/2005/12/09/22423.aspx"&gt;Hidden feature, anyone?! (Delphi2006)&lt;/a&gt;&lt;br /&gt;&lt;a href="http://blogs.borland.com/danielp/archive/2005/11/21/22179.aspx"&gt;Interesting ECO Links&lt;/a&gt;&lt;br /&gt;&lt;a href="http://blogs.borland.com/cbensen/archive/2005/12/07/22388.aspx"&gt;Delphi 2006 Hidden COM Registry Entries&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;If I find some more I'll update this topic. Stay tuned...&lt;br /&gt;If you have something to add you can do this in comments. I'll be very much appreciate for that!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19417571-113476865432460997?l=delphigeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://delphigeek.blogspot.com/feeds/113476865432460997/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19417571&amp;postID=113476865432460997' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19417571/posts/default/113476865432460997'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19417571/posts/default/113476865432460997'/><link rel='alternate' type='text/html' href='http://delphigeek.blogspot.com/2005/12/innovations-in-delphi-2006.html' title='Innovations in Delphi 2006'/><author><name>iSkomorokh</name><uri>http://www.blogger.com/profile/14743314682753545265</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://photos1.blogger.com/hello/286/8881/400/I_am.0.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19417571.post-113370277637261340</id><published>2005-12-04T10:07:00.001+02:00</published><updated>2007-05-04T10:03:29.534+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tips and Tricks'/><category scheme='http://www.blogger.com/atom/ns#' term='Article'/><title type='text'>Creating a new component package in Delphi 2005 (Win32)</title><content type='html'>I am finding on forums question about "How to install a new component in Delphi 2005?" very often. The reason of this question is that in Delphi 2005 the main menu item "Install component" was removed.&lt;br /&gt;I have found a simple step by step tutorial which explains how to do this. Now I am sharing this tutorial with you.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://igor-thief.pisem.net/delphi/ComponentsD2005_1.htm"&gt;First part of the original tutorial&lt;/a&gt;&lt;br /&gt;&lt;a href="http://igor-thief.pisem.net/delphi/ComponentsD2005_2.htm"&gt;Second part of the original tutorial&lt;/a&gt;&lt;br /&gt;&lt;a href="http://igor-thief.pisem.net/delphi/ComponentsD2005.pdf"&gt;Tutorial translated into Russian by myself&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19417571-113370277637261340?l=delphigeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://delphigeek.blogspot.com/feeds/113370277637261340/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19417571&amp;postID=113370277637261340' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19417571/posts/default/113370277637261340'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19417571/posts/default/113370277637261340'/><link rel='alternate' type='text/html' href='http://delphigeek.blogspot.com/2005/12/creating-new-component-package-in.html' title='Creating a new component package in Delphi 2005 (Win32)'/><author><name>iSkomorokh</name><uri>http://www.blogger.com/profile/14743314682753545265</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://photos1.blogger.com/hello/286/8881/400/I_am.0.jpg'/></author><thr:total>0</thr:total></entry></feed>
