Slym

Пользователи
  • Публикации

    2
  • Зарегистрирован

  • Посещение

  1. procedure TForm1.MyApplyStyleLookup(Sender: TObject); var Style:TFmxObject; begin Style:=StyleBook1.Style.FindStyleResource(TStyledControl(Sender).StyleLookup); if Style is TText then begin TText(Style).textSettings.Font.Size:=TText(Style).textSettings.Font.Size+10; if Style.Tag=-1 then exit; Style.Tag:=-1; TStyledControl(Sender).NeedStyleLookup; TStyledControl(Sender).ApplyStyleLookup; end; end; procedure TForm1.FormShow(Sender: TObject); var i:integer; begin for i:=0 to ComponentCount-1 do begin if Components[i] is TStyledControl then with TStyledControl(Components[i]) do begin OnApplyStyleLookup:=MyApplyStyleLookup; NeedStyleLookup; ApplyStyleLookup; end; end; end; Вот такая вот "партянка" получается... тройной, мать его, лукап стиля: До FormShow, вовремя FormShow и после OnApplyStyleLookup
  2. На форме лежит StyleBook со стилем MyButtonStyle и кнопка которой этот стиль применяется. Хотелось бы до отображения контролов пробежаться по StyleBook и поменять размеры под текущий экран... но стилей внутри StyleBook нет... до первого обращения к стилю по имени... procedure TForm1.Button2Click(Sender: TObject); begin StyleBook1.GetStyle(nil).FindStyleResource('XXX');//<F0.ChildrenCount - таки после этого один стиль находится и угадайте его имя :) FormShow(nil); end; procedure TForm1.FormShow(Sender: TObject); var F0,f1:TFmxObject; begin Memo1.Lines.Clear; Memo1.Lines.Add('Lets go!'); F0:=StyleBook1.GetStyle(nil); if F0.ChildrenCount=0 then exit;//<F0.ChildrenCount - таки равен нулю for f1 IN F0.Children do Memo1.Lines.Add(f1.StyleName); end; Это наблюдается под андроид, на винде работает как ожидается такое впечатление что под андроид экономятся ресурсы и стили парсятся по мере обращения типа как тут: но ответ не подходит, т.к. не известно какие контролы будут, и привязывать каждому контролу OnApplyStyleLookup тоже не вариант даже если ловить OnApplyStyleLookup всеравно StyleBook пустой.... действует только FindStyleResource procedure TForm1.Button1ApplyStyleLookup(Sender: TObject); begin FormShow(nil); end;