<?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; Canvas</title>
	<atom:link href="http://www.mydelphi.info/code/tag/canvas/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.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Можно ли использовать иконку как картинку на кнопке TSpeedButton?</title>
		<link>http://www.mydelphi.info/code/172</link>
		<comments>http://www.mydelphi.info/code/172#comments</comments>
		<pubDate>Mon, 09 Jun 2008 16:24:59 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Delphi FAQ]]></category>
		<category><![CDATA[Canvas]]></category>
		<category><![CDATA[ExtractIcon]]></category>
		<category><![CDATA[Glyph]]></category>
		<category><![CDATA[NOTEPAD]]></category>
		<category><![CDATA[ShellApi]]></category>
		<category><![CDATA[TObject]]></category>
		<category><![CDATA[TSpeedButton]]></category>
		<category><![CDATA[var]]></category>

		<guid isPermaLink="false">http://www.mydelphi.info/?p=172</guid>
		<description><![CDATA[Вопрос:
Можно ли использовать иконку как картинку на кнопке TSpeedButton?
Ответ:
Можно. См. пример.

Пример:

uses ShellApi;

procedure TForm1.FormShow(Sender: TObject);
var
	Icon: TIcon;
begin
	Icon := TIcon.Create;
	Icon.Handle := ExtractIcon(0,'C:\WINDOWS\NOTEPAD.EXE',1);
	SpeedButton1.Glyph.Width := Icon.Width;
	SpeedButton1.Glyph.Height := Icon.Height;
	SpeedButton1.Glyph.Canvas.Draw(0, 0, Icon);
	Icon.Free;
end;

]]></description>
		<wfw:commentRss>http://www.mydelphi.info/code/172/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>При попытке использовать метод TCanvas.StretchDraw</title>
		<link>http://www.mydelphi.info/code/166</link>
		<comments>http://www.mydelphi.info/code/166#comments</comments>
		<pubDate>Mon, 09 Jun 2008 16:20:08 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Delphi FAQ]]></category>
		<category><![CDATA[Application]]></category>
		<category><![CDATA[bitmap]]></category>
		<category><![CDATA[Button]]></category>
		<category><![CDATA[Canvas]]></category>
		<category><![CDATA[icon]]></category>
		<category><![CDATA[procedure]]></category>
		<category><![CDATA[StretchDraw]]></category>
		<category><![CDATA[TBitmap]]></category>
		<category><![CDATA[TForm]]></category>
		<category><![CDATA[Width]]></category>

		<guid isPermaLink="false">http://www.mydelphi.info/?p=166</guid>
		<description><![CDATA[Вопрос:
При попытке использовать метод TCanvas.StretchDraw чтобы нарисовать иконку
увеличенной ее размер не изменяется. Что делать?
Ответ:
Иконки всегда рисуются размером принятым в системе по умолчанию. Чтобы показать
увеличенный вид иконки скоприуйте ее на bitmap, а зате используйте метод
TCanvas.StretchDraw.

Пример:

procedure TForm1.Button1Click(Sender: TObject);
var
	TheBitmap : TBitmap;
begin
	TheBitmap := TBitmap.Create;
	TheBitmap.Width := Application.Icon.Width;
	TheBitmap.Height := Application.Icon.Height;
	TheBitmap.Canvas.Draw(0, 0, Application.Icon);
	Form1.Canvas.StretchDraw(Rect(0,0,TheBitmap.Width * 3,TheBitmap.Height * 3),
		   TheBitmap);
	TheBitmap.Free;
end;

]]></description>
		<wfw:commentRss>http://www.mydelphi.info/code/166/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Как ограничить длинну текста, вводимого в TEdit</title>
		<link>http://www.mydelphi.info/code/161</link>
		<comments>http://www.mydelphi.info/code/161#comments</comments>
		<pubDate>Mon, 09 Jun 2008 16:15:48 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Delphi FAQ]]></category>
		<category><![CDATA[Canvas]]></category>
		<category><![CDATA[GetClientRect]]></category>
		<category><![CDATA[KeyPress]]></category>
		<category><![CDATA[MaxLength]]></category>
		<category><![CDATA[MessageBeep]]></category>
		<category><![CDATA[Return]]></category>
		<category><![CDATA[TBitmap]]></category>
		<category><![CDATA[TEdit]]></category>
		<category><![CDATA[TextWidth]]></category>
		<category><![CDATA[TForm]]></category>
		<category><![CDATA[TObject]]></category>

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

Ответ:
В примере приведено два
способа ограничить длинну текста в TEdit так чтобы она не превышала ширину клиентской
области окна TEdit&#8217;а и не появлялась прокрутка текста. Первый способ устанавливает
свойство TEdit&#8217;а MaxLength равным числу букв &#8220;W&#8221;, которые поместятся в TEdit.
&#8220;W&#8221; выбрана потому, что является, наверное, самой [...]]]></description>
		<wfw:commentRss>http://www.mydelphi.info/code/161/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Вместо печати графики я хочу использовать резидентный шрифт принтера. Как?</title>
		<link>http://www.mydelphi.info/code/150</link>
		<comments>http://www.mydelphi.info/code/150#comments</comments>
		<pubDate>Mon, 09 Jun 2008 15:57:42 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Delphi FAQ]]></category>
		<category><![CDATA[Canvas]]></category>
		<category><![CDATA[Click]]></category>
		<category><![CDATA[EndDoc]]></category>
		<category><![CDATA[GetStockObject]]></category>
		<category><![CDATA[Printers]]></category>
		<category><![CDATA[Sender]]></category>
		<category><![CDATA[TextOut]]></category>
		<category><![CDATA[TForm]]></category>
		<category><![CDATA[TTextMetric]]></category>

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

Ответ:
Используте функцию Windows
API &#8211; GetStockObject() чтобы получить дескриптор (handle) шрифта по умолчанию
устройства (DEVICE_DEFAULT_FONT) и передайте его Printer.Font.Handle.
Пример:
uses Printers;

procedure TForm1.Button1Click(Sender: TObject);
var
	tm : TTextMetric;
	i : integer;
begin
	if PrintDialog1.Execute then
	begin
		Printer.BeginDoc;
		Printer.Canvas.Font.Handle := GetStockObject(DEVICE_DEFAULT_FONT);
		GetTextMetrics(Printer.Canvas.Handle, tm);
		for i := 1 to 10 do
		begin
			Printer.Canvas.TextOut(100,i * tm.tmHeight +
				tm.tmExternalLeading,'Test');
		end;
		Printer.EndDoc;
	end;
end;

]]></description>
		<wfw:commentRss>http://www.mydelphi.info/code/150/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Как сделать картинки из TImageList прозрачными?</title>
		<link>http://www.mydelphi.info/code/138</link>
		<comments>http://www.mydelphi.info/code/138#comments</comments>
		<pubDate>Mon, 09 Jun 2008 15:37:00 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Delphi FAQ]]></category>
		<category><![CDATA[Button]]></category>
		<category><![CDATA[Canvas]]></category>
		<category><![CDATA[CreateSize]]></category>
		<category><![CDATA[DrawingStyle]]></category>
		<category><![CDATA[dsTransparent]]></category>
		<category><![CDATA[TForm]]></category>
		<category><![CDATA[TImageList]]></category>
		<category><![CDATA[Width]]></category>

		<guid isPermaLink="false">http://www.mydelphi.info/code/138</guid>
		<description><![CDATA[Вопрос:
Я загружаю TImageList динамически. Как сделать картинки из TImageList прозрачными?
Ответ:
См. ответ.

Пример:

procedure TForm1.Button1Click(Sender: TObject);
var
	bm : TBitmap;
	il : TImageList;
begin
	bm := TBitmap.Create;
	bm.LoadFromFile('C:\DownLoad\TEST.BMP');
	il := TImageList.CreateSize(bm.Width,bm.Height);
	il.DrawingStyle := dsTransparent;
	il.Masked := true;
	il.AddMasked(bm, clRed);
	il.Draw(Form1.Canvas, 0, 0, 0);
	bm.Free;
	il.Free;
end;
]]></description>
		<wfw:commentRss>http://www.mydelphi.info/code/138/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

