![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Объясните пож про сглаживание? [XP]
Nil © (2009-05-14 15:42:00)1. Как сглаживание относится к выводу текста на канву? Почему при включении в винде эффекта сглаживания, эффект проявляется не только на стандартных лэйблах и прочих текстовых компонентах, но и на тексте который я рисую на канве стринггрида?
2. Как бы так научиться рисовать сглаженным шрифтом на канве, если в системе сглаживание выключено?
Nil (2009-05-19 21:58:00) [1]то что надо! спасибо, буду пробовать..
Amoeba (2009-05-19 17:50:00) [2]Решение задачи "малой кровью":
http://www.delphikingdom.com/asp/viewitem.asp?catalogid=1367
Но свой компонент писать все равно придется.
Amoeba (2009-05-19 17:14:00) [3]
> может есть какие-нибудь такие же волшебные 3 строчки для
> tlabel
Чудес не бывает.
Nil (2009-05-19 16:30:00) [4]очень не хочется лишние сторонние компоненты за собой в проект тащить.. может есть какие-нибудь такие же волшебные 3 строчки для tlabel, подобно примеру выше для канвы?
Amoeba (2009-05-19 15:44:00) [5]
> как быть с TLabel если нужен ClearType на нём?..
Элементарно! Написать свой компонент - наследник от TLabel и перекрыть в нем метод выполняющий отрисовку.
Nil (2009-05-19 14:16:00) [6]спасибо!! много интересного узнал
для канваса так:
Fnt: TLogFont;
....
Font.Name := 'Arial';
Font.Size := 10;
Font.Style := [fsBold];
Font.Color := clBlack;
Brush.Color:=$00f3ede8;
GetObject(Font.Handle, SizeOf(TLogFont), @Fnt);
Fnt.lfQuality := 5;
Font.Handle := CreateFontIndirect(Fnt);
TextOut(Rect.Left + 46, Rect.Top+7, St);
с канвасом раборался, а вот с TLabel что-то не никак.. я думаю проблема в том что устанавливать ClearType качество при рисовании на канвасе приходится прямо перед TextOut. Любое изменение свойств шрифта через Canvas.Font... сразу сбрасывает lfQuality..
может кто решал проблему? как быть с TLabel если нужен ClearType на нём?..
Сергей М. (2009-05-14 16:24:00) [7]
> 1. Как сглаживание относится к выводу текста на канву?
Прямым образом - вывод текста на канву сводится к выводу оного на ассоциированный с канвой DC средствами штатных WinAPI-функций a-ля TextOut, работа которых зависит от состояния включенности системного сглаживающего фильтра.
Вот обсуждение похожей задачи
http://forum.vingrad.ru/topic-223272.html