Вниз
Скачать: CL | DM;

Применение процедур Canvas.TextWidth и Canvas.TextHeight   Найти похожие ветки 

← →
SMT ©   (2004-01-08 17:57) [0]

Уважаемые господа,
У меня возникла проблема с определением длины текста в графическом режиме с помощью процедуры Canvas.TextWidth и Canvas.TextHeight. Они правильно определяют длину и высоту строки символов в пикселах при условии вызова из формы: Form.Canvas.TextWidth. Однако при выводе из канвы
принтера вида Printer.Canvas.TextWidth получается чрезмерное завышение числа пикселей. Например, для строки "10", написанных 12 кеглем шрифта "Arial", Form.Canvas.TextWidth дает 18 пикселей, а Printer.Canvas.TextWidth дает 56 пикселей. Как я выяснил, фактически этот расчет осуществляет функция Windows.GetTextExtentPoint32, которая находится в модуле System.pas. Я пытался проследить, как получаются
разные числа, но не смог.
С уважением, доктор медицинских наук Игорь Степанов


← →
MBo ©   (2004-01-08 18:02) [1]

>Form.Canvas.TextWidth дает 18 пикселей, а >Printer.Canvas.TextWidth дает 56 пикселей.
Так и должно быть - у принтера DPI намного больше (обычно 96 для экрана, от 300 для лазерника) - так что примерно все сходится.


← →
Тимохов ©   (2004-01-08 18:03) [2]

Может не в тему, но при печати на принтере пришел к выводу, что в некоторых случаях (это подстверждено инфой из МСДН) GetTextExtentPoint32 дает не всегда верный результат. Стал пользоваться GetTextExtentPoint32W - все ок.


← →
Тимохов ©   (2004-01-08 18:10) [3]

Мое замечание относилось к тому случаю, когда строки очень длинные. Не помню, сколько но у нас в печати были проблемы, пока не нашли ясного указания в МСДН о том, что для длинных строк нужно пользоваться GetTextExtentPoint32W



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.015 c
3-62965
tchn
2003-12-24 00:13
2004.01.20
QuantumGrid и узкие колонки


1-63245
Big
2004-01-08 16:41
2004.01.20
Событие закрытия дочернего окна в среде MDI


1-63219
Desrt
2004-01-09 15:16
2004.01.20
Как програмно проверить вставлена ли дискета?


1-63142
Mihey
2004-01-06 21:41
2004.01.20
Сложный перенос слов


6-63286
Vicol_V
2003-11-17 16:30
2004.01.20
Как отключить активное подключение NetStat




   Наверх