Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.01.20;
Скачать: 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 вся ветка

Текущий архив: 2004.01.20;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.02 c
14-63369
MV
2003-12-29 14:03
2004.01.20
Современный компьютер. Сегодня за покупкой.


4-63448
OlegV
2003-11-13 15:37
2004.01.20
Удаление выполняющегося EXE файла


14-63305
ИЛЮХА
2003-12-22 19:31
2004.01.20
LISTBOX!!! - hhhheeeeeellllppppppp!!!!!!!!!


14-63347
Clift
2003-12-30 01:41
2004.01.20
string+Image=ОДИН файл


14-63315
Volkov
2003-12-30 19:43
2004.01.20
Вызов showmessage из вторичного потока