Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Объясните пож про сглаживание? [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


Наверх

Титульная страница Поиск, карта сайта Написать письмо