🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.delphi
Article #335002

Re: Canvas - zaokrąglone końce linii

#335002
From: Arivald
Date: Thu, 02 Feb 2012 12:39
50 lines
2835 bytes
W dniu 2012-02-02 13:10, konsul41@wp.pl pisze:
>> Akurat z penami to się z dziesięć lat temu bawiłem w C++ ...
>
>
> CreateFontInDirect   także?
>
> Co dokładnie oznacza rastaryzacja fonta,

Rasteryzacja zachodzi dopiero w momencie rysowania znaków. Jest to po 
prostu konwersja wektorowego opisu znaków na ich bitmapy.

> Windows dopasowuje czcionkę do parametrów zadanych?
 >
 > Jak to dokładnie przebiega?
 >

w LOGFONT umieszczasz parametry czcionka jakiej chciał byś użyć.
Jeśli dokładnie taka czcionka nie jest dostępna, Windows sprawdza czy 
może ją zsyntetyzować. Np. wektorowe czcionki Bold czy Cursive dość 
łatwo zsyntetyzować z ich zwykłych wersji. Jeśli i to się nie powiedzie, 
to Windows stara się znaleźć czcionkę dla której jak najwięcej 
parametrów zgadza się z tymi w LOGFONT.


> I jeszcze jedno, jak przechowywać fonty tak utworzone?

Czysto w WinAPI to jako LOGFONT lub HFONT. HFONT łatwiej, bo to 
32-bitowy DWORD/Pointer.

Ale w Delphi najwygodniej jako TFont:

f: TFont;

f := TFont.Create();
f.Handle := CreateFontIndirect(...);


> W programie chciałbym utworzyć kilka fontów w zależności od zadanej
> szerokości znaku i następnie je tylko przydzielać.

Trochę bez sensu, ponieważ inne mechanizmy już o to dbają.
Z poziomu programu możesz tworzyć fonty kiedy są potrzebne, a cache już 
zadba żeby przydzielić istniejącą kopię.

HFONT liczy się jako użyty uchwyt GDI. A proces może (w Windows linii 
NT) mieć maksymalnie 10000 uchwytów (bitmap, DC, penów, fontów, i innych 
obiektów GDI). Dlatego VCL często niszczy już nie używane uchwyty.

-- 
Arivald
Technical Details
Message-ID: <jge09h$hc3$1@news.dialog.net.pl>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!newsfeed.pionier.net.pl!news.dialog.net.pl!not-for-mail
References: <jgb5mm$oi1$1@inews.gazeta.pl> <jgb8nr$5tq$1@news.dialog.net.pl> <jgdmon$3k1$1@inews.gazeta.pl> <jgdofc$da1$1@news.dialog.net.pl> <4f2a7d51$0$26683$65785112@news.neostrada.pl>

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!newsfeed.pionier.net.pl!news.dialog.net.pl!not-for-mail
From: Arivald <NOSPAMarivald@interia.pl>
Newsgroups: pl.comp.lang.delphi
Subject: Re: Canvas - zaokrąglone końce linii
Date: Thu, 02 Feb 2012 13:39:33 +0100
Organization: Dialog Net
Lines: 50
Message-ID: <jge09h$hc3$1@news.dialog.net.pl>
References: <jgb5mm$oi1$1@inews.gazeta.pl> <jgb8nr$5tq$1@news.dialog.net.pl> <jgdmon$3k1$1@inews.gazeta.pl> <jgdofc$da1$1@news.dialog.net.pl> <4f2a7d51$0$26683$65785112@news.neostrada.pl>
NNTP-Posting-Host: dynamic-78-8-137-180.ssp.dialog.net.pl
Mime-Version: 1.0
X-Trace: news.dialog.net.pl 1328186481 17795 78.8.137.180 (2 Feb 2012 12:41:21 GMT)
X-Complaints-To: abuse@dialog.net.pl
NNTP-Posting-Date: Thu, 2 Feb 2012 12:41:21 +0000 (UTC)
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:10.0) Gecko/20120124 Thunderbird/10.0
In-Reply-To: <4f2a7d51$0$26683$65785112@news.neostrada.pl>
X-Antivirus: avast! (VPS 120202-1, 2012-02-02), Outbound message
X-Antivirus-Status: Clean
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit