<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>DelphiTips.net &#187; Windows</title>
	<atom:link href="http://www.delphitips.net/windows/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.delphitips.net</link>
	<description>...free Delphi tips &#38; source code repository</description>
	<lastBuildDate>Fri, 24 Jul 2009 22:19:02 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Run application only once per windows-session</title>
		<link>http://www.delphitips.net/2009/06/07/run-application-only-once-per-windows-session/</link>
		<comments>http://www.delphitips.net/2009/06/07/run-application-only-once-per-windows-session/#comments</comments>
		<pubDate>Sun, 07 Jun 2009 18:51:02 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[System]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[atom]]></category>
		<category><![CDATA[session]]></category>

		<guid isPermaLink="false">http://www.delphitips.net/?p=67</guid>
		<description><![CDATA[Using this simple tip, you can block your application to be executable only once per windows sessions. To run application again, Windows must be restarted before.
We will use &#8220;atom&#8221;, which is something like global identifier. Using function GlobalFindAtom, we will try to find our application&#8217;s unique ID (we will generate a GUID using Ctrl+Shift+G shortcut). [...]]]></description>
		<wfw:commentRss>http://www.delphitips.net/2009/06/07/run-application-only-once-per-windows-session/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Own cool text cursor in Editbox</title>
		<link>http://www.delphitips.net/2009/02/17/own-cool-text-cursor-in-editbox/</link>
		<comments>http://www.delphitips.net/2009/02/17/own-cool-text-cursor-in-editbox/#comments</comments>
		<pubDate>Mon, 16 Feb 2009 23:08:06 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Graphic]]></category>
		<category><![CDATA[VCL components]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[cursor]]></category>
		<category><![CDATA[text]]></category>

		<guid isPermaLink="false">http://www.delphitips.net/?p=65</guid>
		<description><![CDATA[Standard text cursor is boring. What about replacing default vertical line with some cool shape?

unit Unit1;
&#160;
interface
&#160;
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;
&#160;
type
  TForm1 = class&#40;TForm&#41;
    Edit1: TEdit;
    procedure FormCreate&#40;Sender: TObject&#41;;
    procedure FormDestroy&#40;Sender: TObject&#41;;
  private
    { [...]]]></description>
		<wfw:commentRss>http://www.delphitips.net/2009/02/17/own-cool-text-cursor-in-editbox/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Add own item to Internet Explorer Tools menu</title>
		<link>http://www.delphitips.net/2009/01/21/add-own-item-to-internet-explorer-tools-menu/</link>
		<comments>http://www.delphitips.net/2009/01/21/add-own-item-to-internet-explorer-tools-menu/#comments</comments>
		<pubDate>Tue, 20 Jan 2009 23:21:44 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Internet]]></category>
		<category><![CDATA[Registry]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[explorer]]></category>
		<category><![CDATA[interner]]></category>
		<category><![CDATA[item]]></category>
		<category><![CDATA[menu]]></category>
		<category><![CDATA[tools]]></category>

		<guid isPermaLink="false">http://www.delphitips.net/?p=63</guid>
		<description><![CDATA[If you want to add own items to Tools menu of Internet Explorer, it&#8217;s simple. All we have to do is to add some keys to Windows registry, therefore we must use Registry unit.
As you can see in source code, we must specify the menu item label (or button label) and of course the path [...]]]></description>
		<wfw:commentRss>http://www.delphitips.net/2009/01/21/add-own-item-to-internet-explorer-tools-menu/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How to detect clipboard change</title>
		<link>http://www.delphitips.net/2009/01/14/how-to-detect-clipboard-change/</link>
		<comments>http://www.delphitips.net/2009/01/14/how-to-detect-clipboard-change/#comments</comments>
		<pubDate>Wed, 14 Jan 2009 22:54:52 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[System]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[change]]></category>
		<category><![CDATA[clipboard]]></category>
		<category><![CDATA[detect]]></category>

		<guid isPermaLink="false">http://www.delphitips.net/?p=61</guid>
		<description><![CDATA[Detecting clipboard change is very similar to detecting system time change. We will detect WM_DRAWCLIPBOARD system message.

unit Unit1;
&#160;
interface
&#160;
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs;
&#160;
type
  TForm1 = class&#40;TForm&#41;
    procedure FormCreate&#40;Sender: TObject&#41;;
  private
    { Private declarations }
  public
    { Public [...]]]></description>
		<wfw:commentRss>http://www.delphitips.net/2009/01/14/how-to-detect-clipboard-change/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How to detect system time change</title>
		<link>http://www.delphitips.net/2009/01/07/how-to-detect-system-time-change/</link>
		<comments>http://www.delphitips.net/2009/01/07/how-to-detect-system-time-change/#comments</comments>
		<pubDate>Tue, 06 Jan 2009 23:01:19 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[System]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[change]]></category>
		<category><![CDATA[detect]]></category>
		<category><![CDATA[message]]></category>
		<category><![CDATA[time]]></category>

		<guid isPermaLink="false">http://www.delphitips.net/?p=59</guid>
		<description><![CDATA[If the user changes the system time either with Date and Time properties dialog box or using command line, we can detect this by catching WM_TIMECHANGE system message. Here is how.

unit Unit1;
&#160;
interface
&#160;
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs;
&#160;
type
  TForm1 = class&#40;TForm&#41;
  private
    { Private declarations [...]]]></description>
		<wfw:commentRss>http://www.delphitips.net/2009/01/07/how-to-detect-system-time-change/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Get Process Memory Info</title>
		<link>http://www.delphitips.net/2008/09/29/get-process-memory-info/</link>
		<comments>http://www.delphitips.net/2008/09/29/get-process-memory-info/#comments</comments>
		<pubDate>Mon, 29 Sep 2008 18:21:51 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[System]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[memory]]></category>
		<category><![CDATA[process]]></category>

		<guid isPermaLink="false">http://www.delphitips.net/?p=54</guid>
		<description><![CDATA[If you want to know how many bytes of memory is using your process, here is simple example.
We will need standard psAPI unit. Using API function GetProcessMemoryInfo, we can get amount of used bytes of memory.

unit Unit1;
&#160;
interface
&#160;
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, psAPI;
&#160;
type
  TForm1 = class&#40;TForm&#41;
  [...]]]></description>
		<wfw:commentRss>http://www.delphitips.net/2008/09/29/get-process-memory-info/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Change font, size and style of hint</title>
		<link>http://www.delphitips.net/2008/07/29/change-hint-font-and-style/</link>
		<comments>http://www.delphitips.net/2008/07/29/change-hint-font-and-style/#comments</comments>
		<pubDate>Tue, 29 Jul 2008 21:35:21 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Forms]]></category>
		<category><![CDATA[VCL components]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[font]]></category>
		<category><![CDATA[hint]]></category>
		<category><![CDATA[style]]></category>

		<guid isPermaLink="false">http://www.delphitips.net/?p=52</guid>
		<description><![CDATA[Hints are everywhere. Almost every GUI element in Windows can be &#8220;hinted&#8221;. When user hover mouse over element, small yellow bubble with help text pops up. Is it possible to change hint &#8220;window&#8221; behavior? Of course&#8230;
To see how to change default color and timeouts of hint bubble, visit this post. To change font, size and [...]]]></description>
		<wfw:commentRss>http://www.delphitips.net/2008/07/29/change-hint-font-and-style/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Get a unique name for temporary file</title>
		<link>http://www.delphitips.net/2008/05/27/get-a-unique-name-for-temporary-file/</link>
		<comments>http://www.delphitips.net/2008/05/27/get-a-unique-name-for-temporary-file/#comments</comments>
		<pubDate>Tue, 27 May 2008 17:33:32 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Files]]></category>
		<category><![CDATA[System]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[file]]></category>
		<category><![CDATA[name]]></category>
		<category><![CDATA[TEMP]]></category>
		<category><![CDATA[temporary]]></category>
		<category><![CDATA[unique]]></category>

		<guid isPermaLink="false">http://www.delphitips.net/?p=49</guid>
		<description><![CDATA[Using GetTempFileName, we can create a unique name for temporary file. It&#8217;s useful when your application is using temporary files and you want to save them into default TEMP folder and use a &#8220;random&#8221; filename.

function GetTempFile&#40;const Extension: string&#41;: string;
var Buffer: array&#91;0..MAX_PATH&#93; OF Char;
    aFile : string;
begin
  repeat
    GetTempPath&#40;Sizeof&#40;Buffer&#41;-1, [...]]]></description>
		<wfw:commentRss>http://www.delphitips.net/2008/05/27/get-a-unique-name-for-temporary-file/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How to detect application associated with file</title>
		<link>http://www.delphitips.net/2008/05/25/how-to-detect-application-associated-with-file/</link>
		<comments>http://www.delphitips.net/2008/05/25/how-to-detect-application-associated-with-file/#comments</comments>
		<pubDate>Sun, 25 May 2008 17:06:52 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Files]]></category>
		<category><![CDATA[System]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[application]]></category>
		<category><![CDATA[associated]]></category>
		<category><![CDATA[file]]></category>

		<guid isPermaLink="false">http://www.delphitips.net/?p=48</guid>
		<description><![CDATA[To get full path to application associated with any file type, we need standard ShellAPI unit and the rest will do the FindExecutable function.
This function retrieves the name of and handle to the executable (.exe) file associated with a specific document file. For more information, visit detailed description on MSDN.

unit Unit1;
&#160;
interface
&#160;
uses
  Windows, Messages, SysUtils, [...]]]></description>
		<wfw:commentRss>http://www.delphitips.net/2008/05/25/how-to-detect-application-associated-with-file/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How to minimize application with modal window</title>
		<link>http://www.delphitips.net/2008/05/07/how-to-minimize-application-with-modal-window/</link>
		<comments>http://www.delphitips.net/2008/05/07/how-to-minimize-application-with-modal-window/#comments</comments>
		<pubDate>Wed, 07 May 2008 18:56:41 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Forms]]></category>
		<category><![CDATA[System]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[minimize]]></category>
		<category><![CDATA[modal]]></category>
		<category><![CDATA[window]]></category>

		<guid isPermaLink="false">http://www.delphitips.net/?p=46</guid>
		<description><![CDATA[When you minimize modal window, this window is &#8220;hidden&#8221; behind (or below) application main form. Using this simple trick, we can minimize also the main application window together with modal &#8220;child&#8221; window.

.
.
.
private
procedure WMSyscommand&#40;var Msg: TWmSysCommand&#41;; message WM_SYSCOMMAND;
&#160;
.
.
.
procedure TForm1.WMSysCommand&#40;var Msg: TWmSysCommand&#41;;
begin
  case &#40;Msg.CmdType and $FFF0&#41; of
    SC_MINIMIZE:  begin
    [...]]]></description>
		<wfw:commentRss>http://www.delphitips.net/2008/05/07/how-to-minimize-application-with-modal-window/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
