<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:pingback="http://madskills.com/public/xml/rss/module/pingback/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0">
  <channel>
    <title>Code Crunching - Samples</title>
    <link>http://www.gumpi.com/Blog/</link>
    <description>Software Developement, Karate, Life, and more</description>
    <language>en-us</language>
    <copyright>Daniel Wischnewski</copyright>
    <lastBuildDate>Fri, 02 Oct 2009 21:23:21 GMT</lastBuildDate>
    <generator>newtelligence dasBlog 2.0.7226.0</generator>
    <managingEditor>blog2@gumpi.com</managingEditor>
    <webMaster>blog2@gumpi.com</webMaster>
    <item>
      <trackback:ping>http://www.gumpi.com/Blog/Trackback.aspx?guid=bb307f7d-73a6-4b26-88ec-3770924c9941</trackback:ping>
      <pingback:server>http://www.gumpi.com/Blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.gumpi.com/Blog/PermaLink,guid,bb307f7d-73a6-4b26-88ec-3770924c9941.aspx</pingback:target>
      <dc:creator>Daniel Wischnewski</dc:creator>
      <wfw:comment>http://www.gumpi.com/Blog/CommentView,guid,bb307f7d-73a6-4b26-88ec-3770924c9941.aspx</wfw:comment>
      <wfw:commentRss>http://www.gumpi.com/Blog/SyndicationService.asmx/GetEntryCommentsRss?guid=bb307f7d-73a6-4b26-88ec-3770924c9941</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Well, here comes the update promised. Originally, I planned to release it yesterday,
but I had to give a talk today on short notice. So I pushed around priorities a little.
</p>
        <p>
Anyway, this update has a few fixes as well as support for taskbar windows as well,
interesting for MDI applications. It is all in the code.
</p>
        <p>
A more detailed update will come in the next days, for now, just the download.
</p>
        <p>
          <a href="/Downloads/Delphi/Win7Components.zip">ZIP File (790 Kb)</a>. Uninstall prior
version first! Unzip and install into IDE.
</p>
        <img width="0" height="0" src="http://www.gumpi.com/Blog/aggbug.ashx?id=bb307f7d-73a6-4b26-88ec-3770924c9941" />
      </body>
      <title>Windows 7 Components - Beta</title>
      <guid isPermaLink="false">http://www.gumpi.com/Blog/PermaLink,guid,bb307f7d-73a6-4b26-88ec-3770924c9941.aspx</guid>
      <link>http://www.gumpi.com/Blog/2009/10/02/Windows7ComponentsBeta.aspx</link>
      <pubDate>Fri, 02 Oct 2009 21:23:21 GMT</pubDate>
      <description>&lt;p&gt;
Well, here comes the update promised. Originally, I planned to release it yesterday,
but I had to give a talk today on short notice. So I pushed around priorities a little.
&lt;/p&gt;
&lt;p&gt;
Anyway, this update has a few fixes as well as support for taskbar windows as well,
interesting for MDI applications. It is all in the code.
&lt;/p&gt;
&lt;p&gt;
A more detailed update will come in the next days, for now, just the download.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="/Downloads/Delphi/Win7Components.zip"&gt;ZIP File (790 Kb)&lt;/a&gt;. Uninstall prior
version first! Unzip and install into IDE.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.gumpi.com/Blog/aggbug.ashx?id=bb307f7d-73a6-4b26-88ec-3770924c9941" /&gt;</description>
      <comments>http://www.gumpi.com/Blog/CommentView,guid,bb307f7d-73a6-4b26-88ec-3770924c9941.aspx</comments>
      <category>Delphi</category>
      <category>Development</category>
      <category>Development (English)</category>
      <category>English</category>
      <category>Samples</category>
      <category>Windows</category>
      <category>Windows 7</category>
    </item>
    <item>
      <trackback:ping>http://www.gumpi.com/Blog/Trackback.aspx?guid=6d67335a-9c04-4e9d-a419-d28c6ab552be</trackback:ping>
      <pingback:server>http://www.gumpi.com/Blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.gumpi.com/Blog/PermaLink,guid,6d67335a-9c04-4e9d-a419-d28c6ab552be.aspx</pingback:target>
      <dc:creator>Daniel Wischnewski</dc:creator>
      <wfw:comment>http://www.gumpi.com/Blog/CommentView,guid,6d67335a-9c04-4e9d-a419-d28c6ab552be.aspx</wfw:comment>
      <wfw:commentRss>http://www.gumpi.com/Blog/SyndicationService.asmx/GetEntryCommentsRss?guid=6d67335a-9c04-4e9d-a419-d28c6ab552be</wfw:commentRss>
      <slash:comments>6</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Well, in my last blog post I've asked for your input for getting a preview of WinControls.
I am getting pretty well along with the controls and I've wanted to show you a small
preview of the Taskbar Windows component.
</p>
        <p align="center">
          <object classid="clsid:22D6F312-B0F6-11D0-94AB-0080C74C7E95" width="800" height="665" codebase="http://www.microsoft.com/Windows/MediaPlayer/">
            <param name="Filename" value="/Blog/content/binary/Delphi/Components/Win7TWPrev/TaskWindows.wmv" />
            <param name="AutoStart" value="true" />
            <param name="ShowControls" value="true" />
            <param name="BufferingTime" value="2" />
            <param name="ShowStatusBar" value="true" />
            <param name="AutoSize" value="true" />
            <param name="InvokeURLs" value="false" />
            <embed src="/Blog/content/binary/Delphi/Components/Win7TWPrev/TaskWindows.wmv" type="application/x-mplayer2" autostart="1" enabled="1" showstatusbar="1" showdisplay="1" showcontrols="1" pluginspage="http://www.microsoft.com/Windows/MediaPlayer/" codebase="http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=6,0,0,0" width="800" height="665">
            </embed>
          </object>
          <br />
          <a href="/Blog/content/binary/Delphi/Components/Win7TWPrev/TaskWindows.wmv">Download
video (WMV, 4MB) here</a>
        </p>
        <p>
Watch my blog for the upcoming release of the controls and see them live at the EKON
13 this week!
</p>
        <img width="0" height="0" src="http://www.gumpi.com/Blog/aggbug.ashx?id=6d67335a-9c04-4e9d-a419-d28c6ab552be" />
      </body>
      <title>Delphi Controls for Windows 7 - State Update</title>
      <guid isPermaLink="false">http://www.gumpi.com/Blog/PermaLink,guid,6d67335a-9c04-4e9d-a419-d28c6ab552be.aspx</guid>
      <link>http://www.gumpi.com/Blog/2009/09/27/DelphiControlsForWindows7StateUpdate.aspx</link>
      <pubDate>Sun, 27 Sep 2009 21:44:29 GMT</pubDate>
      <description>&lt;p&gt;
Well, in my last blog post I've asked for your input for getting a preview of WinControls.
I am getting pretty well along with the controls and I've wanted to show you a small
preview of the Taskbar Windows component.
&lt;/p&gt;
&lt;p align="center"&gt;
&lt;object classid="clsid:22D6F312-B0F6-11D0-94AB-0080C74C7E95" width="800" height="665" codebase="http://www.microsoft.com/Windows/MediaPlayer/"&gt;
&lt;param name="Filename" value="/Blog/content/binary/Delphi/Components/Win7TWPrev/TaskWindows.wmv"&gt;
&lt;param name="AutoStart" value="true"&gt;
&lt;param name="ShowControls" value="true"&gt;
&lt;param name="BufferingTime" value="2"&gt;
&lt;param name="ShowStatusBar" value="true"&gt;
&lt;param name="AutoSize" value="true"&gt;
&lt;param name="InvokeURLs" value="false"&gt;
&lt;embed src="/Blog/content/binary/Delphi/Components/Win7TWPrev/TaskWindows.wmv" type="application/x-mplayer2" autostart="1" enabled="1" showstatusbar="1" showdisplay="1" showcontrols="1" pluginspage="http://www.microsoft.com/Windows/MediaPlayer/" codebase="http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=6,0,0,0" width="800" height="665"&gt;&lt;/embed&gt; 
&lt;/object&gt;
&lt;br /&gt;
&lt;a href="/Blog/content/binary/Delphi/Components/Win7TWPrev/TaskWindows.wmv"&gt;Download
video (WMV, 4MB) here&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
Watch my blog for the upcoming release of the controls and see them live at the EKON
13 this week!
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.gumpi.com/Blog/aggbug.ashx?id=6d67335a-9c04-4e9d-a419-d28c6ab552be" /&gt;</description>
      <comments>http://www.gumpi.com/Blog/CommentView,guid,6d67335a-9c04-4e9d-a419-d28c6ab552be.aspx</comments>
      <category>Conferences</category>
      <category>Delphi</category>
      <category>Development</category>
      <category>Development (English)</category>
      <category>English</category>
      <category>Samples</category>
      <category>Windows</category>
      <category>Windows 7</category>
    </item>
    <item>
      <trackback:ping>http://www.gumpi.com/Blog/Trackback.aspx?guid=5b8afff7-3db8-4493-a186-3be87101b27b</trackback:ping>
      <pingback:server>http://www.gumpi.com/Blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.gumpi.com/Blog/PermaLink,guid,5b8afff7-3db8-4493-a186-3be87101b27b.aspx</pingback:target>
      <dc:creator>Daniel Wischnewski</dc:creator>
      <wfw:comment>http://www.gumpi.com/Blog/CommentView,guid,5b8afff7-3db8-4493-a186-3be87101b27b.aspx</wfw:comment>
      <wfw:commentRss>http://www.gumpi.com/Blog/SyndicationService.asmx/GetEntryCommentsRss?guid=5b8afff7-3db8-4493-a186-3be87101b27b</wfw:commentRss>
      <slash:comments>4</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Currently, I am getting ready to ship an update for the Windows 7 taskbar components.
As the preview, this one will be open source and free of charge for anyone to use
in any project.
</p>
        <p>
However, one problem still remains to be resolved. I try to get a "screen shot" from
a tab sheet, whether it is currently visible or not. The normal <a href="http://www.gumpi.com/Blog/ct.ashx?id=5b8afff7-3db8-4493-a186-3be87101b27b&amp;url=http%3a%2f%2fwww.codegear.com%2fproducts%2fdelphi%2fwin32">Delphi</a> method
WinControl.PaintTo, and the Windows API methods PrintWindow and BitBlt do not give
the desired results.
</p>
        <p>
What do I need this for? Well consider the image below, showing the tabs of the Internet
Explorer, currently opened. Something similar I want to create for <a href="http://www.gumpi.com/Blog/ct.ashx?id=5b8afff7-3db8-4493-a186-3be87101b27b&amp;url=http%3a%2f%2fwww.codegear.com%2fproducts%2fdelphi%2fwin32">Delphi</a> as
simple component. To create the preview, I must be able to get the "screen shot" of
all Tabcontrols, whether they are visible or not.
</p>
        <p align="center">
          <img src="http://www.gumpi.com/Blog/content/binary/Delphi/Components/Win7/TaskbarWindows.jpg" width="482" height="243" />
        </p>
        <p>
I have uploaded a sample application, which demonstrates the problem. Feel free to
download and test it. This application runs on Windows XP and Windows Vista as well,
as it does not demonstrate the preview windows, but simply the "copy" feature, ehm
problem.
</p>
        <p>
Feel free to send me any ideas you have regarding this problem, as all other solutions
would not be the best ;)
</p>
        <p>
          <a href="/Downloads/Delphi/CopyWindowProblem.zip">Download the problem sampler</a> (Source,
ZIP-file, 4 KB)
</p>
        <p>
Email any solution to dwischnewski (at) gmail.com
</p>
        <p>
Thank you for your support, I'll mention the solution provider in the finals.<br /></p>
        <p>
          <b>Update</b>I got the solution in my Inbox now, thanks to Craig Peterson from <a href="http://www.gumpi.com/Blog/ct.ashx?id=5b8afff7-3db8-4493-a186-3be87101b27b&amp;url=http%3a%2f%2fwww.scootersoftware.com%2f">Scooter
Software</a>, who already has helped me a great bit for this whole problem. I'll finish
the components now, await the release for October 1st. Be first to see them at the <a href="http://www.gumpi.com/Blog/ct.ashx?id=5b8afff7-3db8-4493-a186-3be87101b27b&amp;url=http%3a%2f%2fwww.entwickler-konferenz.de">EKON</a>.
</p>
        <img width="0" height="0" src="http://www.gumpi.com/Blog/aggbug.ashx?id=5b8afff7-3db8-4493-a186-3be87101b27b" />
      </body>
      <title>Update for the Windows 7 Taskbar Components coming soon</title>
      <guid isPermaLink="false">http://www.gumpi.com/Blog/PermaLink,guid,5b8afff7-3db8-4493-a186-3be87101b27b.aspx</guid>
      <link>http://www.gumpi.com/Blog/2009/09/16/UpdateForTheWindows7TaskbarComponentsComingSoon.aspx</link>
      <pubDate>Wed, 16 Sep 2009 14:25:41 GMT</pubDate>
      <description>		  &lt;p&gt;
Currently, I am getting ready to ship an update for the Windows 7 taskbar components.
As the preview, this one will be open source and free of charge for anyone to use
in any project.
&lt;/p&gt;
&lt;p&gt;
However, one problem still remains to be resolved. I try to get a "screen shot" from
a tab sheet, whether it is currently visible or not. The normal &lt;a href="http://www.gumpi.com/Blog/ct.ashx?id=5b8afff7-3db8-4493-a186-3be87101b27b&amp;amp;url=http%3a%2f%2fwww.codegear.com%2fproducts%2fdelphi%2fwin32"&gt;Delphi&lt;/a&gt; method
WinControl.PaintTo, and the Windows API methods PrintWindow and BitBlt do not give
the desired results.
&lt;/p&gt;
&lt;p&gt;
What do I need this for? Well consider the image below, showing the tabs of the Internet
Explorer, currently opened. Something similar I want to create for &lt;a href="http://www.gumpi.com/Blog/ct.ashx?id=5b8afff7-3db8-4493-a186-3be87101b27b&amp;amp;url=http%3a%2f%2fwww.codegear.com%2fproducts%2fdelphi%2fwin32"&gt;Delphi&lt;/a&gt; as
simple component. To create the preview, I must be able to get the "screen shot" of
all Tabcontrols, whether they are visible or not.
&lt;/p&gt;
&lt;p align="center"&gt;
&lt;img src="http://www.gumpi.com/Blog/content/binary/Delphi/Components/Win7/TaskbarWindows.jpg" width="482" height="243" /&gt;
&lt;/p&gt;
&lt;p&gt;
I have uploaded a sample application, which demonstrates the problem. Feel free to
download and test it. This application runs on Windows XP and Windows Vista as well,
as it does not demonstrate the preview windows, but simply the "copy" feature, ehm
problem.
&lt;/p&gt;
&lt;p&gt;
Feel free to send me any ideas you have regarding this problem, as all other solutions
would not be the best ;)
&lt;/p&gt;
&lt;p&gt;
&lt;a href="/Downloads/Delphi/CopyWindowProblem.zip"&gt;Download the problem sampler&lt;/a&gt; (Source,
ZIP-file, 4 KB)
&lt;/p&gt;
&lt;p&gt;
Email any solution to dwischnewski (at) gmail.com
&lt;/p&gt;
&lt;p&gt;
Thank you for your support, I'll mention the solution provider in the finals.&lt;br /&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;b&gt;Update&lt;/b&gt;I got the solution in my Inbox now, thanks to Craig Peterson from &lt;a href="http://www.gumpi.com/Blog/ct.ashx?id=5b8afff7-3db8-4493-a186-3be87101b27b&amp;amp;url=http%3a%2f%2fwww.scootersoftware.com%2f"&gt;Scooter
Software&lt;/a&gt;, who already has helped me a great bit for this whole problem. I'll finish
the components now, await the release for October 1st. Be first to see them at the &lt;a href="http://www.gumpi.com/Blog/ct.ashx?id=5b8afff7-3db8-4493-a186-3be87101b27b&amp;amp;url=http%3a%2f%2fwww.entwickler-konferenz.de"&gt;EKON&lt;/a&gt;.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.gumpi.com/Blog/aggbug.ashx?id=5b8afff7-3db8-4493-a186-3be87101b27b" /&gt;</description>
      <comments>http://www.gumpi.com/Blog/CommentView,guid,5b8afff7-3db8-4493-a186-3be87101b27b.aspx</comments>
      <category>Delphi</category>
      <category>Development</category>
      <category>Development (English)</category>
      <category>Samples</category>
      <category>Windows</category>
      <category>Windows 7</category>
    </item>
    <item>
      <trackback:ping>http://www.gumpi.com/Blog/Trackback.aspx?guid=f04ab36b-382d-48c6-a4ce-7a4bc71fc940</trackback:ping>
      <pingback:server>http://www.gumpi.com/Blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.gumpi.com/Blog/PermaLink,guid,f04ab36b-382d-48c6-a4ce-7a4bc71fc940.aspx</pingback:target>
      <dc:creator>Daniel Wischnewski</dc:creator>
      <wfw:comment>http://www.gumpi.com/Blog/CommentView,guid,f04ab36b-382d-48c6-a4ce-7a4bc71fc940.aspx</wfw:comment>
      <wfw:commentRss>http://www.gumpi.com/Blog/SyndicationService.asmx/GetEntryCommentsRss?guid=f04ab36b-382d-48c6-a4ce-7a4bc71fc940</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
During the recent days I was looking for a solution on how to access properties of
my Wacom tablet within a <a href="http://www.gumpi.com/Blog/ct.ashx?id=f04ab36b-382d-48c6-a4ce-7a4bc71fc940&amp;url=http%3a%2f%2fwww.codegear.com%2fproducts%2fdelphi%2fwin32">Delphi</a> application.
</p>
        <p>
Using the Pen &amp; Ink API of Windows is one possibility, however that offered much
more than I needed, not thinking about the time getting into that one as well. On
the <a href="http://www.gumpi.com/Blog/ct.ashx?id=f04ab36b-382d-48c6-a4ce-7a4bc71fc940&amp;url=http%3a%2f%2fwww.delphipraxis.net">Delphi-PRAXiS</a> I
found a link to Centaurix, a company offering an easy to use <a href="http://www.gumpi.com/Blog/ct.ashx?id=f04ab36b-382d-48c6-a4ce-7a4bc71fc940&amp;url=http%3a%2f%2fwww.codegear.com%2fproducts%2fdelphi%2fwin32">Delphi</a> component,
which gives me access to the properties I just needed. The component is freeware
and comes with source code.
</p>
        <p>
Great!
</p>
        <p>
Download <a href="http://www.gumpi.com/Blog/ct.ashx?id=f04ab36b-382d-48c6-a4ce-7a4bc71fc940&amp;url=http%3a%2f%2fwww.centaurix.com%2fproducts.html">here</a>.
</p>
        <img width="0" height="0" src="http://www.gumpi.com/Blog/aggbug.ashx?id=f04ab36b-382d-48c6-a4ce-7a4bc71fc940" />
      </body>
      <title>Graphic Tablets and Delphi</title>
      <guid isPermaLink="false">http://www.gumpi.com/Blog/PermaLink,guid,f04ab36b-382d-48c6-a4ce-7a4bc71fc940.aspx</guid>
      <link>http://www.gumpi.com/Blog/2009/02/12/GraphicTabletsAndDelphi.aspx</link>
      <pubDate>Thu, 12 Feb 2009 14:44:39 GMT</pubDate>
      <description>&lt;p&gt;
During the recent days I was looking for a solution on how to access properties of
my Wacom tablet within a &lt;a href="http://www.gumpi.com/Blog/ct.ashx?id=f04ab36b-382d-48c6-a4ce-7a4bc71fc940&amp;amp;url=http%3a%2f%2fwww.codegear.com%2fproducts%2fdelphi%2fwin32"&gt;Delphi&lt;/a&gt; application.
&lt;/p&gt;
&lt;p&gt;
Using the Pen &amp;amp; Ink API of Windows is one possibility, however that offered much
more than I needed, not thinking about the time getting into that one as well. On
the &lt;a href="http://www.gumpi.com/Blog/ct.ashx?id=f04ab36b-382d-48c6-a4ce-7a4bc71fc940&amp;amp;url=http%3a%2f%2fwww.delphipraxis.net"&gt;Delphi-PRAXiS&lt;/a&gt; I
found a link to Centaurix, a company offering an easy to use &lt;a href="http://www.gumpi.com/Blog/ct.ashx?id=f04ab36b-382d-48c6-a4ce-7a4bc71fc940&amp;amp;url=http%3a%2f%2fwww.codegear.com%2fproducts%2fdelphi%2fwin32"&gt;Delphi&lt;/a&gt; component,
which gives me access to the properties I just needed. The component&amp;nbsp;is freeware
and comes with source code.
&lt;/p&gt;
&lt;p&gt;
Great!
&lt;/p&gt;
&lt;p&gt;
Download &lt;a href="http://www.gumpi.com/Blog/ct.ashx?id=f04ab36b-382d-48c6-a4ce-7a4bc71fc940&amp;amp;url=http%3a%2f%2fwww.centaurix.com%2fproducts.html"&gt;here&lt;/a&gt;.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.gumpi.com/Blog/aggbug.ashx?id=f04ab36b-382d-48c6-a4ce-7a4bc71fc940" /&gt;</description>
      <comments>http://www.gumpi.com/Blog/CommentView,guid,f04ab36b-382d-48c6-a4ce-7a4bc71fc940.aspx</comments>
      <category>Delphi</category>
      <category>Development</category>
      <category>Development (English)</category>
      <category>English</category>
      <category>Samples</category>
    </item>
    <item>
      <trackback:ping>http://www.gumpi.com/Blog/Trackback.aspx?guid=876f23a4-a1f1-467f-9d8b-a02b464878bd</trackback:ping>
      <pingback:server>http://www.gumpi.com/Blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.gumpi.com/Blog/PermaLink,guid,876f23a4-a1f1-467f-9d8b-a02b464878bd.aspx</pingback:target>
      <dc:creator>Daniel Wischnewski</dc:creator>
      <wfw:comment>http://www.gumpi.com/Blog/CommentView,guid,876f23a4-a1f1-467f-9d8b-a02b464878bd.aspx</wfw:comment>
      <wfw:commentRss>http://www.gumpi.com/Blog/SyndicationService.asmx/GetEntryCommentsRss?guid=876f23a4-a1f1-467f-9d8b-a02b464878bd</wfw:commentRss>
      <slash:comments>4</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Today, I show you the second set of screen shots from the Windows 7 Taskbar components.
Since Windows 95 - which introduced the last real change in how the user handles multiple
running applications on Windows - we all know the notification area. Sadly many programs
have abused this area, so that on some users computers this really grow into a monster
featuring easily 30 and more icons. Never on my computer though ;-)
</p>
        <p>
Windows 7 stops this Taskbar spamming in a really effictive way. The notification
icons will not be shown anymore, at least on default. They are all hidden away. Even
when your application wants to show a (bubble) hint, the user will not see it
unless the user approved your application first. Now, since sometimes showing a state
can be really important, Windows 7 introduced overlay icons in the Taskbar entry for
running processes. This way the application can show some information without the
need for more screen real estate - the application already has an entry in the Taskbar
anyway - at least in most cases.
</p>
        <p>
Click on images to view full size version.
</p>
        <p align="center">
          <a href="http://www.gumpi.com/Blog/ct.ashx?id=876f23a4-a1f1-467f-9d8b-a02b464878bd&amp;url=http%3a%2f%2fwww.gumpi.com%2fblog%2fcontent%2fbinary%2fDelphi%2fComponents%2fWin7%2fWin7_OI_NotificationArea_lg.png">
            <img alt="Windows 7 automatically hides all notification icons unless the user wants them to show" src="http://www.gumpi.com/blog/content/binary/Delphi/Components/Win7/Win7_OI_NotificationArea_sm.png" border="0" />
          </a>
          <br />
          <font size="1">Windows 7 automatically hides all notification icons unless the user
wants them to show.</font>
        </p>
        <p align="center">
          <a href="http://www.gumpi.com/Blog/ct.ashx?id=876f23a4-a1f1-467f-9d8b-a02b464878bd&amp;url=http%3a%2f%2fwww.gumpi.com%2fblog%2fcontent%2fbinary%2fDelphi%2fComponents%2fWin7%2fWin7_OI_Show_lg.png">
            <img alt="Showing the tasks state in the Windows 7 Taskbar" src="http://www.gumpi.com/blog/content/binary/Delphi/Components/Win7/Win7_OI_Show_sm.png" border="0" />
          </a>
          <br />
          <font size="1">Showing the tasks state in the Windows 7 Taskbar.</font>
        </p>
        <p align="left">
Note the overlay icon in the second screen shot. Maybe the application is performing
a search. A side effect of this is, that the designers should start creating application
icons and overlay icons that work with each other well. Overlay icons are shown only
if the user uses large icons in the Windows Taskbar (default setting).
</p>
        <p align="left">
For your <a href="http://www.gumpi.com/Blog/ct.ashx?id=876f23a4-a1f1-467f-9d8b-a02b464878bd&amp;url=http%3a%2f%2fwww.codegear.com%2fproducts%2fdelphi%2fwin32">Delphi</a> application,
simply drop a the TdwOverlayIcon component on your form, connect it to an image list
(16 x 16 pixels for bitmap size) and set the image index used. Set it to -1 for displaying
no overlay icon.
</p>
        <img width="0" height="0" src="http://www.gumpi.com/Blog/aggbug.ashx?id=876f23a4-a1f1-467f-9d8b-a02b464878bd" />
      </body>
      <title>Windows 7 - Displaying your applications status in the Windows Taskbar</title>
      <guid isPermaLink="false">http://www.gumpi.com/Blog/PermaLink,guid,876f23a4-a1f1-467f-9d8b-a02b464878bd.aspx</guid>
      <link>http://www.gumpi.com/Blog/2009/01/24/Windows7DisplayingYourApplicationsStatusInTheWindowsTaskbar.aspx</link>
      <pubDate>Sat, 24 Jan 2009 12:21:47 GMT</pubDate>
      <description>&lt;p&gt;
Today, I show you the second set of screen shots from the Windows 7 Taskbar components.
Since Windows 95 - which introduced the last real change in how the user handles multiple
running applications on Windows - we all know the notification area. Sadly many programs
have abused this area, so that on some users computers this really grow into a monster
featuring easily 30 and more icons. Never on my computer though ;-)
&lt;/p&gt;
&lt;p&gt;
Windows 7 stops this Taskbar spamming in a really effictive way. The notification
icons will not be shown anymore, at least on default. They are all hidden away. Even
when your application wants to show&amp;nbsp;a (bubble) hint, the user will not see it
unless the user approved your application first. Now, since sometimes showing a state
can be really important, Windows 7 introduced overlay icons in the Taskbar entry for
running processes. This way the application can show some information without the
need for more screen real estate - the application already has an entry in the Taskbar
anyway - at least in most cases.
&lt;/p&gt;
&lt;p&gt;
Click on images to view full size version.
&lt;/p&gt;
&lt;p align=center&gt;
&lt;a href="http://www.gumpi.com/Blog/ct.ashx?id=876f23a4-a1f1-467f-9d8b-a02b464878bd&amp;amp;url=http%3a%2f%2fwww.gumpi.com%2fblog%2fcontent%2fbinary%2fDelphi%2fComponents%2fWin7%2fWin7_OI_NotificationArea_lg.png"&gt;&lt;img alt="Windows 7 automatically hides all notification icons unless the user wants them to show" src="http://www.gumpi.com/blog/content/binary/Delphi/Components/Win7/Win7_OI_NotificationArea_sm.png" border=0&gt;&lt;/a&gt;
&lt;br&gt;
&lt;font size=1&gt;Windows 7 automatically hides all notification icons unless the user
wants them to show.&lt;/font&gt;
&lt;/p&gt;
&lt;p align=center&gt;
&lt;a href="http://www.gumpi.com/Blog/ct.ashx?id=876f23a4-a1f1-467f-9d8b-a02b464878bd&amp;amp;url=http%3a%2f%2fwww.gumpi.com%2fblog%2fcontent%2fbinary%2fDelphi%2fComponents%2fWin7%2fWin7_OI_Show_lg.png"&gt;&lt;img alt="Showing the tasks state in the Windows 7 Taskbar" src="http://www.gumpi.com/blog/content/binary/Delphi/Components/Win7/Win7_OI_Show_sm.png" border=0&gt;&lt;/a&gt;
&lt;br&gt;
&lt;font size=1&gt;Showing the tasks state in the Windows 7 Taskbar.&lt;/font&gt;
&lt;/p&gt;
&lt;p align=left&gt;
Note the overlay icon in the second screen shot. Maybe the application is performing
a search. A side effect of this is, that the designers should start creating application
icons and overlay icons that work with each other well. Overlay icons are shown only
if the user uses large icons in the Windows Taskbar (default setting).
&lt;/p&gt;
&lt;p align=left&gt;
For your &lt;a href="http://www.gumpi.com/Blog/ct.ashx?id=876f23a4-a1f1-467f-9d8b-a02b464878bd&amp;amp;url=http%3a%2f%2fwww.codegear.com%2fproducts%2fdelphi%2fwin32"&gt;Delphi&lt;/a&gt; application,
simply drop a the TdwOverlayIcon component on your form, connect it to an image list
(16 x 16 pixels for bitmap size) and set the image index used. Set it to -1 for displaying
no overlay icon.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.gumpi.com/Blog/aggbug.ashx?id=876f23a4-a1f1-467f-9d8b-a02b464878bd" /&gt;</description>
      <comments>http://www.gumpi.com/Blog/CommentView,guid,876f23a4-a1f1-467f-9d8b-a02b464878bd.aspx</comments>
      <category>Delphi</category>
      <category>Development</category>
      <category>Development (English)</category>
      <category>English</category>
      <category>Samples</category>
      <category>Windows</category>
      <category>Windows 7</category>
    </item>
    <item>
      <trackback:ping>http://www.gumpi.com/Blog/Trackback.aspx?guid=0c62b78e-4355-43d1-ad84-b3cbab768d68</trackback:ping>
      <pingback:server>http://www.gumpi.com/Blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.gumpi.com/Blog/PermaLink,guid,0c62b78e-4355-43d1-ad84-b3cbab768d68.aspx</pingback:target>
      <dc:creator>Daniel Wischnewski</dc:creator>
      <wfw:comment>http://www.gumpi.com/Blog/CommentView,guid,0c62b78e-4355-43d1-ad84-b3cbab768d68.aspx</wfw:comment>
      <wfw:commentRss>http://www.gumpi.com/Blog/SyndicationService.asmx/GetEntryCommentsRss?guid=0c62b78e-4355-43d1-ad84-b3cbab768d68</wfw:commentRss>
      <slash:comments>2</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
You have asked for it, so here are the first images for you. Today I want to show
you a few screen shots of displaying the progress of a rather lengthy task in the
Windows 7 Taskbar. You should not that Microsoft does not encourage you to use this
for shorter tasks which usually finish within a few seconds. But this is up to you
in the end ;-)
</p>
        <p>
For all of you <a href="http://www.gumpi.com/Blog/ct.ashx?id=0c62b78e-4355-43d1-ad84-b3cbab768d68&amp;url=http%3a%2f%2fwww.codegear.com%2fproducts%2fdelphi%2fwin32">Delphi</a> 7
users, the first screen shot shows <a href="http://www.gumpi.com/Blog/ct.ashx?id=0c62b78e-4355-43d1-ad84-b3cbab768d68&amp;url=http%3a%2f%2fwww.codegear.com%2fproducts%2fdelphi%2fwin32">Delphi</a> 7
running on Windows 7 using those components. So, this works as well.
</p>
        <p>
Click on images to view full size version.
</p>
        <p align="center">
          <a href="http://www.gumpi.com/Blog/ct.ashx?id=0c62b78e-4355-43d1-ad84-b3cbab768d68&amp;url=http%3a%2f%2fwww.gumpi.com%2fblog%2fcontent%2fbinary%2fDelphi%2fComponents%2fWin7%2fWin7_Delphi7_lg.png">
            <img alt="Del phi 7 with Demo app and Windows 7 components" src="http://www.gumpi.com/blog/content/binary/Delphi/Components/Win7/Win7_Delphi7_sm.png" border="0" />
          </a>
          <br />
          <font size="1">
            <a href="http://www.gumpi.com/Blog/ct.ashx?id=0c62b78e-4355-43d1-ad84-b3cbab768d68&amp;url=http%3a%2f%2fwww.codegear.com%2fproducts%2fdelphi%2fwin32">Delphi</a> 7
running on Windows 7. The demo application is loaded in the IDE, the components are
shown in the tool palette.</font>
        </p>
        <p align="center">
          <a href="http://www.gumpi.com/Blog/ct.ashx?id=0c62b78e-4355-43d1-ad84-b3cbab768d68&amp;url=http%3a%2f%2fwww.gumpi.com%2fblog%2fcontent%2fbinary%2fDelphi%2fComponents%2fWin7%2fWin7_TB_Marquee_lg.png">
            <img alt="Showing a marquee in the taskbar" src="http://www.gumpi.com/blog/content/binary/Delphi/Components/Win7/Win7_TB_Marquee_sm.png" border="0" />
          </a>
          <br />
          <font size="1">The marquee shows a task in progress with undeterminable end - like
connecting to a server.</font>
        </p>
        <p align="center">
          <a href="http://www.gumpi.com/Blog/ct.ashx?id=0c62b78e-4355-43d1-ad84-b3cbab768d68&amp;url=http%3a%2f%2fwww.gumpi.com%2fblog%2fcontent%2fbinary%2fDelphi%2fComponents%2fWin7%2fWin7_TB_Progress_lg.png">
            <img alt="Showing a progressing task" src="http://www.gumpi.com/blog/content/binary/Delphi/Components/Win7/Win7_TB_Progress_sm.png" border="0" />
          </a>
          <br />
          <font size="1">The progress is coming along just fine.</font>
        </p>
        <p align="center">
          <a href="http://www.gumpi.com/Blog/ct.ashx?id=0c62b78e-4355-43d1-ad84-b3cbab768d68&amp;url=http%3a%2f%2fwww.gumpi.com%2fblog%2fcontent%2fbinary%2fDelphi%2fComponents%2fWin7%2fWin7_TB_ProgressPaused_lg.png">
            <img alt="Showing a paused task" src="http://www.gumpi.com/blog/content/binary/Delphi/Components/Win7/Win7_TB_ProgressPaused_sm.png" border="0" />
          </a>
          <br />
          <font size="1">The application may be waiting for some user interaction, the current
task is paused.</font>
        </p>
        <p align="left">
Further, you can cancel a task, coloring the progressbar red as well.
</p>
        <p align="left">
For those of you not knowing Windows 7 just yet and wondering why some application
icons have a border in the taskbar and some do not: Windows 7 allows you to pin applications
to the taskbar. This way, they will always be in the same order/place. The framed
ones are actually running, others are just waiting to be started.
</p>
        <img width="0" height="0" src="http://www.gumpi.com/Blog/aggbug.ashx?id=0c62b78e-4355-43d1-ad84-b3cbab768d68" />
      </body>
      <title>Windows 7 - Displaying Progress of a Task in the Windows Taskbar</title>
      <guid isPermaLink="false">http://www.gumpi.com/Blog/PermaLink,guid,0c62b78e-4355-43d1-ad84-b3cbab768d68.aspx</guid>
      <link>http://www.gumpi.com/Blog/2009/01/21/Windows7DisplayingProgressOfATaskInTheWindowsTaskbar.aspx</link>
      <pubDate>Wed, 21 Jan 2009 11:56:23 GMT</pubDate>
      <description>&lt;p&gt;
You have asked for it, so here are the first images for you. Today I want to show
you a few screen shots of displaying the progress of a rather lengthy task in the
Windows 7 Taskbar. You should not that Microsoft does not encourage you to use this
for shorter tasks which usually finish within a few seconds. But this is up to you
in the end ;-)
&lt;/p&gt;
&lt;p&gt;
For all of you &lt;a href="http://www.gumpi.com/Blog/ct.ashx?id=0c62b78e-4355-43d1-ad84-b3cbab768d68&amp;amp;url=http%3a%2f%2fwww.codegear.com%2fproducts%2fdelphi%2fwin32"&gt;Delphi&lt;/a&gt; 7
users, the first screen shot shows &lt;a href="http://www.gumpi.com/Blog/ct.ashx?id=0c62b78e-4355-43d1-ad84-b3cbab768d68&amp;amp;url=http%3a%2f%2fwww.codegear.com%2fproducts%2fdelphi%2fwin32"&gt;Delphi&lt;/a&gt; 7
running on Windows 7 using those components. So, this works as well.
&lt;/p&gt;
&lt;p&gt;
Click on images to view full size version.
&lt;/p&gt;
&lt;p align=center&gt;
&lt;a href="http://www.gumpi.com/Blog/ct.ashx?id=0c62b78e-4355-43d1-ad84-b3cbab768d68&amp;amp;url=http%3a%2f%2fwww.gumpi.com%2fblog%2fcontent%2fbinary%2fDelphi%2fComponents%2fWin7%2fWin7_Delphi7_lg.png"&gt;&lt;img alt="Del phi 7 with Demo app and Windows 7 components" src="http://www.gumpi.com/blog/content/binary/Delphi/Components/Win7/Win7_Delphi7_sm.png" border=0&gt;&lt;/a&gt;
&lt;br&gt;
&lt;font size=1&gt;&lt;a href="http://www.gumpi.com/Blog/ct.ashx?id=0c62b78e-4355-43d1-ad84-b3cbab768d68&amp;amp;url=http%3a%2f%2fwww.codegear.com%2fproducts%2fdelphi%2fwin32"&gt;Delphi&lt;/a&gt; 7
running on Windows 7. The demo application is loaded in the IDE, the components are
shown in the tool palette.&lt;/font&gt;
&lt;/p&gt;
&lt;p align=center&gt;
&lt;a href="http://www.gumpi.com/Blog/ct.ashx?id=0c62b78e-4355-43d1-ad84-b3cbab768d68&amp;amp;url=http%3a%2f%2fwww.gumpi.com%2fblog%2fcontent%2fbinary%2fDelphi%2fComponents%2fWin7%2fWin7_TB_Marquee_lg.png"&gt;&lt;img alt="Showing a marquee in the taskbar" src="http://www.gumpi.com/blog/content/binary/Delphi/Components/Win7/Win7_TB_Marquee_sm.png" border=0&gt;&lt;/a&gt;
&lt;br&gt;
&lt;font size=1&gt;The marquee shows a task in progress with undeterminable end - like connecting
to a server.&lt;/font&gt;
&lt;/p&gt;
&lt;p align=center&gt;
&lt;a href="http://www.gumpi.com/Blog/ct.ashx?id=0c62b78e-4355-43d1-ad84-b3cbab768d68&amp;amp;url=http%3a%2f%2fwww.gumpi.com%2fblog%2fcontent%2fbinary%2fDelphi%2fComponents%2fWin7%2fWin7_TB_Progress_lg.png"&gt;&lt;img alt="Showing a progressing task" src="http://www.gumpi.com/blog/content/binary/Delphi/Components/Win7/Win7_TB_Progress_sm.png" border=0&gt;&lt;/a&gt;
&lt;br&gt;
&lt;font size=1&gt;The progress is coming along just fine.&lt;/font&gt;
&lt;/p&gt;
&lt;p align=center&gt;
&lt;a href="http://www.gumpi.com/Blog/ct.ashx?id=0c62b78e-4355-43d1-ad84-b3cbab768d68&amp;amp;url=http%3a%2f%2fwww.gumpi.com%2fblog%2fcontent%2fbinary%2fDelphi%2fComponents%2fWin7%2fWin7_TB_ProgressPaused_lg.png"&gt;&lt;img alt="Showing a paused task" src="http://www.gumpi.com/blog/content/binary/Delphi/Components/Win7/Win7_TB_ProgressPaused_sm.png" border=0&gt;&lt;/a&gt;
&lt;br&gt;
&lt;font size=1&gt;The application may be waiting for some user interaction, the current
task is paused.&lt;/font&gt;
&lt;/p&gt;
&lt;p align=left&gt;
Further, you can cancel a task, coloring the progressbar red as well.
&lt;/p&gt;
&lt;p align=left&gt;
For those of you not knowing Windows 7 just yet and wondering why some application
icons have a border in the taskbar and some do not: Windows 7 allows you to pin applications
to the taskbar. This way, they will always be in the same order/place. The framed
ones are actually running, others are just waiting to be started.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.gumpi.com/Blog/aggbug.ashx?id=0c62b78e-4355-43d1-ad84-b3cbab768d68" /&gt;</description>
      <comments>http://www.gumpi.com/Blog/CommentView,guid,0c62b78e-4355-43d1-ad84-b3cbab768d68.aspx</comments>
      <category>Delphi</category>
      <category>Development</category>
      <category>Development (English)</category>
      <category>English</category>
      <category>Samples</category>
      <category>Windows</category>
      <category>Windows 7</category>
    </item>
    <item>
      <trackback:ping>http://www.gumpi.com/Blog/Trackback.aspx?guid=c8d41a6c-970f-4621-823f-b0134de7af7b</trackback:ping>
      <pingback:server>http://www.gumpi.com/Blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.gumpi.com/Blog/PermaLink,guid,c8d41a6c-970f-4621-823f-b0134de7af7b.aspx</pingback:target>
      <dc:creator>Daniel Wischnewski</dc:creator>
      <wfw:comment>http://www.gumpi.com/Blog/CommentView,guid,c8d41a6c-970f-4621-823f-b0134de7af7b.aspx</wfw:comment>
      <wfw:commentRss>http://www.gumpi.com/Blog/SyndicationService.asmx/GetEntryCommentsRss?guid=c8d41a6c-970f-4621-823f-b0134de7af7b</wfw:commentRss>
      <slash:comments>5</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Well, as written here before, I have toyed around with Windows 7 and created a few
Controls that you can simply place on your Form to support some of the most obvious
Windows 7 features. Currently available are:
</p>
        <ul>
          <li>
Jump Lists - right click your application entry on the taskbar to see those 
</li>
          <li>
Overlay Icon - show the state of your application right in the taskbar (notification
icons are hidden by Windows 7 by default, finally) 
</li>
          <li>
Progress indicator in the taskbar button 
</li>
          <li>
Taskbar Thumbnails - you application can be controlled directly from the taskbar
preview window</li>
        </ul>
        <p>
Please note, that if you have Aero turned of, or your Windows 7 is running in a VM,
most of the features are not supported by Windows 7 (atm?).
</p>
        <p>
The installer provides packages for <a href="http://www.gumpi.com/Blog/ct.ashx?id=c8d41a6c-970f-4621-823f-b0134de7af7b&amp;url=http%3a%2f%2fwww.codegear.com%2fproducts%2fdelphi%2fwin32">Delphi</a> 7, <a href="http://www.gumpi.com/Blog/ct.ashx?id=c8d41a6c-970f-4621-823f-b0134de7af7b&amp;url=http%3a%2f%2fwww.codegear.com%2fproducts%2fdelphi%2fwin32">Delphi</a> 2006, <a href="http://www.gumpi.com/Blog/ct.ashx?id=c8d41a6c-970f-4621-823f-b0134de7af7b&amp;url=http%3a%2f%2fwww.codegear.com%2fproducts%2fdelphi%2fwin32">Delphi</a> 2007,
and <a href="http://www.gumpi.com/Blog/ct.ashx?id=c8d41a6c-970f-4621-823f-b0134de7af7b&amp;url=http%3a%2f%2fwww.codegear.com%2fproducts%2fdelphi%2fwin32">Delphi</a> 2009.
</p>
        <p>
Further, those are just the first version in early Alpha State, but they are for free
;-) If you want to use them to create your own controls, those MUST be placed under
GPL. For use in your applications you can choose freely between GPL, LPGL and MPL,
whatever suits your needs.
</p>
        <p>
In the coming days I'll post a few screen shots and/or short videos demonstrating
those controls in action.
</p>
        <p>
If you have suggestions, improvements, or anything else regarding those controls,
do not hesitate to contact me ;-)
</p>
        <p>
          <a href="http://www.gumpi.com/Blog/ct.ashx?id=c8d41a6c-970f-4621-823f-b0134de7af7b&amp;url=http%3a%2f%2fwww.gumpi.com%2fDownloads%2fDelphi%2fWin7Comp.zip">Download
the installer (1,5 MB)</a>
        </p>
        <p>
Note: the installer only copies the files to your local hard drive (default folder:
User Documents\<a href="http://www.gumpi.com/Blog/ct.ashx?id=c8d41a6c-970f-4621-823f-b0134de7af7b&amp;url=http%3a%2f%2fwww.codegear.com%2fproducts%2fdelphi%2fwin32">Delphi</a> Win7
Support). You must open the corresponding project group/package and install it into
your <a href="http://www.gumpi.com/Blog/ct.ashx?id=c8d41a6c-970f-4621-823f-b0134de7af7b&amp;url=http%3a%2f%2fwww.codegear.com%2fproducts%2fdelphi%2fwin32">Delphi</a> IDE.
</p>
        <p>
Have fun,<br />
Daniel
</p>
        <img width="0" height="0" src="http://www.gumpi.com/Blog/aggbug.ashx?id=c8d41a6c-970f-4621-823f-b0134de7af7b" />
      </body>
      <title>Alpha 1 of "Windows 7 Controls for Delphi"</title>
      <guid isPermaLink="false">http://www.gumpi.com/Blog/PermaLink,guid,c8d41a6c-970f-4621-823f-b0134de7af7b.aspx</guid>
      <link>http://www.gumpi.com/Blog/2009/01/20/Alpha1OfWindows7ControlsForDelphi.aspx</link>
      <pubDate>Tue, 20 Jan 2009 10:53:05 GMT</pubDate>
      <description>&lt;p&gt;
Well, as written here before, I have toyed around with Windows 7 and created a few
Controls that you can simply place on your Form to support some of the most obvious
Windows 7 features. Currently available are:
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
Jump Lists - right click your application entry on the taskbar to see those 
&lt;li&gt;
Overlay Icon - show the state of your application right in the taskbar (notification
icons are hidden by Windows 7 by default, finally) 
&lt;li&gt;
Progress indicator in the taskbar button 
&lt;li&gt;
Taskbar Thumbnails -&amp;nbsp;you application can be controlled directly from the taskbar
preview window&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
Please note, that if you have Aero turned of, or your Windows 7 is running in a VM,
most of the features are not supported by Windows 7 (atm?).
&lt;/p&gt;
&lt;p&gt;
The installer provides packages for &lt;a href="http://www.gumpi.com/Blog/ct.ashx?id=c8d41a6c-970f-4621-823f-b0134de7af7b&amp;amp;url=http%3a%2f%2fwww.codegear.com%2fproducts%2fdelphi%2fwin32"&gt;Delphi&lt;/a&gt; 7, &lt;a href="http://www.gumpi.com/Blog/ct.ashx?id=c8d41a6c-970f-4621-823f-b0134de7af7b&amp;amp;url=http%3a%2f%2fwww.codegear.com%2fproducts%2fdelphi%2fwin32"&gt;Delphi&lt;/a&gt; 2006, &lt;a href="http://www.gumpi.com/Blog/ct.ashx?id=c8d41a6c-970f-4621-823f-b0134de7af7b&amp;amp;url=http%3a%2f%2fwww.codegear.com%2fproducts%2fdelphi%2fwin32"&gt;Delphi&lt;/a&gt; 2007,
and &lt;a href="http://www.gumpi.com/Blog/ct.ashx?id=c8d41a6c-970f-4621-823f-b0134de7af7b&amp;amp;url=http%3a%2f%2fwww.codegear.com%2fproducts%2fdelphi%2fwin32"&gt;Delphi&lt;/a&gt; 2009.
&lt;/p&gt;
&lt;p&gt;
Further, those are just the first version in early Alpha State, but they are for free
;-) If you want to use them to create your own controls, those MUST be placed under
GPL. For use in your applications you can choose freely between GPL, LPGL and MPL,
whatever suits your needs.
&lt;/p&gt;
&lt;p&gt;
In the coming days I'll post a few screen shots and/or short videos demonstrating
those controls in action.
&lt;/p&gt;
&lt;p&gt;
If you have suggestions, improvements, or anything else regarding those controls,
do not hesitate to contact me ;-)
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.gumpi.com/Blog/ct.ashx?id=c8d41a6c-970f-4621-823f-b0134de7af7b&amp;amp;url=http%3a%2f%2fwww.gumpi.com%2fDownloads%2fDelphi%2fWin7Comp.zip"&gt;Download
the installer (1,5 MB)&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
Note: the installer only copies the files to your local hard drive (default folder:
User Documents\&lt;a href="http://www.gumpi.com/Blog/ct.ashx?id=c8d41a6c-970f-4621-823f-b0134de7af7b&amp;amp;url=http%3a%2f%2fwww.codegear.com%2fproducts%2fdelphi%2fwin32"&gt;Delphi&lt;/a&gt; Win7
Support). You must open the corresponding project group/package and install it into
your &lt;a href="http://www.gumpi.com/Blog/ct.ashx?id=c8d41a6c-970f-4621-823f-b0134de7af7b&amp;amp;url=http%3a%2f%2fwww.codegear.com%2fproducts%2fdelphi%2fwin32"&gt;Delphi&lt;/a&gt; IDE.
&lt;/p&gt;
&lt;p&gt;
Have fun,&lt;br&gt;
Daniel
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.gumpi.com/Blog/aggbug.ashx?id=c8d41a6c-970f-4621-823f-b0134de7af7b" /&gt;</description>
      <comments>http://www.gumpi.com/Blog/CommentView,guid,c8d41a6c-970f-4621-823f-b0134de7af7b.aspx</comments>
      <category>Delphi</category>
      <category>Development</category>
      <category>Development (English)</category>
      <category>English</category>
      <category>Samples</category>
      <category>Windows</category>
      <category>Windows 7</category>
    </item>
    <item>
      <trackback:ping>http://www.gumpi.com/Blog/Trackback.aspx?guid=12df6caf-e3b0-4386-a1cb-c95d15806024</trackback:ping>
      <pingback:server>http://www.gumpi.com/Blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.gumpi.com/Blog/PermaLink,guid,12df6caf-e3b0-4386-a1cb-c95d15806024.aspx</pingback:target>
      <dc:creator>Daniel Wischnewski</dc:creator>
      <wfw:comment>http://www.gumpi.com/Blog/CommentView,guid,12df6caf-e3b0-4386-a1cb-c95d15806024.aspx</wfw:comment>
      <wfw:commentRss>http://www.gumpi.com/Blog/SyndicationService.asmx/GetEntryCommentsRss?guid=12df6caf-e3b0-4386-a1cb-c95d15806024</wfw:commentRss>
      <slash:comments>1</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Probably tomorrow, I will publish my first attempt to create controls tailored towards
Windows 7. Naturally, those controls will run on older Systems (tested on XP and Vista),
but the new Windows 7 functionality will be available on Windows 7 only, silently
failing on older systems.
</p>
        <p>
Currently, I am setting up a VM with Windows XP and <a href="http://www.gumpi.com/Blog/ct.ashx?id=12df6caf-e3b0-4386-a1cb-c95d15806024&amp;url=http%3a%2f%2fwww.codegear.com%2fproducts%2fdelphi%2fwin32">Delphi</a> 2006
to test them. Wait a little more and enjoy ;-)
</p>
        <p>
The packages for <a href="http://www.gumpi.com/Blog/ct.ashx?id=12df6caf-e3b0-4386-a1cb-c95d15806024&amp;url=http%3a%2f%2fwww.codegear.com%2fproducts%2fdelphi%2fwin32">Delphi</a> 2006,
2007, and 2009 will be included.   
</p>
        <img width="0" height="0" src="http://www.gumpi.com/Blog/aggbug.ashx?id=12df6caf-e3b0-4386-a1cb-c95d15806024" />
      </body>
      <title>Windows 7 Controls for Delphi</title>
      <guid isPermaLink="false">http://www.gumpi.com/Blog/PermaLink,guid,12df6caf-e3b0-4386-a1cb-c95d15806024.aspx</guid>
      <link>http://www.gumpi.com/Blog/2009/01/19/Windows7ControlsForDelphi.aspx</link>
      <pubDate>Mon, 19 Jan 2009 14:57:04 GMT</pubDate>
      <description>&lt;p&gt;
Probably tomorrow, I will publish my first attempt to create controls tailored towards
Windows 7. Naturally, those controls will run on older Systems (tested on XP and Vista),
but the new Windows 7 functionality will be available on Windows 7 only, silently
failing on older systems.
&lt;/p&gt;
&lt;p&gt;
Currently, I am setting up a VM with Windows XP and &lt;a href="http://www.gumpi.com/Blog/ct.ashx?id=12df6caf-e3b0-4386-a1cb-c95d15806024&amp;amp;url=http%3a%2f%2fwww.codegear.com%2fproducts%2fdelphi%2fwin32"&gt;Delphi&lt;/a&gt; 2006
to test them. Wait a little more and enjoy ;-)
&lt;/p&gt;
&lt;p&gt;
The packages for &lt;a href="http://www.gumpi.com/Blog/ct.ashx?id=12df6caf-e3b0-4386-a1cb-c95d15806024&amp;amp;url=http%3a%2f%2fwww.codegear.com%2fproducts%2fdelphi%2fwin32"&gt;Delphi&lt;/a&gt; 2006,
2007, and 2009 will be included.&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.gumpi.com/Blog/aggbug.ashx?id=12df6caf-e3b0-4386-a1cb-c95d15806024" /&gt;</description>
      <comments>http://www.gumpi.com/Blog/CommentView,guid,12df6caf-e3b0-4386-a1cb-c95d15806024.aspx</comments>
      <category>Delphi</category>
      <category>Development</category>
      <category>Development (English)</category>
      <category>English</category>
      <category>Samples</category>
      <category>Windows</category>
      <category>Windows 7</category>
    </item>
    <item>
      <trackback:ping>http://www.gumpi.com/Blog/Trackback.aspx?guid=0f9bb456-e099-457f-85b3-0480dc37abed</trackback:ping>
      <pingback:server>http://www.gumpi.com/Blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.gumpi.com/Blog/PermaLink,guid,0f9bb456-e099-457f-85b3-0480dc37abed.aspx</pingback:target>
      <dc:creator>Daniel Wischnewski</dc:creator>
      <wfw:comment>http://www.gumpi.com/Blog/CommentView,guid,0f9bb456-e099-457f-85b3-0480dc37abed.aspx</wfw:comment>
      <wfw:commentRss>http://www.gumpi.com/Blog/SyndicationService.asmx/GetEntryCommentsRss?guid=0f9bb456-e099-457f-85b3-0480dc37abed</wfw:commentRss>
      <slash:comments>3</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
During the last days I have taken the time to get familar with Windows 7, at least
a little. So far, I do like it, though it is far from stable on my machine at the
moment - at least, Windows Vista was better in that respect.
</p>
        <p>
The new Taskbar and the start menu are pretty amazing. I like the feature to show
progress and states on it, as well as add buttons to the window preview panes. Also,
the Jump Lists are quiet nice, so I started importing those features into <a href="http://www.gumpi.com/Blog/ct.ashx?id=0f9bb456-e099-457f-85b3-0480dc37abed&amp;url=http%3a%2f%2fwww.codegear.com%2fproducts%2fdelphi%2fwin32">Delphi</a>,
all available as a small component set. Those will be available soon, with more details
about what and how they will work.
</p>
        <p>
However, so far I have seen many sample videos, read quiet a few blog entries on how
to program those jump list, but they all habe one thing in common: they are missing
the code samples. If you are looking for those samples, download the <a href="http://www.gumpi.com/Blog/ct.ashx?id=0f9bb456-e099-457f-85b3-0480dc37abed&amp;url=http%3a%2f%2fwww.microsoft.com%2fdownloads%2fdetails.aspx%3fFamilyID%3da91dc12a-fc94-4027-b67e-46bab7c5226c%26DisplayLang%3den">Windows
7 SDK Beta</a> and look into the installation folder. For me, those are at <i>C:\Program
Files\Microsoft SDKs\Windows\v7.0\Samples\winui\Shell\JumpList</i>.
</p>
        <img width="0" height="0" src="http://www.gumpi.com/Blog/aggbug.ashx?id=0f9bb456-e099-457f-85b3-0480dc37abed" />
      </body>
      <title>Windows 7 Jump Lists</title>
      <guid isPermaLink="false">http://www.gumpi.com/Blog/PermaLink,guid,0f9bb456-e099-457f-85b3-0480dc37abed.aspx</guid>
      <link>http://www.gumpi.com/Blog/2009/01/17/Windows7JumpLists.aspx</link>
      <pubDate>Sat, 17 Jan 2009 12:55:15 GMT</pubDate>
      <description>&lt;p&gt;
During the last days I have taken the time to get familar with Windows 7, at least
a little. So far, I do like it, though it is far from stable on my machine at the
moment - at least, Windows Vista was better in that respect.
&lt;/p&gt;
&lt;p&gt;
The new Taskbar and the start menu are pretty amazing. I like the feature to show
progress and states on it, as well as add buttons to the window preview panes. Also,
the Jump Lists are quiet nice, so I started importing those features into &lt;a href="http://www.gumpi.com/Blog/ct.ashx?id=0f9bb456-e099-457f-85b3-0480dc37abed&amp;amp;url=http%3a%2f%2fwww.codegear.com%2fproducts%2fdelphi%2fwin32"&gt;Delphi&lt;/a&gt;,
all available as a small component set. Those will be available soon, with more details
about what and how they will work.
&lt;/p&gt;
&lt;p&gt;
However, so far I have seen many sample videos, read quiet a few blog entries on how
to program those jump list, but they all habe one thing in common: they are missing
the code samples. If you are looking for those samples, download the &lt;a href="http://www.gumpi.com/Blog/ct.ashx?id=0f9bb456-e099-457f-85b3-0480dc37abed&amp;amp;url=http%3a%2f%2fwww.microsoft.com%2fdownloads%2fdetails.aspx%3fFamilyID%3da91dc12a-fc94-4027-b67e-46bab7c5226c%26DisplayLang%3den"&gt;Windows
7 SDK Beta&lt;/a&gt; and look into the installation folder. For me, those are at &lt;i&gt;C:\Program
Files\Microsoft SDKs\Windows\v7.0\Samples\winui\Shell\JumpList&lt;/i&gt;.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.gumpi.com/Blog/aggbug.ashx?id=0f9bb456-e099-457f-85b3-0480dc37abed" /&gt;</description>
      <comments>http://www.gumpi.com/Blog/CommentView,guid,0f9bb456-e099-457f-85b3-0480dc37abed.aspx</comments>
      <category>Delphi</category>
      <category>Development</category>
      <category>Development (English)</category>
      <category>English</category>
      <category>Samples</category>
      <category>Visual Studio</category>
      <category>Windows</category>
      <category>Windows 7</category>
    </item>
    <item>
      <trackback:ping>http://www.gumpi.com/Blog/Trackback.aspx?guid=c42f6fd5-348d-4672-a14d-11d90f74e1ec</trackback:ping>
      <pingback:server>http://www.gumpi.com/Blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.gumpi.com/Blog/PermaLink,guid,c42f6fd5-348d-4672-a14d-11d90f74e1ec.aspx</pingback:target>
      <dc:creator>Daniel Wischnewski</dc:creator>
      <wfw:comment>http://www.gumpi.com/Blog/CommentView,guid,c42f6fd5-348d-4672-a14d-11d90f74e1ec.aspx</wfw:comment>
      <wfw:commentRss>http://www.gumpi.com/Blog/SyndicationService.asmx/GetEntryCommentsRss?guid=c42f6fd5-348d-4672-a14d-11d90f74e1ec</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Well, it is available since about 3 weeks now and I had some feedback already. Now,
I would like you guys to take a look at it and let me know what you think. There is
a small update in the pipeline, but that is not available yet. A short product
description and a video are on the project site: <a href="http://www.gumpi.com/Blog/ct.ashx?id=c42f6fd5-348d-4672-a14d-11d90f74e1ec&amp;url=http%3a%2f%2fwww.wischnewski.tv%2fen%2fproducts%2fdw32pl.html">http://www.wischnewski.tv/en/products/dw32pl.html</a></p>
        <p>
Start localizing your applications. Demos come with the installer - the product is
free for personal and commercial (not governmental) use.
</p>
        <img width="0" height="0" src="http://www.gumpi.com/Blog/aggbug.ashx?id=c42f6fd5-348d-4672-a14d-11d90f74e1ec" />
      </body>
      <title>Delphi Win32 Project Localizer</title>
      <guid isPermaLink="false">http://www.gumpi.com/Blog/PermaLink,guid,c42f6fd5-348d-4672-a14d-11d90f74e1ec.aspx</guid>
      <link>http://www.gumpi.com/Blog/2008/03/21/DelphiWin32ProjectLocalizer.aspx</link>
      <pubDate>Fri, 21 Mar 2008 15:26:46 GMT</pubDate>
      <description>&lt;p&gt;
Well, it is available since about 3 weeks now and I had some feedback already. Now,
I would like you guys to take a look at it and let me know what you think. There is
a small&amp;nbsp;update in the pipeline, but that is not available yet. A short product
description and a video are on the project site: &lt;a href="http://www.gumpi.com/Blog/ct.ashx?id=c42f6fd5-348d-4672-a14d-11d90f74e1ec&amp;amp;url=http%3a%2f%2fwww.wischnewski.tv%2fen%2fproducts%2fdw32pl.html"&gt;http://www.wischnewski.tv/en/products/dw32pl.html&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
Start localizing your applications. Demos come with the installer - the product is
free for personal and commercial (not governmental) use.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.gumpi.com/Blog/aggbug.ashx?id=c42f6fd5-348d-4672-a14d-11d90f74e1ec" /&gt;</description>
      <comments>http://www.gumpi.com/Blog/CommentView,guid,c42f6fd5-348d-4672-a14d-11d90f74e1ec.aspx</comments>
      <category>Conferences</category>
      <category>Delphi</category>
      <category>Development</category>
      <category>Development (English)</category>
      <category>English</category>
      <category>Samples</category>
    </item>
    <item>
      <trackback:ping>http://www.gumpi.com/Blog/Trackback.aspx?guid=68f6284b-52fa-4e8b-b917-806c45c3901e</trackback:ping>
      <pingback:server>http://www.gumpi.com/Blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.gumpi.com/Blog/PermaLink,guid,68f6284b-52fa-4e8b-b917-806c45c3901e.aspx</pingback:target>
      <dc:creator>Daniel Wischnewski</dc:creator>
      <wfw:comment>http://www.gumpi.com/Blog/CommentView,guid,68f6284b-52fa-4e8b-b917-806c45c3901e.aspx</wfw:comment>
      <wfw:commentRss>http://www.gumpi.com/Blog/SyndicationService.asmx/GetEntryCommentsRss?guid=68f6284b-52fa-4e8b-b917-806c45c3901e</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Since <a href="http://www.gumpi.com/Blog/ct.ashx?id=68f6284b-52fa-4e8b-b917-806c45c3901e&amp;url=http%3a%2f%2fthespicemustflow.de%2f">Sebastian
Gingter</a> (a moderator of the <a href="http://www.gumpi.com/Blog/ct.ashx?id=68f6284b-52fa-4e8b-b917-806c45c3901e&amp;url=http%3a%2f%2fwww.delphipraxis.net">Delphi-PRAXiS</a>)
is not on the Delphi-Feeds list, and he just uploads(!) his papers right now, I am
giving you a pointer over to his blog. His papers are on WMI (Windows Management Instrumentation)
and Patterns (MVVM), in German, too.
</p>
        <p>
Entries:
</p>
        <ul>
          <li>
            <a href="http://www.gumpi.com/Blog/ct.ashx?id=68f6284b-52fa-4e8b-b917-806c45c3901e&amp;url=http%3a%2f%2fthespicemustflow.de%2fpost%2f2008%2f02%2f28%2f100%2f">WMI</a>
          </li>
          <li>
            <a href="http://www.gumpi.com/Blog/ct.ashx?id=68f6284b-52fa-4e8b-b917-806c45c3901e&amp;url=http%3a%2f%2fthespicemustflow.de%2fpost%2f2008%2f02%2f28%2f99%2f">MVVM</a>
          </li>
        </ul>
        <img width="0" height="0" src="http://www.gumpi.com/Blog/aggbug.ashx?id=68f6284b-52fa-4e8b-b917-806c45c3901e" />
      </body>
      <title>More EKON Spring 2008 Papers</title>
      <guid isPermaLink="false">http://www.gumpi.com/Blog/PermaLink,guid,68f6284b-52fa-4e8b-b917-806c45c3901e.aspx</guid>
      <link>http://www.gumpi.com/Blog/2008/02/28/MoreEKONSpring2008Papers.aspx</link>
      <pubDate>Thu, 28 Feb 2008 16:54:40 GMT</pubDate>
      <description>&lt;p&gt;
Since &lt;a href="http://www.gumpi.com/Blog/ct.ashx?id=68f6284b-52fa-4e8b-b917-806c45c3901e&amp;amp;url=http%3a%2f%2fthespicemustflow.de%2f"&gt;Sebastian
Gingter&lt;/a&gt; (a moderator of the &lt;a href="http://www.gumpi.com/Blog/ct.ashx?id=68f6284b-52fa-4e8b-b917-806c45c3901e&amp;amp;url=http%3a%2f%2fwww.delphipraxis.net"&gt;Delphi-PRAXiS&lt;/a&gt;)
is not on the Delphi-Feeds list, and he just uploads(!) his papers right now, I am
giving you a pointer over to his blog. His papers are on WMI (Windows Management Instrumentation)
and Patterns (MVVM), in German, too.
&lt;/p&gt;
&lt;p&gt;
Entries:
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="http://www.gumpi.com/Blog/ct.ashx?id=68f6284b-52fa-4e8b-b917-806c45c3901e&amp;amp;url=http%3a%2f%2fthespicemustflow.de%2fpost%2f2008%2f02%2f28%2f100%2f"&gt;WMI&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="http://www.gumpi.com/Blog/ct.ashx?id=68f6284b-52fa-4e8b-b917-806c45c3901e&amp;amp;url=http%3a%2f%2fthespicemustflow.de%2fpost%2f2008%2f02%2f28%2f99%2f"&gt;MVVM&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;img width="0" height="0" src="http://www.gumpi.com/Blog/aggbug.ashx?id=68f6284b-52fa-4e8b-b917-806c45c3901e" /&gt;</description>
      <comments>http://www.gumpi.com/Blog/CommentView,guid,68f6284b-52fa-4e8b-b917-806c45c3901e.aspx</comments>
      <category>Conferences</category>
      <category>Delphi</category>
      <category>Development</category>
      <category>Development (English)</category>
      <category>English</category>
      <category>Samples</category>
    </item>
    <item>
      <trackback:ping>http://www.gumpi.com/Blog/Trackback.aspx?guid=f30da068-038b-4b42-a494-62356097100f</trackback:ping>
      <pingback:server>http://www.gumpi.com/Blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.gumpi.com/Blog/PermaLink,guid,f30da068-038b-4b42-a494-62356097100f.aspx</pingback:target>
      <dc:creator>Daniel Wischnewski</dc:creator>
      <wfw:comment>http://www.gumpi.com/Blog/CommentView,guid,f30da068-038b-4b42-a494-62356097100f.aspx</wfw:comment>
      <wfw:commentRss>http://www.gumpi.com/Blog/SyndicationService.asmx/GetEntryCommentsRss?guid=f30da068-038b-4b42-a494-62356097100f</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
My conference sessions are all done, so the papers are ready for download. Go to my <a href="http://www.gumpi.com/Blog/ct.ashx?id=f30da068-038b-4b42-a494-62356097100f&amp;url=http%3a%2f%2fwww.gumpi.com%2fBlog%2fSpecial.aspx%3f%3dConferences">Conference
Papers</a> page and download them as you like. They are German only this time.
</p>
        <img width="0" height="0" src="http://www.gumpi.com/Blog/aggbug.ashx?id=f30da068-038b-4b42-a494-62356097100f" />
      </body>
      <title>EKON Spring 2008 - Papers Online</title>
      <guid isPermaLink="false">http://www.gumpi.com/Blog/PermaLink,guid,f30da068-038b-4b42-a494-62356097100f.aspx</guid>
      <link>http://www.gumpi.com/Blog/2008/02/28/EKONSpring2008PapersOnline.aspx</link>
      <pubDate>Thu, 28 Feb 2008 16:28:42 GMT</pubDate>
      <description>&lt;p&gt;
My conference sessions are all done, so the papers are ready for download. Go to my &lt;a href="http://www.gumpi.com/Blog/ct.ashx?id=f30da068-038b-4b42-a494-62356097100f&amp;amp;url=http%3a%2f%2fwww.gumpi.com%2fBlog%2fSpecial.aspx%3f%3dConferences"&gt;Conference
Papers&lt;/a&gt; page and download them as you like. They are German only this time.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.gumpi.com/Blog/aggbug.ashx?id=f30da068-038b-4b42-a494-62356097100f" /&gt;</description>
      <comments>http://www.gumpi.com/Blog/CommentView,guid,f30da068-038b-4b42-a494-62356097100f.aspx</comments>
      <category>Conferences</category>
      <category>Delphi</category>
      <category>Development</category>
      <category>Development (English)</category>
      <category>English</category>
      <category>Samples</category>
    </item>
    <item>
      <trackback:ping>http://www.gumpi.com/Blog/Trackback.aspx?guid=b5da4fcf-ac02-4454-8e47-948b8937f8a8</trackback:ping>
      <pingback:server>http://www.gumpi.com/Blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.gumpi.com/Blog/PermaLink,guid,b5da4fcf-ac02-4454-8e47-948b8937f8a8.aspx</pingback:target>
      <dc:creator>Daniel Wischnewski</dc:creator>
      <wfw:comment>http://www.gumpi.com/Blog/CommentView,guid,b5da4fcf-ac02-4454-8e47-948b8937f8a8.aspx</wfw:comment>
      <wfw:commentRss>http://www.gumpi.com/Blog/SyndicationService.asmx/GetEntryCommentsRss?guid=b5da4fcf-ac02-4454-8e47-948b8937f8a8</wfw:commentRss>
      <slash:comments>4</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
You probably know this text from the built in Windows font preview application.
</p>
        <blockquote>The quick brown fox jumps over the lazy dog</blockquote>
        <p>
Well, it is nice to see a font, when you scroll through them. Many applications out
there allow to easily few multiple fonts at once. But all free tools I know of lack
the possibility to enter your own (unicode) text to review a font. Well, today I needed
just that and I let you all use it for free ;-)
</p>
        <p>
It features:
</p>
        <ul>
          <li>
Font Size (6 to 128 pt) 
</li>
          <li>
Bold, Italic, and Underline 
</li>
          <li>
Quality: default, draft, proof, aliased, non-aliased, and ClearType</li>
        </ul>
        <p align="center">
          <img alt="Font Review Application" src="/blog/content/binary/Delphi/Tools/FontReview01.png" />
          <br />
          <strong>
            <font size="1">Font Review Application</font>
          </strong>
        </p>
        <p>
To get the application, go to the <a href="http://www.gumpi.com/Blog/ct.ashx?id=b5da4fcf-ac02-4454-8e47-948b8937f8a8&amp;url=http%3a%2f%2fwww.gumpi.com%2fBlog%2f2008%2f01%2f31%2fQuickFontReviewUpdate.aspx">update
page</a>.
</p>
        <img width="0" height="0" src="http://www.gumpi.com/Blog/aggbug.ashx?id=b5da4fcf-ac02-4454-8e47-948b8937f8a8" />
      </body>
      <title>The quick brown fox jumps over the lazy dog</title>
      <guid isPermaLink="false">http://www.gumpi.com/Blog/PermaLink,guid,b5da4fcf-ac02-4454-8e47-948b8937f8a8.aspx</guid>
      <link>http://www.gumpi.com/Blog/2008/01/29/TheQuickBrownFoxJumpsOverTheLazyDog.aspx</link>
      <pubDate>Tue, 29 Jan 2008 15:40:09 GMT</pubDate>
      <description>&lt;p&gt;
You probably know this text from the built in Windows font preview application.
&lt;/p&gt;
&lt;blockquote&gt;The quick brown fox jumps over the lazy dog&lt;/blockquote&gt; 
&lt;p&gt;
Well, it is nice to see a font, when you scroll through them. Many applications out
there allow to easily few multiple fonts at once. But all free tools I know of lack
the possibility to enter your own (unicode) text to review a font. Well, today I needed
just that and I let you all use it for free ;-)
&lt;/p&gt;
&lt;p&gt;
It features:
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
Font Size (6 to 128 pt) 
&lt;li&gt;
Bold, Italic, and Underline 
&lt;li&gt;
Quality: default, draft, proof, aliased, non-aliased, and ClearType&lt;/li&gt;
&lt;/ul&gt;
&lt;p align=center&gt;
&lt;img alt="Font Review Application" src="/blog/content/binary/Delphi/Tools/FontReview01.png"&gt;
&lt;br&gt;
&lt;strong&gt;&lt;font size=1&gt;Font Review Application&lt;/font&gt;&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
To get the application, go to the &lt;a href="http://www.gumpi.com/Blog/ct.ashx?id=b5da4fcf-ac02-4454-8e47-948b8937f8a8&amp;amp;url=http%3a%2f%2fwww.gumpi.com%2fBlog%2f2008%2f01%2f31%2fQuickFontReviewUpdate.aspx"&gt;update
page&lt;/a&gt;.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.gumpi.com/Blog/aggbug.ashx?id=b5da4fcf-ac02-4454-8e47-948b8937f8a8" /&gt;</description>
      <comments>http://www.gumpi.com/Blog/CommentView,guid,b5da4fcf-ac02-4454-8e47-948b8937f8a8.aspx</comments>
      <category>Development</category>
      <category>Development (English)</category>
      <category>English</category>
      <category>Samples</category>
      <category>Windows</category>
    </item>
    <item>
      <trackback:ping>http://www.gumpi.com/Blog/Trackback.aspx?guid=22ccf3d8-f81c-44b2-9e66-4aff13755def</trackback:ping>
      <pingback:server>http://www.gumpi.com/Blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.gumpi.com/Blog/PermaLink,guid,22ccf3d8-f81c-44b2-9e66-4aff13755def.aspx</pingback:target>
      <dc:creator>Daniel Wischnewski</dc:creator>
      <wfw:comment>http://www.gumpi.com/Blog/CommentView,guid,22ccf3d8-f81c-44b2-9e66-4aff13755def.aspx</wfw:comment>
      <wfw:commentRss>http://www.gumpi.com/Blog/SyndicationService.asmx/GetEntryCommentsRss?guid=22ccf3d8-f81c-44b2-9e66-4aff13755def</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
One user of the <a href="http://www.gumpi.com/Blog/ct.ashx?id=22ccf3d8-f81c-44b2-9e66-4aff13755def&amp;url=http%3a%2f%2fwww.delphipraxis.net">Delphi-PRAXiS</a> asked,
how to retrieve a list of either users or computers with the creation date, name and
parents name. Since I had those information available, I just thought I post it here
as well. Once again, you simple have to query the active directory using ADO. For
the parent however, you need to get the object and then query its Parent property.
</p>
        <pre class="sourcecode">
          <code>
            <b>procedure</b> TYourForm.btnSearchClick(Sender: TObject); <b>var</b> Conn:
_Connection; Cmd: _Command; RS: _Recordset; Affected: OleVariant; Line: <b>string</b>;
Obj: IADsUser; <b>procedure</b> RunQuery(Query: <b>string</b>); <b>begin</b> Cmd.CommandText
:= Query; <font color="#003399"><i>// run query and return domain list</i></font> RS
:= Cmd.Execute(Affected, EmptyParam, 0); <b>if</b> RS.EOF <b>then</b> Exit; RS.MoveFirst; <b>while</b><b>not</b> RS.EOF <b>do</b><b>begin</b><b>try</b> Obj
:= VBGetObject(RS.Fields.Item[1].Value) <b>as</b> IADsUser; Line := Format(<font color="#9933cc">'%s,
%s, %s, %s'</font>, [RS.Fields.Item[0].Value, RS.Fields.Item[1].Value, RS.Fields.Item[2].Value,
Obj.Parent]); mmoReport.Lines.Add(Line); <b>except</b><b>end</b>; RS.MoveNext; <b>end</b>; <b>end</b>; <b>begin</b> mmoReport.Clear; <font color="#003399"><i>//
create objects</i></font> Conn := CoConnection.Create; Cmd := CoCommand.Create; <font color="#003399"><i>//
setup objects</i></font> Conn.Provider := <font color="#9933cc">'ADsDSOObject'</font>;
Conn.Open(<font color="#9933cc">'Active Directory Provider'</font>, <font color="#9933cc">''</font>, <font color="#9933cc">''</font>,
0); Cmd.Set_ActiveConnection(Conn); Cmd.Properties.Item[<font color="#9933cc">'Page
Size'</font>].Value := 1000; Cmd.Properties.Item[<font color="#9933cc">'Searchscope'</font>].Value
:= ADS_SCOPE_SUBTREE; RunQuery(edtQuery.Text); <b>end</b>;</code>
        </pre>
        <p>
Once again, the whole sample is <a href="/Downloads/Samples/GetOUUserCompData.zip">available
for download (ZIP, 36 Kb)</a>.
</p>
        <img width="0" height="0" src="http://www.gumpi.com/Blog/aggbug.ashx?id=22ccf3d8-f81c-44b2-9e66-4aff13755def" />
      </body>
      <title>How to retrieve a list of OU Objects and their parents</title>
      <guid isPermaLink="false">http://www.gumpi.com/Blog/PermaLink,guid,22ccf3d8-f81c-44b2-9e66-4aff13755def.aspx</guid>
      <link>http://www.gumpi.com/Blog/2007/10/15/HowToRetrieveAListOfOUObjectsAndTheirParents.aspx</link>
      <pubDate>Mon, 15 Oct 2007 12:17:13 GMT</pubDate>
      <description>&lt;p&gt;
One user of the &lt;a href="http://www.gumpi.com/Blog/ct.ashx?id=22ccf3d8-f81c-44b2-9e66-4aff13755def&amp;amp;url=http%3a%2f%2fwww.delphipraxis.net"&gt;Delphi-PRAXiS&lt;/a&gt; asked,
how to retrieve a list of either users or computers with the creation date, name and
parents name. Since I had those information available, I just thought I post it here
as well. Once again, you simple have to query the active directory using ADO. For
the parent however, you need to get the object and then query its Parent property.
&lt;/p&gt;
&lt;pre class=sourcecode&gt;&lt;code&gt;&lt;b&gt;procedure&lt;/b&gt; TYourForm.btnSearchClick(Sender: TObject); &lt;b&gt;var&lt;/b&gt; Conn:
_Connection; Cmd: _Command; RS: _Recordset; Affected: OleVariant; Line: &lt;b&gt;string&lt;/b&gt;;
Obj: IADsUser; &lt;b&gt;procedure&lt;/b&gt; RunQuery(Query: &lt;b&gt;string&lt;/b&gt;); &lt;b&gt;begin&lt;/b&gt; Cmd.CommandText
:= Query; &lt;font color=#003399&gt;&lt;i&gt;// run query and return domain list&lt;/i&gt;&lt;/font&gt; RS
:= Cmd.Execute(Affected, EmptyParam, 0); &lt;b&gt;if&lt;/b&gt; RS.EOF &lt;b&gt;then&lt;/b&gt; Exit; RS.MoveFirst; &lt;b&gt;while&lt;/b&gt; &lt;b&gt;not&lt;/b&gt; RS.EOF &lt;b&gt;do&lt;/b&gt; &lt;b&gt;begin&lt;/b&gt; &lt;b&gt;try&lt;/b&gt; Obj
:= VBGetObject(RS.Fields.Item[1].Value) &lt;b&gt;as&lt;/b&gt; IADsUser; Line := Format(&lt;font color=#9933cc&gt;'%s,
%s, %s, %s'&lt;/font&gt;, [RS.Fields.Item[0].Value, RS.Fields.Item[1].Value, RS.Fields.Item[2].Value,
Obj.Parent]); mmoReport.Lines.Add(Line); &lt;b&gt;except&lt;/b&gt; &lt;b&gt;end&lt;/b&gt;; RS.MoveNext; &lt;b&gt;end&lt;/b&gt;; &lt;b&gt;end&lt;/b&gt;; &lt;b&gt;begin&lt;/b&gt; mmoReport.Clear; &lt;font color=#003399&gt;&lt;i&gt;//
create objects&lt;/i&gt;&lt;/font&gt; Conn := CoConnection.Create; Cmd := CoCommand.Create; &lt;font color=#003399&gt;&lt;i&gt;//
setup objects&lt;/i&gt;&lt;/font&gt; Conn.Provider := &lt;font color=#9933cc&gt;'ADsDSOObject'&lt;/font&gt;;
Conn.Open(&lt;font color=#9933cc&gt;'Active Directory Provider'&lt;/font&gt;, &lt;font color=#9933cc&gt;''&lt;/font&gt;, &lt;font color=#9933cc&gt;''&lt;/font&gt;,
0); Cmd.Set_ActiveConnection(Conn); Cmd.Properties.Item[&lt;font color=#9933cc&gt;'Page
Size'&lt;/font&gt;].Value := 1000; Cmd.Properties.Item[&lt;font color=#9933cc&gt;'Searchscope'&lt;/font&gt;].Value
:= ADS_SCOPE_SUBTREE; RunQuery(edtQuery.Text); &lt;b&gt;end&lt;/b&gt;;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;
Once again, the whole&amp;nbsp;sample is &lt;a href="/Downloads/Samples/GetOUUserCompData.zip"&gt;available
for download (ZIP, 36 Kb)&lt;/a&gt;.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.gumpi.com/Blog/aggbug.ashx?id=22ccf3d8-f81c-44b2-9e66-4aff13755def" /&gt;</description>
      <comments>http://www.gumpi.com/Blog/CommentView,guid,22ccf3d8-f81c-44b2-9e66-4aff13755def.aspx</comments>
      <category>Delphi</category>
      <category>Development</category>
      <category>Development (English)</category>
      <category>English</category>
      <category>Samples</category>
      <category>Windows</category>
    </item>
    <item>
      <trackback:ping>http://www.gumpi.com/Blog/Trackback.aspx?guid=e52b4f4c-2b7e-434f-a4a9-dcbf23975faf</trackback:ping>
      <pingback:server>http://www.gumpi.com/Blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.gumpi.com/Blog/PermaLink,guid,e52b4f4c-2b7e-434f-a4a9-dcbf23975faf.aspx</pingback:target>
      <dc:creator>Daniel Wischnewski</dc:creator>
      <wfw:comment>http://www.gumpi.com/Blog/CommentView,guid,e52b4f4c-2b7e-434f-a4a9-dcbf23975faf.aspx</wfw:comment>
      <wfw:commentRss>http://www.gumpi.com/Blog/SyndicationService.asmx/GetEntryCommentsRss?guid=e52b4f4c-2b7e-434f-a4a9-dcbf23975faf</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Someone <a href="http://www.gumpi.com/Blog/ct.ashx?id=e52b4f4c-2b7e-434f-a4a9-dcbf23975faf&amp;url=http%3a%2f%2fwww.delphifeeds.com%2fdelphiforum%2ftopic.php%3fid%3d118">asked
on delphifeeds.com</a>, how to get a list of all domains within an environment. Since
I was going to need just the same soon for a application in development right now,
I thought I take up the challenge and try my luck. After using Google I found nil
solutions using <a href="http://www.gumpi.com/Blog/ct.ashx?id=e52b4f4c-2b7e-434f-a4a9-dcbf23975faf&amp;url=http%3a%2f%2fwww.codegear.com%2fproducts%2fdelphi%2fwin32">Delphi</a>,
so I went to microsoft.com and looked how they do it, using VBScript.
</p>
        <p>
Well, I was lucky and found a solution, but as so often, getting it to work on <a href="http://www.gumpi.com/Blog/ct.ashx?id=e52b4f4c-2b7e-434f-a4a9-dcbf23975faf&amp;url=http%3a%2f%2fwww.codegear.com%2fproducts%2fdelphi%2fwin32">Delphi</a> is
an entirely different task. First you have to find the root naming context of the
domain where your application is running. You use the ADs library for that task. From
that LDAP-path you replace the prefix with GC, which stands for global catalog.
</p>
        <pre class="sourcecode">
          <code>
            <font color="#003399">
              <i>// get the forest base</i>
            </font>
            <b>try</b> DirObj
:= VBGetObject(<font color="#9933cc">'LDAP://rootDSE'</font>) <b>as</b> IADs; Root
:= (VBGetObject(<font color="#9933cc">'LDAP://'</font> + DirObj.Get(<font color="#9933cc">'rootDomainNamingContext'</font>)) <b>as</b> IADs).ADsPath; <b>except</b> mmoReport.Lines.Add(<font color="#9933cc">'Computer
is not running in domain setup.'</font>); Exit; <b>end</b>; <font color="#003399"><i>//
replace LDAP with GC (global catalog)</i></font> Root := <font color="#9933cc">'GC'</font> +
Copy(Root, 5, MaxInt); mmoReport.Lines.Add(Root);</code>
        </pre>
        <p>
Next, you query the AD using ADO for the domains or sites, whatever you want. The
queries are simple:
</p>
        <pre class="sourcecode">Query := <font color="#9933cc">'SELECT Name FROM '</font> +
QuotedStr(Root) + <font color="#9933cc">' WHERE objectCategory='</font><font color="#9933cc">'domain'</font><font color="#9933cc">''</font>;
Query := <font color="#9933cc">'SELECT Name FROM '</font> + QuotedStr(Root) + <font color="#9933cc">'
WHERE objectCategory='</font><font color="#9933cc">'site'</font><font color="#9933cc">''</font>;</pre>
        <p>
Next, you just iterate the record set, returned after executing your command. A full
demo can be <a href="/Downloads/Samples/FindDomains.zip">downloaded (ZIP, 34 Kb)</a> from
my site.
</p>
        <img width="0" height="0" src="http://www.gumpi.com/Blog/aggbug.ashx?id=e52b4f4c-2b7e-434f-a4a9-dcbf23975faf" />
      </body>
      <title>How to get a list of Domains and Sites</title>
      <guid isPermaLink="false">http://www.gumpi.com/Blog/PermaLink,guid,e52b4f4c-2b7e-434f-a4a9-dcbf23975faf.aspx</guid>
      <link>http://www.gumpi.com/Blog/2007/10/15/HowToGetAListOfDomainsAndSites.aspx</link>
      <pubDate>Mon, 15 Oct 2007 09:48:02 GMT</pubDate>
      <description>&lt;p&gt;
Someone &lt;a href="http://www.gumpi.com/Blog/ct.ashx?id=e52b4f4c-2b7e-434f-a4a9-dcbf23975faf&amp;amp;url=http%3a%2f%2fwww.delphifeeds.com%2fdelphiforum%2ftopic.php%3fid%3d118"&gt;asked
on delphifeeds.com&lt;/a&gt;, how to get a list of all domains within an environment. Since
I was going to need just the same soon for a application in development right now,
I thought I take up the challenge and try my luck. After using Google I found nil
solutions using &lt;a href="http://www.gumpi.com/Blog/ct.ashx?id=e52b4f4c-2b7e-434f-a4a9-dcbf23975faf&amp;amp;url=http%3a%2f%2fwww.codegear.com%2fproducts%2fdelphi%2fwin32"&gt;Delphi&lt;/a&gt;,
so I went to microsoft.com and looked how they do it, using VBScript.
&lt;/p&gt;
&lt;p&gt;
Well, I was lucky and found a solution, but as so often, getting it to work on &lt;a href="http://www.gumpi.com/Blog/ct.ashx?id=e52b4f4c-2b7e-434f-a4a9-dcbf23975faf&amp;amp;url=http%3a%2f%2fwww.codegear.com%2fproducts%2fdelphi%2fwin32"&gt;Delphi&lt;/a&gt; is
an entirely different task. First you have to find the root naming context of the
domain where your application is running. You use the ADs library for that task. From
that LDAP-path you replace the prefix with GC, which stands for global catalog.
&lt;/p&gt;
&lt;pre class=sourcecode&gt;&lt;code&gt;&lt;font color=#003399&gt;&lt;i&gt;// get the forest base&lt;/i&gt;&lt;/font&gt; &lt;b&gt;try&lt;/b&gt; DirObj
:= VBGetObject(&lt;font color=#9933cc&gt;'LDAP://rootDSE'&lt;/font&gt;) &lt;b&gt;as&lt;/b&gt; IADs; Root :=
(VBGetObject(&lt;font color=#9933cc&gt;'LDAP://'&lt;/font&gt; + DirObj.Get(&lt;font color=#9933cc&gt;'rootDomainNamingContext'&lt;/font&gt;)) &lt;b&gt;as&lt;/b&gt; IADs).ADsPath; &lt;b&gt;except&lt;/b&gt; mmoReport.Lines.Add(&lt;font color=#9933cc&gt;'Computer
is not running in domain setup.'&lt;/font&gt;); Exit; &lt;b&gt;end&lt;/b&gt;; &lt;font color=#003399&gt;&lt;i&gt;//
replace LDAP with GC (global catalog)&lt;/i&gt;&lt;/font&gt; Root := &lt;font color=#9933cc&gt;'GC'&lt;/font&gt; +
Copy(Root, 5, MaxInt); mmoReport.Lines.Add(Root);&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;
Next, you query the AD using ADO for the domains or sites, whatever you want. The
queries are simple:
&lt;/p&gt;
&lt;pre class=sourcecode&gt;Query := &lt;font color=#9933cc&gt;'SELECT Name FROM '&lt;/font&gt; + QuotedStr(Root)
+ &lt;font color=#9933cc&gt;' WHERE objectCategory='&lt;/font&gt;&lt;font color=#9933cc&gt;'domain'&lt;/font&gt;&lt;font color=#9933cc&gt;''&lt;/font&gt;;
Query := &lt;font color=#9933cc&gt;'SELECT Name FROM '&lt;/font&gt; + QuotedStr(Root) + &lt;font color=#9933cc&gt;'
WHERE objectCategory='&lt;/font&gt;&lt;font color=#9933cc&gt;'site'&lt;/font&gt;&lt;font color=#9933cc&gt;''&lt;/font&gt;;&lt;/pre&gt;
&lt;p&gt;
Next, you just iterate the record set, returned after executing your command. A full
demo can be &lt;a href="/Downloads/Samples/FindDomains.zip"&gt;downloaded (ZIP, 34 Kb)&lt;/a&gt; from
my site.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.gumpi.com/Blog/aggbug.ashx?id=e52b4f4c-2b7e-434f-a4a9-dcbf23975faf" /&gt;</description>
      <comments>http://www.gumpi.com/Blog/CommentView,guid,e52b4f4c-2b7e-434f-a4a9-dcbf23975faf.aspx</comments>
      <category>Delphi</category>
      <category>Development</category>
      <category>Development (English)</category>
      <category>English</category>
      <category>Samples</category>
      <category>Windows</category>
    </item>
    <item>
      <trackback:ping>http://www.gumpi.com/Blog/Trackback.aspx?guid=bbd39bbd-c1f3-4c56-b175-16cfd4d00e41</trackback:ping>
      <pingback:server>http://www.gumpi.com/Blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.gumpi.com/Blog/PermaLink,guid,bbd39bbd-c1f3-4c56-b175-16cfd4d00e41.aspx</pingback:target>
      <dc:creator>Daniel Wischnewski</dc:creator>
      <wfw:comment>http://www.gumpi.com/Blog/CommentView,guid,bbd39bbd-c1f3-4c56-b175-16cfd4d00e41.aspx</wfw:comment>
      <wfw:commentRss>http://www.gumpi.com/Blog/SyndicationService.asmx/GetEntryCommentsRss?guid=bbd39bbd-c1f3-4c56-b175-16cfd4d00e41</wfw:commentRss>
      <slash:comments>1</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Since I just mentioned the <a href="http://www.gumpi.com/Blog/ct.ashx?id=bbd39bbd-c1f3-4c56-b175-16cfd4d00e41&amp;url=http%3a%2f%2fwww.gumpi.com%2fBlog%2f2007%2f10%2f12%2fWindowsVistaAeroTGlowLabel.aspx">Glow
Label</a> component for <a href="http://www.gumpi.com/Blog/ct.ashx?id=bbd39bbd-c1f3-4c56-b175-16cfd4d00e41&amp;url=http%3a%2f%2fwww.codegear.com%2fproducts%2fdelphi%2fwin32">Delphi</a>,
I thought I mention a small problem with the glass effect and components placed on
areas, where this effect is applied.
</p>
        <p>
The (usually) black parts of the component are not painted correctly, when leaving
all settings on default. You have to set the property <strong>DoubleBuffered</strong> to <em>True</em>,
for correct painting of the components. Therefore, I have created a small routine
which just does that. Simply pass along the form as parameter, an it will iterate
through all controls and set their DoubleBuffer property to True.
</p>
        <p>
        </p>
        <pre class="sourcecode">
          <code class="keyword">procedure</code> DoubleBufferAll(WinControl:
TWinControl); <code class="keyword">var</code> I: Integer; <code class="keyword">begin</code><code class="keyword">if</code><code class="keyword">not</code> (WinControl <code class="keyword">is</code> TBaseVirtualTree) <code class="keyword">then</code> WinControl.DoubleBuffered
:= True; <code class="keyword">for</code> I := 0 <code class="keyword">to</code> WinControl.ControlCount
- 1 <code class="keyword">do</code><code class="keyword">if</code> WinControl.Controls[I] <code class="keyword">is</code> TWinControl <code class="keyword">then</code> DoubleBufferAll(WinControl.Controls[I] <code class="keyword">as</code> TWinControl); <code class="keyword">end</code>; </pre>
        <p>
        </p>
        <img width="0" height="0" src="http://www.gumpi.com/Blog/aggbug.ashx?id=bbd39bbd-c1f3-4c56-b175-16cfd4d00e41" />
      </body>
      <title>More on Aero-glass and Delphi forms</title>
      <guid isPermaLink="false">http://www.gumpi.com/Blog/PermaLink,guid,bbd39bbd-c1f3-4c56-b175-16cfd4d00e41.aspx</guid>
      <link>http://www.gumpi.com/Blog/2007/10/12/MoreOnAeroglassAndDelphiForms.aspx</link>
      <pubDate>Fri, 12 Oct 2007 12:04:03 GMT</pubDate>
      <description>&lt;p&gt;
Since I just mentioned the &lt;a href="http://www.gumpi.com/Blog/ct.ashx?id=bbd39bbd-c1f3-4c56-b175-16cfd4d00e41&amp;amp;url=http%3a%2f%2fwww.gumpi.com%2fBlog%2f2007%2f10%2f12%2fWindowsVistaAeroTGlowLabel.aspx"&gt;Glow
Label&lt;/a&gt; component for &lt;a href="http://www.gumpi.com/Blog/ct.ashx?id=bbd39bbd-c1f3-4c56-b175-16cfd4d00e41&amp;amp;url=http%3a%2f%2fwww.codegear.com%2fproducts%2fdelphi%2fwin32"&gt;Delphi&lt;/a&gt;,
I thought I mention a small problem with the glass effect and components placed on
areas, where this effect is applied.
&lt;/p&gt;
&lt;p&gt;
The (usually) black parts of the component are not painted correctly, when leaving
all settings on default. You have to set the property &lt;strong&gt;DoubleBuffered&lt;/strong&gt; to &lt;em&gt;True&lt;/em&gt;,
for correct painting of the components. Therefore, I have created a small routine
which just does that. Simply pass along the form as parameter, an it will iterate
through all controls and set their DoubleBuffer property to True.
&lt;/p&gt;
&lt;p&gt;
&lt;pre class=sourcecode&gt;&lt;code class=keyword&gt;procedure&lt;/code&gt; DoubleBufferAll(WinControl:
TWinControl); &lt;code class=keyword&gt;var&lt;/code&gt; I: Integer; &lt;code class=keyword&gt;begin&lt;/code&gt; &lt;code class=keyword&gt;if&lt;/code&gt; &lt;code class=keyword&gt;not&lt;/code&gt; (WinControl &lt;code class=keyword&gt;is&lt;/code&gt; TBaseVirtualTree) &lt;code class=keyword&gt;then&lt;/code&gt; WinControl.DoubleBuffered
:= True; &lt;code class=keyword&gt;for&lt;/code&gt; I := 0 &lt;code class=keyword&gt;to&lt;/code&gt; WinControl.ControlCount
- 1 &lt;code class=keyword&gt;do&lt;/code&gt; &lt;code class=keyword&gt;if&lt;/code&gt; WinControl.Controls[I] &lt;code class=keyword&gt;is&lt;/code&gt; TWinControl &lt;code class=keyword&gt;then&lt;/code&gt; DoubleBufferAll(WinControl.Controls[I] &lt;code class=keyword&gt;as&lt;/code&gt; TWinControl); &lt;code class=keyword&gt;end&lt;/code&gt;; &lt;/pre&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.gumpi.com/Blog/aggbug.ashx?id=bbd39bbd-c1f3-4c56-b175-16cfd4d00e41" /&gt;</description>
      <comments>http://www.gumpi.com/Blog/CommentView,guid,bbd39bbd-c1f3-4c56-b175-16cfd4d00e41.aspx</comments>
      <category>Delphi</category>
      <category>Development</category>
      <category>Development (English)</category>
      <category>English</category>
      <category>Samples</category>
    </item>
    <item>
      <trackback:ping>http://www.gumpi.com/Blog/Trackback.aspx?guid=b6f47779-c5e2-4b49-86d0-e37bfb768af4</trackback:ping>
      <pingback:server>http://www.gumpi.com/Blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.gumpi.com/Blog/PermaLink,guid,b6f47779-c5e2-4b49-86d0-e37bfb768af4.aspx</pingback:target>
      <dc:creator>Daniel Wischnewski</dc:creator>
      <wfw:comment>http://www.gumpi.com/Blog/CommentView,guid,b6f47779-c5e2-4b49-86d0-e37bfb768af4.aspx</wfw:comment>
      <wfw:commentRss>http://www.gumpi.com/Blog/SyndicationService.asmx/GetEntryCommentsRss?guid=b6f47779-c5e2-4b49-86d0-e37bfb768af4</wfw:commentRss>
      <slash:comments>6</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Did you know that all <a href="http://www.gumpi.com/Blog/ct.ashx?id=b6f47779-c5e2-4b49-86d0-e37bfb768af4&amp;url=http%3a%2f%2fwww.codegear.com%2fproducts%2fdelphi%2fwin32">Delphi</a> streams
automatically support persisting/loading components, just as the IDE uses it? While
looking today how again to persist a component state, I came across the methods <strong>WriteComponent</strong> and <strong>ReadComponent</strong>.
I honestly never saw those before. Therefore persisting a component into a stream
is just one line, when you want to have the data in text form, simply use <strong>ObjectBinaryToText</strong> and <strong>ObjectTextToBinary</strong> for
the transformations. Great, how easy life can be. This method works fo published properties
only, but most often this will do just fine.
</p>
        <p>
        </p>
        <pre class="sourcecode">
          <code class="comment">// code to stream component state
to file</code> FileStream := TFileStream.Create(Filename, fmCreate); BinStream :=
TMemoryStream.Create; <code class="keyword">try</code> BinStream.WriteComponent(YourComponent);
BinStream.Position := 0; ObjectBinaryToText(BinStream, FileStream); <code class="keyword">finally</code> BinStream.Free;
FileStream.Free; <code class="keyword">end</code>;</pre>
        <p>
        </p>
        <p>
        </p>
        <pre class="sourcecode">
          <code class="comment">// code to load component streamed
component from file</code> FileStream := TFileStream.Create(Filename, fmOpenRead); <code class="keyword">BinStream
:= TMemoryStream.Create; try</code> ObjectTextToBinary(FileStream, BinStream); BinStream.Position
:= 0; BinStream.ReadComponent(YourComponent); <code class="keyword">finally</code> BinStream.Free;
FileStream.Free; <code class="keyword">end</code>; </pre>
        <p>
        </p>
        <p>
As a note, I am sure, I knew this before as I have done that a few years ago already,
but hey, sometimes you just forget and rediscover and you are happy again...
</p>
        <img width="0" height="0" src="http://www.gumpi.com/Blog/aggbug.ashx?id=b6f47779-c5e2-4b49-86d0-e37bfb768af4" />
      </body>
      <title>Delphi Language - Did you know</title>
      <guid isPermaLink="false">http://www.gumpi.com/Blog/PermaLink,guid,b6f47779-c5e2-4b49-86d0-e37bfb768af4.aspx</guid>
      <link>http://www.gumpi.com/Blog/2007/10/09/DelphiLanguageDidYouKnow.aspx</link>
      <pubDate>Tue, 09 Oct 2007 15:01:39 GMT</pubDate>
      <description>&lt;p&gt;
Did you know that all &lt;a href="http://www.gumpi.com/Blog/ct.ashx?id=b6f47779-c5e2-4b49-86d0-e37bfb768af4&amp;amp;url=http%3a%2f%2fwww.codegear.com%2fproducts%2fdelphi%2fwin32"&gt;Delphi&lt;/a&gt; streams
automatically support persisting/loading components, just as the IDE uses it? While
looking today how again to persist a component state, I came across the methods &lt;strong&gt;WriteComponent&lt;/strong&gt; and &lt;strong&gt;ReadComponent&lt;/strong&gt;.
I honestly never saw those before. Therefore persisting a component into a stream
is just one line, when you want to have the data in text form, simply use &lt;strong&gt;ObjectBinaryToText&lt;/strong&gt; and &lt;strong&gt;ObjectTextToBinary&lt;/strong&gt; for
the transformations. Great, how easy life can be. This method works fo published properties
only, but most often this will do just fine.
&lt;/p&gt;
&lt;p&gt;
&lt;pre class=sourcecode&gt;&lt;code class=comment&gt;// code to stream component state to file&lt;/code&gt; FileStream
:= TFileStream.Create(Filename, fmCreate); BinStream := TMemoryStream.Create; &lt;code class=keyword&gt;try&lt;/code&gt; BinStream.WriteComponent(YourComponent);
BinStream.Position := 0; ObjectBinaryToText(BinStream, FileStream); &lt;code class=keyword&gt;finally&lt;/code&gt; BinStream.Free;
FileStream.Free; &lt;code class=keyword&gt;end&lt;/code&gt;;&lt;/pre&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;pre class=sourcecode&gt;&lt;code class=comment&gt;// code to load component streamed component
from file&lt;/code&gt; FileStream := TFileStream.Create(Filename, fmOpenRead); &lt;code class=keyword&gt;BinStream
:= TMemoryStream.Create; try&lt;/code&gt; ObjectTextToBinary(FileStream, BinStream); BinStream.Position
:= 0; BinStream.ReadComponent(YourComponent); &lt;code class=keyword&gt;finally&lt;/code&gt; BinStream.Free;
FileStream.Free; &lt;code class=keyword&gt;end&lt;/code&gt;; &lt;/pre&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
As a note, I am sure, I knew this before as I have done that a few years ago already,
but hey, sometimes you just forget and rediscover and you are happy again...
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.gumpi.com/Blog/aggbug.ashx?id=b6f47779-c5e2-4b49-86d0-e37bfb768af4" /&gt;</description>
      <comments>http://www.gumpi.com/Blog/CommentView,guid,b6f47779-c5e2-4b49-86d0-e37bfb768af4.aspx</comments>
      <category>Delphi</category>
      <category>Development</category>
      <category>Development (English)</category>
      <category>English</category>
      <category>Samples</category>
    </item>
    <item>
      <trackback:ping>http://www.gumpi.com/Blog/Trackback.aspx?guid=1e63bd7e-f2b0-4acb-96c1-5999cd43a9ea</trackback:ping>
      <pingback:server>http://www.gumpi.com/Blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.gumpi.com/Blog/PermaLink,guid,1e63bd7e-f2b0-4acb-96c1-5999cd43a9ea.aspx</pingback:target>
      <dc:creator>Daniel Wischnewski</dc:creator>
      <wfw:comment>http://www.gumpi.com/Blog/CommentView,guid,1e63bd7e-f2b0-4acb-96c1-5999cd43a9ea.aspx</wfw:comment>
      <wfw:commentRss>http://www.gumpi.com/Blog/SyndicationService.asmx/GetEntryCommentsRss?guid=1e63bd7e-f2b0-4acb-96c1-5999cd43a9ea</wfw:commentRss>
      <slash:comments>2</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
A few weeks ago, <a href="http://www.gumpi.com/Blog/ct.ashx?id=1e63bd7e-f2b0-4acb-96c1-5999cd43a9ea&amp;url=http%3a%2f%2fwww.stevetrefethen.com%2f">Steve
Trefethen</a> published his Blog entry <a href="http://www.gumpi.com/Blog/ct.ashx?id=1e63bd7e-f2b0-4acb-96c1-5999cd43a9ea&amp;url=http%3a%2f%2fwww.stevetrefethen.com%2fblog%2fPublishingIISLogFileAnalysisUsingMicrosoftLogParser.aspx">Publishing
IIS log file analysis using Microsoft Log Parser</a>, where he outlined how to use
the free software <a href="http://www.gumpi.com/Blog/ct.ashx?id=1e63bd7e-f2b0-4acb-96c1-5999cd43a9ea&amp;url=http%3a%2f%2fwww.microsoft.com%2ftechnet%2fscriptcenter%2ftools%2flogparser%2fdefault.mspx">MS
Log Parser</a> to run a basic analysis of the log files created by IIS. Today I set
up my task scheduler to run two basic tasks once a day to generate Summaries on the <a href="http://www.gumpi.com/Blog/ct.ashx?id=1e63bd7e-f2b0-4acb-96c1-5999cd43a9ea&amp;url=http%3a%2f%2fwww.gumpi.com%2fBlog%2fSpecial.aspx%3f%3dMostHits">most
read blog entries</a> as well as the <a href="http://www.gumpi.com/Blog/ct.ashx?id=1e63bd7e-f2b0-4acb-96c1-5999cd43a9ea&amp;url=http%3a%2f%2fwww.gumpi.com%2fBlog%2fSpecial.aspx%3f%3dDownloads">top
downloaded files</a> from my conference page.
</p>
        <p>
The whole setup process took less than 20 minutes to figure out how to format the
query, to create the templates for displaying them within this blog layout and to
setup the scheduler tasks. The last task was the "hardest", as you cannot use parameters
when using the scheduler interface. After figuring out that problem, I simply created
the batch files and pointed the task scheduler to them, which in turn run the queries.
</p>
        <p>
If you like to use those tasks for your <a href="http://www.gumpi.com/Blog/ct.ashx?id=1e63bd7e-f2b0-4acb-96c1-5999cd43a9ea&amp;url=http%3a%2f%2fwww.dasblog.info">DasBlog</a> site,
simply install the MS Log Parser on your server and adjust the following calls.
</p>
        <p>
          <font size="3">The Top 50 Requested Pages</font>
        </p>
        <pre class="sourcecode">logparser.exe 
"SELECT TOP 50 
  to_lowercase(cs-uri-stem) as Url, COUNT(cs-uri-stem) AS Hits 
FROM
  D:\LogFiles\W3SVC2106058385\ex*.log 
WHERE 
  (to_lowercase(cs-uri-stem) NOT LIKE '%%captchaimage%%') AND
  ((to_lowercase(cs-uri-stem) = '/blog') OR 
<br />
(to_lowercase(cs-uri-stem) = '/blog/default.aspx') OR 
<br />
(to_lowercase(cs-uri-stem) like '/blog/20%%.aspx')) GROUP BY Url ORDER BY Hits DESC"
-o:tpl -tpl "D:\Sites\Blog\Content\Special\mosthits.format.tpl" &gt; "D:\Sites\Blog\Content\Special\mosthits.format.html"</pre>
        <p>
          <font size="3">The Downloads-Counter</font>
        </p>
        <pre class="sourcecode">logparser.exe 
"SELECT TOP 50 
  to_lowercase(cs-uri-stem) as Url, COUNT(cs-uri-stem) AS Hits 
FROM
  D:\LogFiles\W3SVC2106058385\ex*.log 
WHERE
  (to_lowercase(cs-uri-stem) like '/downloads/%%')
GROUP BY 
  Url 
ORDER BY
  Hits DESC"
-o:tpl -tpl "D:\Sites\Blog\Content\Special\downloads.format.tpl" &gt; "D:\Sites\Blog\Content\Special\downloads.format.html"</pre>
        <p>
The .tpl-files are formatted similar to the ones shown in Steve's blog.
</p>
        <img width="0" height="0" src="http://www.gumpi.com/Blog/aggbug.ashx?id=1e63bd7e-f2b0-4acb-96c1-5999cd43a9ea" />
      </body>
      <title>Using the MS LogParser for rough statistics</title>
      <guid isPermaLink="false">http://www.gumpi.com/Blog/PermaLink,guid,1e63bd7e-f2b0-4acb-96c1-5999cd43a9ea.aspx</guid>
      <link>http://www.gumpi.com/Blog/2007/10/05/UsingTheMSLogParserForRoughStatistics.aspx</link>
      <pubDate>Fri, 05 Oct 2007 11:51:55 GMT</pubDate>
      <description>&lt;p&gt;
A few weeks ago, &lt;a href="http://www.gumpi.com/Blog/ct.ashx?id=1e63bd7e-f2b0-4acb-96c1-5999cd43a9ea&amp;amp;url=http%3a%2f%2fwww.stevetrefethen.com%2f"&gt;Steve
Trefethen&lt;/a&gt; published his Blog entry &lt;a href="http://www.gumpi.com/Blog/ct.ashx?id=1e63bd7e-f2b0-4acb-96c1-5999cd43a9ea&amp;amp;url=http%3a%2f%2fwww.stevetrefethen.com%2fblog%2fPublishingIISLogFileAnalysisUsingMicrosoftLogParser.aspx"&gt;Publishing
IIS log file analysis using Microsoft Log Parser&lt;/a&gt;, where he outlined how to use
the free software &lt;a href="http://www.gumpi.com/Blog/ct.ashx?id=1e63bd7e-f2b0-4acb-96c1-5999cd43a9ea&amp;amp;url=http%3a%2f%2fwww.microsoft.com%2ftechnet%2fscriptcenter%2ftools%2flogparser%2fdefault.mspx"&gt;MS
Log Parser&lt;/a&gt; to run a basic analysis of the log files created by IIS. Today I set
up my task scheduler to run two basic tasks once a day to generate Summaries on the &lt;a href="http://www.gumpi.com/Blog/ct.ashx?id=1e63bd7e-f2b0-4acb-96c1-5999cd43a9ea&amp;amp;url=http%3a%2f%2fwww.gumpi.com%2fBlog%2fSpecial.aspx%3f%3dMostHits"&gt;most
read blog entries&lt;/a&gt; as well as the &lt;a href="http://www.gumpi.com/Blog/ct.ashx?id=1e63bd7e-f2b0-4acb-96c1-5999cd43a9ea&amp;amp;url=http%3a%2f%2fwww.gumpi.com%2fBlog%2fSpecial.aspx%3f%3dDownloads"&gt;top
downloaded files&lt;/a&gt; from my conference page.
&lt;/p&gt;
&lt;p&gt;
The whole setup process took less than 20 minutes to figure out how to format the
query, to create the templates for displaying them within this blog layout and to
setup the scheduler tasks. The last task was the "hardest", as you cannot use parameters
when using the scheduler interface. After figuring out that problem, I simply created
the batch files and pointed the task scheduler to them, which in turn run the queries.
&lt;/p&gt;
&lt;p&gt;
If you like to use those tasks for your &lt;a href="http://www.gumpi.com/Blog/ct.ashx?id=1e63bd7e-f2b0-4acb-96c1-5999cd43a9ea&amp;amp;url=http%3a%2f%2fwww.dasblog.info"&gt;DasBlog&lt;/a&gt; site,
simply install the MS Log Parser on your server and adjust the following calls.
&lt;/p&gt;
&lt;p&gt;
&lt;font size=3&gt;The Top 50 Requested Pages&lt;/font&gt;
&lt;/p&gt;
&lt;pre class=sourcecode&gt;logparser.exe 
"SELECT TOP 50 
  to_lowercase(cs-uri-stem) as Url, COUNT(cs-uri-stem) AS Hits 
FROM
  D:\LogFiles\W3SVC2106058385\ex*.log 
WHERE 
  (to_lowercase(cs-uri-stem) NOT LIKE '%%captchaimage%%') AND
  ((to_lowercase(cs-uri-stem) = '/blog') OR 
&lt;br&gt;
(to_lowercase(cs-uri-stem) = '/blog/default.aspx') OR 
&lt;br&gt;
(to_lowercase(cs-uri-stem) like '/blog/20%%.aspx')) GROUP BY Url ORDER BY Hits DESC"
-o:tpl -tpl "D:\Sites\Blog\Content\Special\mosthits.format.tpl" &amp;gt; "D:\Sites\Blog\Content\Special\mosthits.format.html"&lt;/pre&gt;
&lt;p&gt;
&lt;font size=3&gt;The Downloads-Counter&lt;/font&gt;
&lt;/p&gt;
&lt;pre class=sourcecode&gt;logparser.exe 
"SELECT TOP 50 
  to_lowercase(cs-uri-stem) as Url, COUNT(cs-uri-stem) AS Hits 
FROM
  D:\LogFiles\W3SVC2106058385\ex*.log 
WHERE
  (to_lowercase(cs-uri-stem) like '/downloads/%%')
GROUP BY 
  Url 
ORDER BY
  Hits DESC"
-o:tpl -tpl "D:\Sites\Blog\Content\Special\downloads.format.tpl" &amp;gt; "D:\Sites\Blog\Content\Special\downloads.format.html"&lt;/pre&gt;
&lt;p&gt;
The .tpl-files are formatted similar to the ones shown in Steve's blog.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.gumpi.com/Blog/aggbug.ashx?id=1e63bd7e-f2b0-4acb-96c1-5999cd43a9ea" /&gt;</description>
      <comments>http://www.gumpi.com/Blog/CommentView,guid,1e63bd7e-f2b0-4acb-96c1-5999cd43a9ea.aspx</comments>
      <category>DasBlog</category>
      <category>Development</category>
      <category>Development (English)</category>
      <category>English</category>
      <category>Samples</category>
    </item>
    <item>
      <trackback:ping>http://www.gumpi.com/Blog/Trackback.aspx?guid=359a7a78-b47f-455f-8570-764d1b5f2784</trackback:ping>
      <pingback:server>http://www.gumpi.com/Blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.gumpi.com/Blog/PermaLink,guid,359a7a78-b47f-455f-8570-764d1b5f2784.aspx</pingback:target>
      <dc:creator>Daniel Wischnewski</dc:creator>
      <wfw:comment>http://www.gumpi.com/Blog/CommentView,guid,359a7a78-b47f-455f-8570-764d1b5f2784.aspx</wfw:comment>
      <wfw:commentRss>http://www.gumpi.com/Blog/SyndicationService.asmx/GetEntryCommentsRss?guid=359a7a78-b47f-455f-8570-764d1b5f2784</wfw:commentRss>
      <slash:comments>2</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
One of the things promised, which are on the Internet somewhere, but sometimes hard
to find, was a code snippet which reliably returns, whether the program is started
in administrative mode or not. This piece of code is similar to old known solutions,
however under Vista the old version returned the user level, rather than the token
under which the program was started. The following code works well under Windows Vista
and older systems.
</p>
        <pre class="sourcecode">
          <code class="keyword">const</code> SECURITY_NT_AUTHORITY:
TSIDIdentifierAuthority = (Value: (0, 0, 0, 0, 0, 5)); SECURITY_BUILTIN_DOMAIN_RID
= $00000020; DOMAIN_ALIAS_RID_ADMINS = $00000220; SE_GROUP_ENABLED = $00000004; <code class="keyword">function</code> IsAdmin:
Boolean; <code class="keyword">var</code> hAccessToken: THandle; ptgGroups: PTokenGroups;
dwInfoBufferSize: DWORD; psidAdministrators: PSID; x: Integer; bSuccess: BOOL; <code class="keyword">begin</code> Result
:= False; bSuccess := OpenThreadToken(GetCurrentThread, TOKEN_QUERY, True, hAccessToken); <code class="keyword">if</code><code class="keyword">not</code> bSuccess <code class="keyword">then</code><code class="keyword">if</code> GetLastError
= ERROR_NO_TOKEN <code class="keyword">then</code> bSuccess := OpenProcessToken(GetCurrentProcess,
TOKEN_QUERY, hAccessToken); <code class="keyword">if</code> bSuccess <code class="keyword">then</code><code class="keyword">begin</code> GetTokenInformation(hAccessToken,
TokenGroups, nil, 0, dwInfoBufferSize); ptgGroups := GetMemory(dwInfoBufferSize);
bSuccess := GetTokenInformation(hAccessToken, TokenGroups, ptgGroups, dwInfoBufferSize,
dwInfoBufferSize); CloseHandle(hAccessToken); <code class="keyword">if</code> bSuccess <code class="keyword">then</code><code class="keyword">begin</code> AllocateAndInitializeSid(SECURITY_NT_AUTHORITY,
2, SECURITY_BUILTIN_DOMAIN_RID, DOMAIN_ALIAS_RID_ADMINS, 0, 0, 0, 0, 0, 0, psidAdministrators); <code class="comment">{$R-}</code><code class="keyword">for</code> x
:= 0 <code class="keyword">to</code> ptgGroups.GroupCount - 1 <code class="keyword">do</code><code class="keyword">begin</code><code class="keyword">if</code> (SE_GROUP_ENABLED
= (ptgGroups.Groups[x].Attributes <code class="keyword">and</code> SE_GROUP_ENABLED)) <code class="keyword">and</code> EqualSid(psidAdministrators,
ptgGroups.Groups[x].Sid) <code class="keyword">then</code><code class="keyword">begin</code> Result
:= True; Break; <code class="keyword">end</code>; <code class="keyword">end</code>; <code class="comment">{$R+}</code> FreeSid(psidAdministrators); <code class="keyword">end</code>;
FreeMem(ptgGroups); <code class="keyword">end</code>; <code class="keyword">end</code>;</pre>
        <p>
Thanks to Olaf for pointing out the insufficient memory problem. Fixed in this sample.
</p>
        <img width="0" height="0" src="http://www.gumpi.com/Blog/aggbug.ashx?id=359a7a78-b47f-455f-8570-764d1b5f2784" />
      </body>
      <title>EKON 11 - Promised Entry #3</title>
      <guid isPermaLink="false">http://www.gumpi.com/Blog/PermaLink,guid,359a7a78-b47f-455f-8570-764d1b5f2784.aspx</guid>
      <link>http://www.gumpi.com/Blog/2007/10/02/EKON11PromisedEntry3.aspx</link>
      <pubDate>Tue, 02 Oct 2007 09:35:01 GMT</pubDate>
      <description>&lt;p&gt;
One of the things promised, which are on the Internet somewhere, but sometimes hard
to find, was a code snippet which reliably returns, whether the program is started
in administrative mode or not. This piece of code is similar to old known solutions,
however under Vista the old version returned the user level, rather than the token
under which the program was started. The following code works well under Windows Vista
and older systems.
&lt;/p&gt;
&lt;pre class=sourcecode&gt;&lt;code class=keyword&gt;const&lt;/code&gt; SECURITY_NT_AUTHORITY: TSIDIdentifierAuthority
= (Value: (0, 0, 0, 0, 0, 5)); SECURITY_BUILTIN_DOMAIN_RID = $00000020; DOMAIN_ALIAS_RID_ADMINS
= $00000220; SE_GROUP_ENABLED = $00000004; &lt;code class=keyword&gt;function&lt;/code&gt; IsAdmin:
Boolean; &lt;code class=keyword&gt;var&lt;/code&gt; hAccessToken: THandle; ptgGroups: PTokenGroups;
dwInfoBufferSize: DWORD; psidAdministrators: PSID; x: Integer; bSuccess: BOOL; &lt;code class=keyword&gt;begin&lt;/code&gt; Result
:= False; bSuccess := OpenThreadToken(GetCurrentThread, TOKEN_QUERY, True, hAccessToken); &lt;code class=keyword&gt;if&lt;/code&gt; &lt;code class=keyword&gt;not&lt;/code&gt; bSuccess &lt;code class=keyword&gt;then&lt;/code&gt; &lt;code class=keyword&gt;if&lt;/code&gt; GetLastError
= ERROR_NO_TOKEN &lt;code class=keyword&gt;then&lt;/code&gt; bSuccess := OpenProcessToken(GetCurrentProcess,
TOKEN_QUERY, hAccessToken); &lt;code class=keyword&gt;if&lt;/code&gt; bSuccess &lt;code class=keyword&gt;then&lt;/code&gt; &lt;code class=keyword&gt;begin&lt;/code&gt; GetTokenInformation(hAccessToken,
TokenGroups, nil, 0, dwInfoBufferSize); ptgGroups := GetMemory(dwInfoBufferSize);
bSuccess := GetTokenInformation(hAccessToken, TokenGroups, ptgGroups, dwInfoBufferSize,
dwInfoBufferSize); CloseHandle(hAccessToken); &lt;code class=keyword&gt;if&lt;/code&gt; bSuccess &lt;code class=keyword&gt;then&lt;/code&gt; &lt;code class=keyword&gt;begin&lt;/code&gt; AllocateAndInitializeSid(SECURITY_NT_AUTHORITY,
2, SECURITY_BUILTIN_DOMAIN_RID, DOMAIN_ALIAS_RID_ADMINS, 0, 0, 0, 0, 0, 0, psidAdministrators); &lt;code class=comment&gt;{$R-}&lt;/code&gt; &lt;code class=keyword&gt;for&lt;/code&gt; x
:= 0 &lt;code class=keyword&gt;to&lt;/code&gt; ptgGroups.GroupCount - 1 &lt;code class=keyword&gt;do&lt;/code&gt; &lt;code class=keyword&gt;begin&lt;/code&gt; &lt;code class=keyword&gt;if&lt;/code&gt; (SE_GROUP_ENABLED
= (ptgGroups.Groups[x].Attributes &lt;code class=keyword&gt;and&lt;/code&gt; SE_GROUP_ENABLED)) &lt;code class=keyword&gt;and&lt;/code&gt; EqualSid(psidAdministrators,
ptgGroups.Groups[x].Sid) &lt;code class=keyword&gt;then&lt;/code&gt; &lt;code class=keyword&gt;begin&lt;/code&gt; Result
:= True; Break; &lt;code class=keyword&gt;end&lt;/code&gt;; &lt;code class=keyword&gt;end&lt;/code&gt;; &lt;code class=comment&gt;{$R+}&lt;/code&gt; FreeSid(psidAdministrators); &lt;code class=keyword&gt;end&lt;/code&gt;;
FreeMem(ptgGroups); &lt;code class=keyword&gt;end&lt;/code&gt;; &lt;code class=keyword&gt;end&lt;/code&gt;;&lt;/pre&gt;
&lt;p&gt;
Thanks to Olaf for pointing out the insufficient memory problem. Fixed in this sample.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.gumpi.com/Blog/aggbug.ashx?id=359a7a78-b47f-455f-8570-764d1b5f2784" /&gt;</description>
      <comments>http://www.gumpi.com/Blog/CommentView,guid,359a7a78-b47f-455f-8570-764d1b5f2784.aspx</comments>
      <category>Conferences</category>
      <category>Delphi</category>
      <category>Development</category>
      <category>Development (English)</category>
      <category>English</category>
      <category>Samples</category>
    </item>
    <item>
      <trackback:ping>http://www.gumpi.com/Blog/Trackback.aspx?guid=195c1b03-7b7f-49cb-ab42-b978fa999ff7</trackback:ping>
      <pingback:server>http://www.gumpi.com/Blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.gumpi.com/Blog/PermaLink,guid,195c1b03-7b7f-49cb-ab42-b978fa999ff7.aspx</pingback:target>
      <dc:creator>Daniel Wischnewski</dc:creator>
      <wfw:comment>http://www.gumpi.com/Blog/CommentView,guid,195c1b03-7b7f-49cb-ab42-b978fa999ff7.aspx</wfw:comment>
      <wfw:commentRss>http://www.gumpi.com/Blog/SyndicationService.asmx/GetEntryCommentsRss?guid=195c1b03-7b7f-49cb-ab42-b978fa999ff7</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
The downloads are ready, you'll find my conference papers at my new <a href="http://www.gumpi.com/Blog/ct.ashx?id=195c1b03-7b7f-49cb-ab42-b978fa999ff7&amp;url=http%3a%2f%2fwww.gumpi.com%2fBlog%2fSpecial.aspx%3f%3dConferences">Conference
Page</a>. There are no downloads for the CodeCamp session, as this was mainly a session
for questions &amp; answers on <a href="http://www.gumpi.com/Blog/ct.ashx?id=195c1b03-7b7f-49cb-ab42-b978fa999ff7&amp;url=http%3a%2f%2fwww.codegear.com%2fproducts%2fdelphi%2fwin32">Delphi</a>,
Windows Vista &amp; .NET. However, I have promised a few code snippets on this session,
which will appear over the next days on my blog, though not before Tuesday, when I
will be in my office next time.      
</p>
        <img width="0" height="0" src="http://www.gumpi.com/Blog/aggbug.ashx?id=195c1b03-7b7f-49cb-ab42-b978fa999ff7" />
      </body>
      <title>EKON 11 - Promised Entry #2</title>
      <guid isPermaLink="false">http://www.gumpi.com/Blog/PermaLink,guid,195c1b03-7b7f-49cb-ab42-b978fa999ff7.aspx</guid>
      <link>http://www.gumpi.com/Blog/2007/09/29/EKON11PromisedEntry2.aspx</link>
      <pubDate>Sat, 29 Sep 2007 16:55:57 GMT</pubDate>
      <description>&lt;p&gt;
The downloads are ready, you'll find my conference papers at my new &lt;a href="http://www.gumpi.com/Blog/ct.ashx?id=195c1b03-7b7f-49cb-ab42-b978fa999ff7&amp;amp;url=http%3a%2f%2fwww.gumpi.com%2fBlog%2fSpecial.aspx%3f%3dConferences"&gt;Conference
Page&lt;/a&gt;. There are no downloads for the CodeCamp session, as this was mainly a session
for questions &amp;amp; answers on &lt;a href="http://www.gumpi.com/Blog/ct.ashx?id=195c1b03-7b7f-49cb-ab42-b978fa999ff7&amp;amp;url=http%3a%2f%2fwww.codegear.com%2fproducts%2fdelphi%2fwin32"&gt;Delphi&lt;/a&gt;,
Windows Vista &amp;amp; .NET. However, I have promised a few code snippets on this session,
which will appear over the next days on my blog, though not before Tuesday, when I
will be in my office next time.&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.gumpi.com/Blog/aggbug.ashx?id=195c1b03-7b7f-49cb-ab42-b978fa999ff7" /&gt;</description>
      <comments>http://www.gumpi.com/Blog/CommentView,guid,195c1b03-7b7f-49cb-ab42-b978fa999ff7.aspx</comments>
      <category>Conferences</category>
      <category>Delphi</category>
      <category>Development</category>
      <category>Development (English)</category>
      <category>English</category>
      <category>Samples</category>
    </item>
    <item>
      <trackback:ping>http://www.gumpi.com/Blog/Trackback.aspx?guid=e1b0c024-403b-48e9-b20b-62a137652613</trackback:ping>
      <pingback:server>http://www.gumpi.com/Blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.gumpi.com/Blog/PermaLink,guid,e1b0c024-403b-48e9-b20b-62a137652613.aspx</pingback:target>
      <dc:creator>Daniel Wischnewski</dc:creator>
      <wfw:comment>http://www.gumpi.com/Blog/CommentView,guid,e1b0c024-403b-48e9-b20b-62a137652613.aspx</wfw:comment>
      <wfw:commentRss>http://www.gumpi.com/Blog/SyndicationService.asmx/GetEntryCommentsRss?guid=e1b0c024-403b-48e9-b20b-62a137652613</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
After the Sessions at the EKON I will release the conference materials on my newly
created conference page. I do hope that this page will fill over time, but here is
a start. My sessions will be on Wednesday, so there is not much sense in going there
just now, but I wanted this part to be ready, so here you go.
</p>
        <p>
          <a href="http://www.gumpi.com/Blog/ct.ashx?id=e1b0c024-403b-48e9-b20b-62a137652613&amp;url=http%3a%2f%2fwww.gumpi.com%2fBlog%2fSpecial.aspx%3f%3dConferences">http://www.gumpi.com/Blog/Special.aspx?=Conferences</a>
        </p>
        <img width="0" height="0" src="http://www.gumpi.com/Blog/aggbug.ashx?id=e1b0c024-403b-48e9-b20b-62a137652613" />
      </body>
      <title>EKON Conference Material</title>
      <guid isPermaLink="false">http://www.gumpi.com/Blog/PermaLink,guid,e1b0c024-403b-48e9-b20b-62a137652613.aspx</guid>
      <link>http://www.gumpi.com/Blog/2007/09/24/EKONConferenceMaterial.aspx</link>
      <pubDate>Mon, 24 Sep 2007 13:10:00 GMT</pubDate>
      <description>&lt;p&gt;
After the Sessions at the EKON I will release the conference materials on my newly
created conference page. I do hope that this page will fill over time, but here is
a start. My sessions will be on Wednesday, so there is not much sense in going there
just now, but I wanted this part to be ready, so here you go.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.gumpi.com/Blog/ct.ashx?id=e1b0c024-403b-48e9-b20b-62a137652613&amp;amp;url=http%3a%2f%2fwww.gumpi.com%2fBlog%2fSpecial.aspx%3f%3dConferences"&gt;http://www.gumpi.com/Blog/Special.aspx?=Conferences&lt;/a&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.gumpi.com/Blog/aggbug.ashx?id=e1b0c024-403b-48e9-b20b-62a137652613" /&gt;</description>
      <comments>http://www.gumpi.com/Blog/CommentView,guid,e1b0c024-403b-48e9-b20b-62a137652613.aspx</comments>
      <category>Conferences</category>
      <category>Delphi</category>
      <category>Development</category>
      <category>English</category>
      <category>Samples</category>
      <category>Development (English)</category>
    </item>
  </channel>
</rss>