Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Выравнивание по ширине строки


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


Наверх

Титульная страница Поиск, карта сайта Написать письмо