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

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

2 проблемы с DrawText


DmiSb ©   (2005-01-05 06:31:00) 

Уважаемые мастера, помогите решить две проблемки.

1. Рисую на Bitmap~e рамочку

Br := CreateSolidBrush(DWORD(clBlack));
FillRect(DC, MakeRect( L, T, L+B, T+H ), Br );
FillRect(DC, MakeRect( L, T, L+W, T+B ), Br );
FillRect(DC, MakeRect( L + W - B, T, L+W, T+H ), Br );
FillRect(DC, MakeRect( L, T+H - B, L+W, T+H ), Br );
DeleteObject(Br);

здесь T - Top;
     L - Left;
     W - Width;
     H - Height;
     B:= 1;

Потом внутри рамочки рисую текст

R.Left:=L+1;
R.Top:=T+1;
R.Right:=L+W-1;
R.Bottom:=T+H-1;
Fmt := DT_LEFT or DT_TOP or DT_WORDBREAK;
DrawText(DC, PChar(info.Text), Length(info.Text), R, Fmt );

Все ок. Если изменяю DT_TOP на DT_VCENTER или DT_BOTTOM, выравнивание остается все равно по DT_TOP. Как это решается ?

2. Никак не пойму какой шрифт лучше использовать, чтобы мог принимать по высоте нужные мне значения, а то он либо 10 либо сразу 15, промежуточная высота не получается. И почему-то тот же шрифт 10 полученный на битмапе меньше, чем шрифт у компонентов лежащих на форме с такими же параметрами.

Заранее спасибо.


DmiSb   (2005-01-05 14:51:00) [1]

2 TUser
Спасибо за DT_SINGLELINE. Все заработало.


DmiSb   (2005-01-05 14:44:00) [2]

2 TUser
Пробовал и MS Sans Serif, и Arial, и Tahoma - все одно. Растровый это какой ?


TUser   (2005-01-05 13:46:00) [3]


> 2. Никак не пойму какой шрифт лучше использовать, чтобы
> мог принимать по высоте нужные мне значения, а то он либо
> 10 либо сразу 15, промежуточная высота не получается. И
> почему-то тот же шрифт 10 полученный на битмапе меньше,
> чем шрифт у компонентов лежащих на форме с такими же параметрами.

TrueType font нужен, а у тебя, значит, растровый.
На форме - MS Sans Serif, а у тебя, наверное, какое-нибудь другой.


TUser   (2005-01-05 13:45:00) [4]

Может из-за этого?
Value DescriptionDT_BOTTOM Justifies the text to the bottom of the
               rectangle. This value must be combined with
               DT_SINGLELINE.
DT_VCENTER Centers text vertically ( single line only).


Наверх

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