В Delphi, есть ли способ настроить межстрочный интервал TMemo? - PullRequest
3 голосов
/ 21 декабря 2010

Я работаю с компонентом TMemo для отображения текста в ограниченном пространстве.В настоящее время он использует шрифт TrueType, который не поставляется с Windows и устанавливается приложением при запуске.

На моем ПК (под управлением Windows XP) расстояние между каждой строкой текста составляет около восьми пикселей.На другом ПК под управлением Windows 7 межстрочный интервал составляет около 14 пикселей, что выталкивает нижний ряд текста из заметки в заметку.

Итак, мой вопрос действительно такой:

  1. Это вызвано различными версиями Windows?Это все, что я мог подумать, что это не так.
  2. Есть ли какой-нибудь способ, которым я могу настроить это значение, чтобы оно было согласованным во всех экземплярах приложения, где бы оно ни работало?Альтернативно, есть ли другой компонент, который я мог бы использовать, который мог бы позволить мне настроить это значение?

Ответы [ 2 ]

2 голосов
/ 21 декабря 2010

TMemo является потомком общих элементов управления Windows, и его поведение зависит от текущей конфигурации Windows, поэтому естественно получить с ним разные результаты.

Если вы просто хотите отобразить некоторую информацию, лучше использовать компоненты, которые позволяют вам точно устанавливать позиции текста и их стиль, например TRichView. Этот компонент не является бесплатным, но у него есть собственный механизм рендеринга текста, который позволяет стилизовать тексты с помощью CSS-селекторов, которые выглядят одинаково в разных версиях окон.

1 голос
/ 21 декабря 2010

В дополнение к ответу Мохсена я хотел бы упомянуть LMD ElPack и его компонент ElEdit, который также имеет свой собственный механизм визуализации текста.В отличие от TRichView ElEdit представляет собой простой текстовый редактор / компонент для заметок, поэтому он заменяет TEdit / TMemo.И высота линии там настраивается

...