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

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

Font.Size or FontSize vs FontHeight


L505 ©   (2005-08-17 13:25:00) 

Hi,

What is an easy way of calculating FontSize from KOL's FontHeight?

I beleive the FontHeight does not include the line "whitespace".

Lars


McSimm   (2006-04-06 15:48:00) [1]

untrash


L505   (2005-08-18 01:52:00) [2]

sorry, that should read "font SIZE" is in POINTS.


L505   (2005-08-18 01:51:00) [3]

I forgot that font height is in "POINTS" and height is in "PIXELS". Twips of course, are another story..

I think this below is one way it can be done?
So far I'm using this to calculate font height:

 pixelsperinch:= GetDeviceCaps (getdc(0), LOGPIXELSX);
 //calculate, for example the hieght of "point" size 10
 MyHeight := -10 * PixelsPerInch / 72;
 showmessage(int2str(round(MyHeight)));

GetDeviceCaps is the same as "pixelsperinch". GetDC(0) gets the pixels per inch of the screen.

To get desired size, just reverse the equation of course.

Would there be any reason not for KOL/MCK to include a font size calculation wrapper, as a published property? I think it would add compatibility.

I realize font.height is more precise.. but compatibility would be nice.


Lars   (2005-08-17 21:04:00) [4]

Bascically I still don't know how exactly to get or set the font size equivilient to VCL style font.size (i.e. size 8, 9 10, etc.)
i.e. like notepad style font size.

Maybe there are some FontDialog examples that show what the calculation is to set up the font to standard sizes like 8, 10, 12, etc.

With richedit, I think I used division/multiplication to get the correct numbers. But it was in TWIPS.

It appears editbox.font.fontheight is bigger (14 is about size 12 font, so maybe it actually includes whitespace?).

I'm guessing I just have to calculate the whitespace and subtract it.

This is a lot of work just to chang the font size, I think a wrapper should be built at least once I figure it out ;-)


Thaddy   (2005-08-17 18:36:00) [5]

Or for Richedit re_textsizeprecise


<Falcon>   (2005-08-17 16:19:00) [6]

EditBox.Canvas.TextWidth(EditBox.Text),
EditBox.Canvas.TextHeight(EditBox.Text)


L505   (2005-08-17 14:17:00) [7]

p.s. this question is for KolEdit not KOLRichEdit


Наверх

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