![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Выравнивание по ширине строки
Bratskiy © (2006-02-20 08:13:00)Привет всем! Подскажите кто-нибудь, есть ли компонент, отображающий текст, в котором текст можно было бы выравнивать по ширине строки. А может быть в Memo или в RichEdit можно это как-нибудь хитро сделать?
clickmaker (2006-02-21 12:01:00) [1]
> Bratskiy © (21.02.06 06:52) [4]
dc := GetDC(Memo.Handle);
GetTextExtentPoint32(dc, ...
но в общем случае подогнать с точностью до миллиметра не получится, потому как сам сказал "у некоторых шрифтов ширина символов разная"
Выход: юзать моноширинный шрифт или удовлетвориться приблизительной подгонкой.
ЗЫ. В ворде более тонкие алгоритмы вывода текста, в дельфях в лоб не реализуешь
Bratskiy (2006-02-21 07:58:00) [2]Спасибо, но не пойдёт. Программа тормозить будет.
КаПиБаРа (2006-02-21 06:56:00) [3]Bratskiy © (21.02.06 6:52) [4]
Вордом пользуйся через TOLECintainer
Bratskiy (2006-02-21 06:52:00) [4]Для компонентов, у которых есть свойство Canvas, это выравнивание можно сделать используя TextWidth, увеличивая ширину пробелов. Но у Memo и RichEdit такого свойства нет. Пожалуйста натолкните на мысль. Пробовал втавлять лишние пробелы после пробелов, но это не подходит, так как у некоторых шрифтов ширина символов разная.
msguns (2006-02-20 11:17:00) [5]Это событие (или похожее по названию) есть у всех графикконтролов.
Bratskiy (2006-02-20 10:46:00) [6]У чего? В смысле, у какого компонента? У Memo такой нет, есть какая-то функция DrawTextBiDiModeFlags, она какой-то флаг возращает, это вроде нето.
Desdechado (2006-02-20 10:11:00) [7]используй функцию DrawText