<?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>Мой DELPHI - Программирование &#187; implementation</title>
	<atom:link href="http://www.mydelphi.info/code/tag/implementation/feed" rel="self" type="application/rss+xml" />
	<link>http://www.mydelphi.info</link>
	<description>Всё для программера</description>
	<lastBuildDate>Mon, 09 Jun 2008 16:55:52 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Как сообщить всем формам моего приложения об изминении каких-то глобальных значений?</title>
		<link>http://www.mydelphi.info/code/180</link>
		<comments>http://www.mydelphi.info/code/180#comments</comments>
		<pubDate>Mon, 09 Jun 2008 16:32:19 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Delphi FAQ]]></category>
		<category><![CDATA[AMessage]]></category>
		<category><![CDATA[Click]]></category>
		<category><![CDATA[DFM]]></category>
		<category><![CDATA[FormCount]]></category>
		<category><![CDATA[FormShow]]></category>
		<category><![CDATA[implementation]]></category>
		<category><![CDATA[message]]></category>
		<category><![CDATA[Perform]]></category>
		<category><![CDATA[preform]]></category>
		<category><![CDATA[Sender]]></category>
		<category><![CDATA[TButton]]></category>
		<category><![CDATA[TLabel]]></category>
		<category><![CDATA[UMMyGlobalMessage]]></category>

		<guid isPermaLink="false">http://www.mydelphi.info/?p=180</guid>
		<description><![CDATA[Вопрос:
Как сообщить всем формам моего приложения (в том числе и не видимым в данный момент)
об изминении каких-то глобальных значений?
Ответ:
Один из способов - создать пользовательское сообщение и использовать метод preform
чтобы разослать его всем формам из массива Screen.Forms.

Пример:

{Code for Unit1}

const
	UM_MyGlobalMessage = WM_USER + 1;

type
	TForm1 = class(TForm)
		Label1: TLabel;
		Button1: TButton;
		procedure FormShow(Sender: TObject);
		procedure Button1Click(Sender: TObject);
   private
		{Private declarations}
		procedure UMMyGlobalMessage(var [...]]]></description>
		<wfw:commentRss>http://www.mydelphi.info/code/180/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Как среагировать на минимизацию-максимизацию формы</title>
		<link>http://www.mydelphi.info/code/177</link>
		<comments>http://www.mydelphi.info/code/177#comments</comments>
		<pubDate>Mon, 09 Jun 2008 16:29:20 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Delphi FAQ]]></category>
		<category><![CDATA[class]]></category>
		<category><![CDATA[CmdType]]></category>
		<category><![CDATA[implementation]]></category>
		<category><![CDATA[MINIMIZE]]></category>
		<category><![CDATA[SYSCOMMAND]]></category>
		<category><![CDATA[TForm]]></category>
		<category><![CDATA[TWMSysCommand]]></category>
		<category><![CDATA[var]]></category>

		<guid isPermaLink="false">http://www.mydelphi.info/?p=177</guid>
		<description><![CDATA[Вопрос:
Как среагировать на минимизацию-максимизацию формы перед тем как произойдет изменение
размера формы?
Ответ:
В примере перехватывается сообщение WM_SYSCOMMAND. Если это сообщение говорит о
минимизации или максимизации формы - пищит динамик.

Пример:

type
	TForm1 = class(TForm)
	private
		{Private declarations}
		procedure WMSysCommand(var Msg: TWMSysCommand);
		message WM_SYSCOMMAND;
	public
		{Public declarations}
end;

var
	Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.WMSysCommand;
begin
	if (Msg.CmdType = SC_MINIMIZE) or (Msg.CmdType = SC_MAXIMIZE) then
		MessageBeep(0)
	else
		inherited;
end;

]]></description>
		<wfw:commentRss>http://www.mydelphi.info/code/177/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Как сделать прямоугольник для выделения части картинки для редактирования?</title>
		<link>http://www.mydelphi.info/code/171</link>
		<comments>http://www.mydelphi.info/code/171#comments</comments>
		<pubDate>Mon, 09 Jun 2008 16:24:19 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Delphi FAQ]]></category>
		<category><![CDATA[Capturing]]></category>
		<category><![CDATA[DrawFocusRect]]></category>
		<category><![CDATA[FormMouseUp]]></category>
		<category><![CDATA[implementation]]></category>
		<category><![CDATA[Integer]]></category>
		<category><![CDATA[MakeRect]]></category>
		<category><![CDATA[procedure]]></category>
		<category><![CDATA[Sender]]></category>
		<category><![CDATA[TForm]]></category>
		<category><![CDATA[TRect]]></category>
		<category><![CDATA[TShiftState]]></category>

		<guid isPermaLink="false">http://www.mydelphi.info/?p=171</guid>
		<description><![CDATA[Вопрос:
Как сделать прямоугольник для выделения части картинки для редактирования?

Ответ:
Самый простой способ -
воспользоваться функцией Windows API DrawFocusRect. Функция DrawFocusRect использует
операцию XOR при рисовании &#8211; таким образом вывод прямоугольника дважды с одними
и теми же координатами стирает прямоугольник, и прямоугольник всегда будет виден,
на фоне какого бы цвета он не выводился.
Пример:
type
	TForm1 = class(TForm)
		procedure FormMouseDown(Sender: TObject; Button: TMouseButton;
				Shift: TShiftState; X, [...]]]></description>
		<wfw:commentRss>http://www.mydelphi.info/code/171/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Как перехватить события в неклиентской области формы, в заголовке окна, например?</title>
		<link>http://www.mydelphi.info/code/165</link>
		<comments>http://www.mydelphi.info/code/165#comments</comments>
		<pubDate>Mon, 09 Jun 2008 16:19:16 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Delphi FAQ]]></category>
		<category><![CDATA[Client]]></category>
		<category><![CDATA[implementation]]></category>
		<category><![CDATA[NCMOUSEMOVE]]></category>
		<category><![CDATA[procedure]]></category>
		<category><![CDATA[public]]></category>
		<category><![CDATA[StdCtrls]]></category>
		<category><![CDATA[String]]></category>
		<category><![CDATA[TForm]]></category>
		<category><![CDATA[TMessage]]></category>
		<category><![CDATA[Unit]]></category>
		<category><![CDATA[WMNCMOUSEMOVE]]></category>
		<category><![CDATA[wParam]]></category>

		<guid isPermaLink="false">http://www.mydelphi.info/?p=165</guid>
		<description><![CDATA[Вопрос:
Как перехватить события в неклиентской области формы, в заголовке окна, например?
Ответ:
Создайте обработчик одного из сообщений WM_NC (non client - не клиентских) (посмотрите
WM_NC в Windows API help). Пример показывает как перехватить вижение мыши во всей
неклиенстской области окна (рамка и заголовок).

Пример:

unit Unit1;

interface

uses
   Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;

type
TForm1 = class(TForm)
private
	{Private declarations}
	procedure WMNCMOUSEMOVE(var [...]]]></description>
		<wfw:commentRss>http://www.mydelphi.info/code/165/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Как перемещать компонент мышкой во время работы программы &#8220;runtime&#8221;?</title>
		<link>http://www.mydelphi.info/code/163</link>
		<comments>http://www.mydelphi.info/code/163#comments</comments>
		<pubDate>Mon, 09 Jun 2008 16:17:41 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Delphi FAQ]]></category>
		<category><![CDATA[Capturing]]></category>
		<category><![CDATA[implementation]]></category>
		<category><![CDATA[Integer]]></category>
		<category><![CDATA[MouseDownSpot]]></category>
		<category><![CDATA[OnMouseDown]]></category>
		<category><![CDATA[OnMouseMove]]></category>
		<category><![CDATA[OnMouseUp]]></category>
		<category><![CDATA[SetCapture]]></category>
		<category><![CDATA[TMouseButton]]></category>
		<category><![CDATA[TShiftState]]></category>

		<guid isPermaLink="false">http://www.mydelphi.info/?p=163</guid>
		<description><![CDATA[Вопрос:
  Как перемещать компонент мышкой во время работы программы "runtime"?

Ответ:
Перехватить событие OnMouseDown,
запомнить x и y координты курсора мыши. Отслеживать движение мыши по событию
OnMouseMove и перемещать компонент вслед за курсором мыши до тех пор пока не
произойдет событие OnMouseUp. В примере показано перемещение компонента TButton.
Перемещение начинается, когда пользователь &#8220;берет&#8221; TButton мышью, удерживая
нажатой клавишу &#8220;Сontrol&#8221;.
Пример:
type
	TForm1 = class(TForm)
		Button1: [...]]]></description>
		<wfw:commentRss>http://www.mydelphi.info/code/163/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
