Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.06.2010, 20:00   #1
k1r1ch
ACM!
Форумчанин
 
Аватар для k1r1ch
 
Регистрация: 19.06.2009
Сообщений: 382
Вопрос Высота текста

Здравствуйте! Есть следующая проблема: на форме есть панель, на панели - лэйбл. У него стоит AutoSize=false и WordWrap=true. Мне нужно, чтобы он менял высоту в зависимости от оной у текста внутри. Ну и панель с ним увеличивалась. Но как определить высоту текста, если в тексте могут быть #10#13-переводы строк, а также строки могут самопроизвольно переноситься из-за ограниченной ширины лэйбла. Вроде высоту можно узнать так: Label.Canvas.TextHeight(Label.Capti on), но размер при этом становится меньше даже одной строки. Как быть?
k1r1ch вне форума Ответить с цитированием
Старый 10.06.2010, 20:50   #2
Sibedir
Тот ещё
Старожил
 
Аватар для Sibedir
 
Регистрация: 14.11.2007
Сообщений: 2,242
По умолчанию

Код:
  Label1.AutoSize := True;
  Label1.WordWrap := True;
  Label1.Caption := s;
  Label1.Width := 300;
Ширина всегда останется 300. Переносы по #13 будут соблюдены. Автоматическая расстановка переносов работает.
Sibedir вне форума Ответить с цитированием
Старый 10.06.2010, 21:04   #3
Fuadik
Пользователь
 
Регистрация: 22.01.2010
Сообщений: 37
По умолчанию высота текста

Попробуйте
#
Label1.AutoSize:=true;
Label1.WordWrap:=false;
Label1.Caption:='DDDddddd'+#13+'nnn nnn nnnnnnnn';
Label2.Caption:=
IntToStr(Label1.Height);
#
Расставить #13 надо самому.
Fuadik вне форума Ответить с цитированием
Старый 10.06.2010, 21:47   #4
Sibedir
Тот ещё
Старожил
 
Аватар для Sibedir
 
Регистрация: 14.11.2007
Сообщений: 2,242
По умолчанию

-------------------------------
Sibedir вне форума Ответить с цитированием
Старый 10.06.2010, 21:54   #5
eoln
Старожил
 
Аватар для eoln
 
Регистрация: 26.04.2008
Сообщений: 2,645
По умолчанию

А почему бы не заменить Label на Memo? Тогда высоту можно регулировать по количеству строк, например, memo1.Height := memo1.Lines.Count * 13; где 13 - это высота для одной строчки (включая межстрочное расстояние). А чтоб визуально было как label, так просто свойства поменять.
eoln вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
высота div subbota HTML и CSS 5 04.06.2010 19:07
Высота блоков Baaandit HTML и CSS 2 28.04.2010 09:52
высота div RammFan HTML и CSS 9 11.03.2010 02:11
Высота окна Лучик_света Win Api 4 17.04.2009 17:47
Высота блоков. Grind HTML и CSS 1 23.10.2008 21:37