Главная страница
    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.44 MB
Время: 0.009 c
3-63011
Zloimu
2003-12-23 08:47
2004.01.20
Совместимость


11-63044
Boguslaw
2003-05-06 22:04
2004.01.20
Synapse conversion for KOL


8-63266
vvn
2003-09-17 13:16
2004.01.20
Вопрос по DelphiX. загрузка из x-file


14-63314
Ru
2003-12-31 10:37
2004.01.20
---|Ветка была без названия|---


1-63078
Dublicator
2004-01-07 12:36
2004.01.20
Скрытие приложения





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский