Перейти к содержанию

Вопросы

Пробую задать размер шрифта (TLabel.Font.Size) для TLabel. Но стиль и размер у метки остаются стандартными.
 
Создаю объект так:
MyLabel := TLabel.Create(Self);
MyLabel.Position.X := 66;
MyLabel.Position.Y := 8;
MyLabel.Width := 231;
MyLabel.Height := 18;
MyLabel.Parent := ListBox1.ListItems[ListBox1.Count-1];
MyLabel.HitTest := False;
MyLabel.Font.Size := 8;
MyLabel.Font.Style := [TFontStyle.fsBold];
MyLabel.Trimming := TTextTrimming.ttCharacter;
MyLabel.VertTextAlign := TtextAlign.taLeading;
MyLabel.Text := 'Text';

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Рекомендуемые сообщения

  • 0
Label1.StyledSettings := Label1.StyledSettings - [TStyledSetting.Size];

В FireMonkey все, что отвечает за визуальную часть (отображение контрола) обычно выносится в стиль. Однако, не всегда удобно создавать новый стиль, только, когда нужно, например, поменять размер шрифта в TLabel. Поэтому, чтобы позволить пользователям удобно менять такие настройки, как шрифт. Шрифт выделен в отдельное свойство TLabel.Font. При выделении шрифта отдельным свойством, нужно понимать, что при таком подходе контрол "не знает", откуда ему брать шрифт: то ли из свойства, то ли из стиля.

 

Поэтому, чтобы контрол знал, откуда ему брать шрифт для отображения: из стиля или из свойства Font, введено свойство TLabel.StyledSetting. Которое говорит контролу, какие характеристики шрифта нужно брать из стиля, а какие можно взять из свойства TLabel.Font. По умолчанию, StyledSettings настроены так, что все берется из стиля. В вашем случае, нужно сбросить галку напротив значения ssSize и ssFont.

 

Подробная информация есть на Embarcadero Doc Wiki: http://docwiki.embarcadero.com/RADStudio/XE5/en/Setting_Text_Parameters_in_FireMonkey

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Гость
Эта тема закрыта для публикации ответов.

  • Похожий контент

    • От Алиса Романец
      Доброго времени суток, форумчане.
      Столкнулась с очень странной проблемой при попытке редактирования FMX стиля в RAD Studio 10.3 (но проблема, по крайней мере у меня, тащится ещё с 10.2) - при нажатии на любой элемент стиля в его структуре - она заменяется на структуру формы и выбранный элемент не отображается в инспекторе. При этом, нужно именно тыкнуть на элемент стиля, раскрытие групп работает и структура остаётся на месте. Единственный способ добраться до свойств элемента стиля - через Edit Custom Style на компоненте, что не очень удобно, да и не даёт целиком возможности редактировать стиль.
      Может я чего-то делаю не так или так и должно быть? Надеюсь на вашу помощь, ибо эти стили уже в печёнках сидят. Видео с последовательностью действий (youtube).
       
    • От SIARHEI RAHOUSKI
      Как изменить сам Header, скролы ? Я открывал стайл блок, но всё что смог изменить там это цвет полей и всё.

    • От Barbanel
      Всем привет!
      Корректируем стиль мобильного приложения для iOS, для этого дорабатываем png стиля и грузим его обратно в StyleBook.
      Дорабатываем только для Scale = 2,0 т.к. минимально поддерживаемый телефон - 5S (или просто 5).
      В редакторе форм отображается интерфейс так, как он выглядел бы для Scale = 1,0 но 1,0 нас не интересует вообще, мы его даже не рисуем.
      Вопрос: можно ли как-то видеть в редакторе форм интерфейс приложения для Scale = 2,0 ?

    • От Leandro Inacio
      Como posso definir o estilo de cada item do ListBox com uma imagem e nome diferente. Que estão no banco de dados.
    • От Winexcel
      Собственно сабж, можно ли стилизовать бэкгрануд? И если да, то как стиль называется не подскажете?
    • От Ameta
      Доброе время суток. После создания/изменения (Edit Custom Style...) собственного стиля у Label1 (добавил в качестве фона прямоугольник) перестали обрабатываться события OnMouseMove, OnMouseDown и т.д. (Label1.HitTest:=True). До изменения стиля все работало. В чем причина? Спасибо за ответ...

    • От ingword
      Здравствуйте.
      Подскажите пожалуйста.
      Можно ли с помощью стилей создать кнопку в которой размер текста будет меняться автоматически вместе с размером кнопки, так что бы текст "правильно" и "красиво" вписывался в размер кнопки, с учетом WordWrap и без него.
    • От Кривяков Виталий
      Добрый день!
      Столкнулся с проблемой вывода текста разного размера по одной линии. Не получается использовать BaseLine доступную для Firemonkey. 
      Baseline -   воображаемая прямая линия, проходящая по нижнему краю прямых знаков без учёта свисаний и нижних выносных элементов. В строке символы текста стоят на базовой линии, а нижние выносные элементы текста «свисают» с неё.
      Из описанного выше ясно, что выводимые символы должны лежать на это линии, но в реале как то все некорректно выводится.
      Сделал два примера VCL (черный фонт) и FireMonkey(черный полупрозрачный фонт), оказалось, что вывод текста осуществляется по разному, при одном и том же значении размера шрифта. Базовая линия в обоих примерах 356.
      Совмещаем отображение символов: GlyphsEqual.png Символы совпали, но базовая линия смещена.
      Совмещаем базовую линию: PosEqual.png Базовая линия совпала, как и верхний край контролов, а вот текст (серый) значительно ниже.
      А теперь собственно вопрос вопрос, где ошибка? Как рассчитать базовую линию для FMX?
       
      P.S.
      Про attributes у TTextLayout знаю.


      BaseLine.rar

    • От Error
      *** Небольшой обмен опытом ***
      Вижу что вопросы о размере текста довольно частые, поделюсь своими наработками.
      function CalcTextSize(Text: string; Font: TFont; Size: Single = 0): TSizeF;
      Функция для расчета размера прямоугольника, занимаемого однострочным текстом.
      Параметры:
      Text - Текст Font - Шрифт с которым будет выводиться текст Size - если 0, то Font.Size будет использоваться из Font, иначе из данного параметра Исходный код:
      uses System.Types, FMX.Types, FMX.Graphics, FMX.TextLayout, System.Math, System.SysUtils; function CalcTextSize(Text: string; Font: TFont; Size: Single = 0): TSizeF; var TextLayout: TTextLayout; begin TextLayout := TTextLayoutManager.DefaultTextLayout.Create; try TextLayout.BeginUpdate; try TextLayout.Text := Text; TextLayout.MaxSize := TPointF.Create(9999, 9999); TextLayout.Font.Assign(Font); if not SameValue(0, Size) then begin TextLayout.Font.Size := Size; end; TextLayout.WordWrap := False; TextLayout.Trimming := TTextTrimming.None; TextLayout.HorizontalAlign := TTextAlign.Leading; TextLayout.VerticalAlign := TTextAlign.Leading; finally TextLayout.EndUpdate; end; Result.Width := TextLayout.Width; Result.Height := TextLayout.Height; finally TextLayout.Free; end; end;   function FontSizeForBox(Text: string; Font: TFont; Width, Height: Single; MaxFontSize: Single = cMaxFontSize): Integer;
      Функция возвращающая максимально возможный размер шрифта, для текста вписанного в заданный прямоугольник.
      Параметры:
      Text - Текст Font - Шрифт с которым будет выводиться текст Width, Height - Ширина и высота прямоугольника MaxFontSize - Максимально возможный размер шрифта Исходный код:
      uses System.Types, FMX.Types, FMX.Graphics, FMX.TextLayout, System.Math, System.SysUtils; const cMaxFontSize = 512; function FontSizeForBox(Text: string; Font: TFont; Width, Height: Single; MaxFontSize: Single = cMaxFontSize): Integer; var Size, Max, Min, MaxIterations: Integer; Current: TSizeF; begin Max := Trunc(MaxFontSize); Min := 0; MaxIterations := 20; repeat Size := (Max + Min) div 2; Current := CalcTextSize(Text, Font, Size); if ((Abs(Width - Current.Width) < 1) and (Width >= Current.Width)) and ((Abs(Height - Current.Height) < 1) and (Height >= Current.Height)) then break else if (Width < Current.Width) or (Height < Current.Height) then Max := Size else Min := Size; Dec(MaxIterations); until MaxIterations = 0; Result := Size; end; ---
      Также данные функции можно найти в этом юните
    • От sviat9440
      Возникла вот такая непонятная ситуация: до этого момента я всегда считал что TLabel никак физически не может принять Tab Focus наравне с TRectangle и тому подобных. Судя по всему я ошибался. Ниже прилагаю скрин окна Tab Order, что там делает TLabel неясно. Ну да ладно. Вопрос в том как его оттуда убрать, чтобы он не жрал Tab Focus? Стандартных галочек TabStop и CanFocus в Tlabel нет.

      P.S. Я не помню чтобы я сталкивался с этой проблемой в предыдущих версиях RAD.
  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×
×
  • Создать...