Помощь - Поиск - Пользователи - Календарь
Полная версия: TLabel
Форум «Всё о Паскале» > Современный Паскаль и другие языки > Делфи
мисс_граффити
Здравствуйте.
Есть в Delphi стандартный компонент - TLabel. Если текст из свойства Caption не помещается на нем, кусок как бы обрезается (не отображается).
Можно ли из программы как-либо определить, что влезло, а что нет?
volvo
Цитата
Можно ли из программы как-либо определить, что влезло, а что нет?
Можно. Посимвольно пробегать по Label.Caption, и считать накапливающуюся длину текста:
Len := 0; s := 0;
for i := 1 to Length(Label1.Caption) do begin
LetterWidth := Label1.Canvas.TextWidth(Label1.Caption[i]);
if Len + LetterWidth < Label1.Width then begin
s := s + Label1.Caption[i]; inc(Len, LetterWidth);
end
else break;
end;
в результате в S будет то, что полностью видно в метке. Это все при условии, что Label1.AutoSize равно False, иначе это делается чуть-чуть по другому (надо будет химичить с Label1.Left + Len < Form1.Width, или что-то в этом роде, смотря, где Label, и какое выравнивание задано)
мисс_граффити
Спасибо!
Не знала, как ширину символа получить...
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.