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

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

Расстояние между строками в Memo [D5, Win95/98, Win2k]


Simonaln ©   (2001-12-26 11:32:00) 

Как узнать величину расстояния между строками в Tmemo в пикселях?


MBo   (2001-12-26 14:59:00) [1]

можно еще попытаться через DrawTextEx с DT_CALCRECT, но принцип тот же.
В EM_ сообщениях я подходящего пока не увидел


MBo   (2001-12-26 14:44:00) [2]

Увы, не знаю ;(
но этот метод отлично работает


Simonaln   (2001-12-26 14:29:00) [3]

А какие другие?


MBo   (2001-12-26 14:08:00) [4]

Сanvas мемо недоступен, так что можно воспользоваться, например,
приемом из FAQ. Вот пример для BitBtn
http://delphi.mastak.ru/cgi-bin/forum.pl?look=1&id=1009301147&n=0
Есть и другие способы


Simonaln   (2001-12-26 13:46:00) [5]

А как узнать длину строки текста в пикселях?


MBo   (2001-12-26 12:59:00) [6]

нет, высота строки больше(пропуск просто не учитывается). Какой пропуск - думаю, 3. Опытным путем - -11=14, -20=23, -6=9
хотя, казалось бы, должен зависеть от высоты шрифта


Simonaln   (2001-12-26 12:43:00) [7]

В моем случае Font.height=-11, т.е. без пропуска. Это значит что высота строки 11 пикселей и пропуска нет вообще?


MBo   (2001-12-26 12:37:00) [8]

это зависит от размера шрифта.
если Font.height положительное число, то оно как раз дает высоту шрифта плюс доп. пропуск (internal leading) - т.е. высоту строки. Если отрицательное (по умолчанию)- без internal leading. Таким образом, можно контролировать расстояние
Memo1.Font.Height:=16; // не все значения доступны для не-TTF шрифтов
Видимо, есть и низкоуровневые методы.


Наверх

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