Article View: pl.comp.lang.delphi
Article #335002Re: Canvas - zaokrąglone końce linii
From: Arivald
Date: Thu, 02 Feb 2012 12:39
Date: Thu, 02 Feb 2012 12:39
50 lines
2835 bytes
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-mailReferences:
<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