<?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; procedure</title>
	<atom:link href="http://www.mydelphi.info/code/tag/procedure/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>Можно ли уменьшить потребляемые компонентами TNotebook и TTabbedNotebook ресурсы?</title>
		<link>http://www.mydelphi.info/code/186</link>
		<comments>http://www.mydelphi.info/code/186#comments</comments>
		<pubDate>Mon, 09 Jun 2008 16:37:13 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Delphi FAQ]]></category>
		<category><![CDATA[DestroyHandle]]></category>
		<category><![CDATA[procedure]]></category>
		<category><![CDATA[PROTECTED]]></category>
		<category><![CDATA[TMyTabbedNotebook]]></category>
		<category><![CDATA[TNotebook]]></category>
		<category><![CDATA[TTabbedNotebook]]></category>
		<category><![CDATA[TWinControl]]></category>

		<guid isPermaLink="false">http://www.mydelphi.info/?p=186</guid>
		<description><![CDATA[Вопрос:
Можно ли уменьшить потребляемые компонентами TNotebook и TTabbedNotebook ресурсы?
Ответ:
Да. Можно уничтожать обьекты, расположенные не на текущей странице TNotebook или
TTabbedNotebook. В примере вызывается защищенный (Protected) метод путем создания
так называемый "class cracer'ов".

type TMyTabbedNotebook = class(TTabbedNotebook); //это наш "class cracer"
type TMyNotebook = class(TNotebook);

procedure TForm1.TabbedNotebook1Change(Sender: TObject; NewTab: Integer;
			var AllowChange: Boolean);
begin
	with TabbedNotebook1 do  //вызываем защищенный метод родительского класса
		TMyTabbedNotebook(TWinControl(Pages.Objects[PageIndex])).DestroyHandle;
end;

procedure TForm1.TabSet1Change(Sender: [...]]]></description>
		<wfw:commentRss>http://www.mydelphi.info/code/186/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Как запретить изменение размера моего компонента в design-time?</title>
		<link>http://www.mydelphi.info/code/185</link>
		<comments>http://www.mydelphi.info/code/185#comments</comments>
		<pubDate>Mon, 09 Jun 2008 16:36:24 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Delphi FAQ]]></category>
		<category><![CDATA[ALeft]]></category>
		<category><![CDATA[ATop]]></category>
		<category><![CDATA[AWidth]]></category>
		<category><![CDATA[componentstate]]></category>
		<category><![CDATA[Integer]]></category>
		<category><![CDATA[procedure]]></category>
		<category><![CDATA[SetBounds]]></category>

		<guid isPermaLink="false">http://www.mydelphi.info/?p=185</guid>
		<description><![CDATA[Вопрос:
Как запретить изменение размера моего компонента в design-time?
Ответ:
Поместите в конструктор компонента код, устанавливающий размеры по умолчанию.
Переопределите метод SetBounds и проверяйте в нем "componentstate". Если компонет
находится режиме "design-time" (csDesigning in ComponentState) просто передавайте
значения ширины и высоты (width и heights) компонента по умолчанию (в нашем
примере 50) методу класса-предка

Пример:

procedure TVu.SetBounds(ALeft : integer; ATop : integer; AWidth : integer;
			AHeight [...]]]></description>
		<wfw:commentRss>http://www.mydelphi.info/code/185/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Как обновить список дисков компонента TDriveComboBox</title>
		<link>http://www.mydelphi.info/code/181</link>
		<comments>http://www.mydelphi.info/code/181#comments</comments>
		<pubDate>Mon, 09 Jun 2008 16:33:05 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Delphi FAQ]]></category>
		<category><![CDATA[BuildList]]></category>
		<category><![CDATA[char]]></category>
		<category><![CDATA[Drive]]></category>
		<category><![CDATA[procedure]]></category>
		<category><![CDATA[Sender]]></category>
		<category><![CDATA[TDriveComboBox]]></category>
		<category><![CDATA[TForm]]></category>
		<category><![CDATA[TNewDriveComboBox]]></category>
		<category><![CDATA[var]]></category>

		<guid isPermaLink="false">http://www.mydelphi.info/?p=181</guid>
		<description><![CDATA[Вопрос:
Как обновить список дисков компонента TDriveComboBox, учитывая, что могуд быть
подключены/отключены сетевые диски и произведена "горячая замена" plug&#38;play дисков?
Ответ:
Следующий пример вызывает защищенный (protected) метод класса TDriveComboBox
BuildList() для регеирации списка дисков. (использовая так наз. "class cracer")

Пример:

type
	TNewDriveComboBox = class(TDriveComboBox)  //это наш "class cracer"
end;

procedure TForm1.Button1Click(Sender: TObject);
var
	Drive : char;
begin
	Drive := DriveComboBox1.Drive;
	TNewDriveComboBox(DriveComboBox1).BuildList;
			//вызываем защищенный метод родительского класса
	DriveComboBox1.Drive := Drive;
end;

]]></description>
		<wfw:commentRss>http://www.mydelphi.info/code/181/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Как поместить курсор в определенную позицию edit&#8217;а и подобных ему элементов управления?</title>
		<link>http://www.mydelphi.info/code/176</link>
		<comments>http://www.mydelphi.info/code/176#comments</comments>
		<pubDate>Mon, 09 Jun 2008 16:28:33 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Delphi FAQ]]></category>
		<category><![CDATA[Click]]></category>
		<category><![CDATA[Delphi]]></category>
		<category><![CDATA[procedure]]></category>
		<category><![CDATA[SelectLength]]></category>
		<category><![CDATA[SelLength]]></category>
		<category><![CDATA[SelStart]]></category>
		<category><![CDATA[SetFocus]]></category>
		<category><![CDATA[TForm]]></category>
		<category><![CDATA[TObject]]></category>

		<guid isPermaLink="false">http://www.mydelphi.info/?p=176</guid>
		<description><![CDATA[Вопрос:
Как поместить курсор в определенную позицию edit'а и подобных ему элементов управления?
Ответ:
Можно использовать методы Delphi SelStart() и SelectLength().

Пример:

procedure TForm1.Button1Click(Sender: TObject);
begin
	Edit1.SetFocus;
	{переводим курсор во вторую позицию}
	Edit1.SelStart := 2;
	{не выделяем никакого текста}
	Edit1.SelLength := 0;
end;

]]></description>
		<wfw:commentRss>http://www.mydelphi.info/code/176/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>
	</channel>
</rss>
