Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > Динамический TLabel


Автор: MacTep 4.5.2011, 22:49
Создаю динамически TLabel на форме. Как узнать, какую ширину в пикселях он займет на форме?

Автор: Gwire 5.5.2011, 10:39
Атрибут Width

Автор: Snowy 5.5.2011, 11:09
Width вернёт размер для дефолтового шрифта и 100% Scale.
Код
var
  l:   TLabel;
  cap: string;
  r:   TRECT;
begin
  cap := 'New Label Caption';
  l := TLabel.Create(Form1);
  l.Caption := cap;
  FillChar(r, SizeOf(r), #0);
  DrawText(Form1.Canvas.Handle, PChar(cap), -1, r, DT_LEFT or DT_CALCRECT); // рассчитать размер
  l.Parent := Form1;
  return r.Right; // label's width
end;
Вместо Form1 - тот контрол, на который кладёшь label.
Размеры будут расчитаны в r: TRect - Right = ширина, Bottom = высота;

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)