Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2009.04.19;
Скачать: CL | DM;

Вниз

разрядить строки в DrawText   Найти похожие ветки 

 
Dmitry S ©   (2008-04-20 00:11) [0]

Вывожу текст с помощью DrawText (с DT_WORDBREAK).
Есть какая либо возможность разрядить строки на нужное мне количество точек (логических единиц устройства)?

У меня пока два варианта: 1. Отказаться от DT_WORDBREAK: добиваться эффекта переноса вручную.
2. Выводить текст сперва в метафайл, а затем уже копировать по частям в данный DC.


 
Eraser ©   (2008-04-20 01:01) [1]

> [0] Dmitry S ©   (20.04.08 00:11)

т.е. задача - сделать выравнивание по ширине?
советую глянуть в сторону уже реализованых примеров. не помню, есть ли такое в TRichView.. возможно есть.


 
Dmitry S ©   (2008-04-20 01:04) [2]

Нет. Задача "растянуть" текст по ветикали: добавить межстрочный интервал.

Аналог "полуторного интервала" в Wordе.


 
Eraser ©   (2008-04-20 01:16) [3]

> [2] Dmitry S ©   (20.04.08 01:04)

тейксейра, пачеко "Руководство разработчика Delphi 5", 1 том. Там есть глава про шрифты. книга есть на сайте у Анатолия Подгорецкого.

PS см. TLogFont.


 
Dmitry S ©   (2008-04-20 01:19) [4]


> PS см. TLogFont.

Тут ничего про межстрочный интервал
typedef struct tagLOGFONT { // lf  
  LONG lfHeight;  <-- высота символов (размер шрифта)
  LONG lfWidth;
  LONG lfEscapement;
  LONG lfOrientation;
  LONG lfWeight;
  BYTE lfItalic;
  BYTE lfUnderline;
  BYTE lfStrikeOut;
  BYTE lfCharSet;
  BYTE lfOutPrecision;
  BYTE lfClipPrecision;
  BYTE lfQuality;
  BYTE lfPitchAndFamily;
  TCHAR lfFaceName[LF_FACESIZE];
} LOGFONT;


 
Eraser ©   (2008-04-20 01:31) [5]

lfHeight
Specifies the height, in logical units, of the font"s character cell or character. The character height value (also known as the em height) is the character cell height value minus the internal-leading value. The font mapper interprets the value specified in lfHeight in the following manner.

думаю с этим подробнее разобраться надо.


 
Dmitry S ©   (2008-04-20 01:37) [6]


> Eraser ©

Вы серьезно думаете, что это то, что нужно?
По-моему, lfHeight задает только высоту символов.


 
Eraser ©   (2008-04-20 02:01) [7]

мне проверять лень, но ведь английским по белому написано, что 2 параметра задавать можно.


 
{RASkov} ©   (2008-04-20 02:46) [8]

Имхо... ЛогФонт здесь поможет мало.... меньше чем функция ДравТекст....
Т.е. из [0] первый вариант. Помоему не сложно реализовать...
N:=DrawText(...., R, ... or DT_MODIFYSTRING);
INC(R.Top, N+J);
J - межстрочный интервал, расчитать тоже не проблема...
R - Rect(область) соб-сно вывода одной строки, которая(выведенная строка, часть текста) вычитается из всего выводимого текста...
Что-то в этом плане должно получится....


 
Dmitry S ©   (2008-04-20 10:43) [9]


> мне проверять лень, но ведь английским по белому написано,
>  что 2 параметра задавать можно.

Перевожу как понимаю: Высота ячейки символа или символа (в логических единицах). Значение высоты символа (также известного как EM-высота - это высота ячейки символа с вычетом внутреннего интервала. Font mapper понимает значение lfHeight следующим образом: (и дальше рассказывается для чего отрицательные и положительные значения...).
Внутренний интервал пространство где, например, находятся точки у буквы Ё.
Ничего не сказано про то, что в lfHeight можно запихать два параметра.


> {RASkov} ©   (20.04.08 02:46) [8]

Это очень интересно. Сейчас попробую, о результатах доложу:)



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

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

Наверх




Память: 0.49 MB
Время: 0.027 c
2-1236156934
Андрей (начинающий)
2009-03-04 11:55
2009.04.19
Обработка запроса к БД


15-1234906345
Lamer@fools.ua
2009-02-18 00:32
2009.04.19
Сдам мозг в аренду в Киеве


15-1234765958
DevilDevil
2009-02-16 09:32
2009.04.19
Посоветуйте компонент типа Плейлиста


3-1213711617
Георгий
2008-06-17 18:06
2009.04.19
dbgrid - выделить запись которая находится под курсором мыши


15-1234906202
Юрий
2009-02-18 00:30
2009.04.19
С днем рождения ! 18 февраля 2009 среда