2016-03-08 12 views
2

Delphi XE-6Пользовательский стиль Firemonkey - связующие свойства между элементом управления и стилем?

Я пытаюсь создать свой собственный стиль для элемента управления TGroupBox.

Я посмотрел на многочисленные демонстрации и учебные пособия, но, похоже, не мог это понять.

Как сделать текст из элемента управления пустым и отобразиться вместо текстового элемента стиля?

Я знаю, что это связано с именем StyleName, но я не знаю, что я делаю неправильно.

Может ли кто-нибудь предоставить простой пример? Например, TGroupbox - имеет заголовок сверху, но что, если вы хотите, чтобы он был на стороне баннера вниз. Создание баннера, который я могу сделать, но как я могу связать текстовый элемент на баннере с свойством caption элемента управления?

Thanx

ответ

4

Вы не должны делать ссылки самостоятельно.

Элементы управления FireMonkey делают это сами:

function TPresentedTextControl.FindTextObject: TFmxObject; 
begin 
    Result := FindStyleResource('text'); // Do not localize 
end; 

Убедитесь, что контрольный текст в Stylebook называется text.

Я сделал небольшой пример, как это:

enter image description here

object TStyleContainer 
    object TLayout 
    StyleName = 'grouboxstylebottom' 
    Padding.Left = 2.000000000000000000 
    Padding.Top = 8.000000000000000000 
    Padding.Right = 2.000000000000000000 
    Padding.Bottom = 2.000000000000000000 
    Position.X = 410.000000000000000000 
    Position.Y = 360.000000000000000000 
    Size.Width = 120.000000000000000000 
    Size.Height = 100.000000000000000000 
    Size.PlatformDefault = False 
    Visible = False 
    TabOrder = 0 
    object TStyleObject 
     StyleName = 'background' 
     Align = Client 
     CapMode = Tile 
     Locked = True 
     SourceLookup = 'Windows 10 Desktopstyle.png' 
     Size.Width = 116.000000000000000000 
     Size.Height = 90.000000000000000000 
     Size.PlatformDefault = False 
     WrapMode = Tile 
     SourceLink = < 
     item 
      CapInsets.Left = 2.000000000000000000 
      CapInsets.Top = 2.000000000000000000 
      CapInsets.Right = 2.000000000000000000 
      CapInsets.Bottom = 2.000000000000000000 
      SourceRect.Left = 166.000000000000000000 
      SourceRect.Top = 83.000000000000000000 
      SourceRect.Right = 213.000000000000000000 
      SourceRect.Bottom = 130.000000000000000000 
     end> 
     object TPanel 
     StyleName = 'banner' 
     Align = Bottom 
     Position.Y = 70.000000000000000000 
     Size.Width = 116.000000000000000000 
     Size.Height = 20.000000000000000000 
     Size.PlatformDefault = False 
     TabOrder = 0 
     end 
     object TText 
     StyleName = 'text' 
     Align = Bottom 
     ClipParent = True 
     Locked = True 
     HitTest = False 
     Margins.Left = 1.000000000000000000 
     Margins.Top = 2.000000000000000000 
     Margins.Right = 1.000000000000000000 
     Margins.Bottom = -15.000000000000000000 
     Position.X = 1.000000000000000000 
     Position.Y = 70.146484375000000000 
     Size.Width = 114.000000000000000000 
     Size.Height = 14.853515625000000000 
     Size.PlatformDefault = False 
     Text = 'Groupbox' 
     TextSettings.Font.Family = 'Showcard Gothic' 
     TextSettings.WordWrap = False 
     end 
    end 
    end 
end 

Таким образом, окончательный контроль будет выглядеть следующим образом:

enter image description here

Установите StyleLookup вашего GroupBox до groupboxstylebottom в этом случае.

+0

Ahhh, понял! Именно то, что я искал - спасибо! – JakeSays

 Смежные вопросы

  • Нет связанных вопросов^_^