Перейти к содержанию
Fire Monkey от А до Я
  • 0

доступ к вложенным элементам


k0der

Вопрос

StyleObject: TFmxObject;     
aItem: TListBoxItem;

...............

aItem := TListBoxItem.Create(nil);
    aItem.Parent := ListBox1;
    aItem.Text := s;
    aItem.StyleLookup := 'listboxitems';

.........................

..................  это работает 

StyleObject := aItem.FindStyleResource('labelname');
      if Assigned(StyleObject) and (StyleObject is TLabel) then
      begin
      lab := (StyleObject as TLabel);
      lab.Text := city + ',' + add;
end;

.................. а этот не работает     

StyleObject := aItem.FindStyleResource('labelname1');
      if Assigned(StyleObject) and (StyleObject is TLabel) then
      begin
      lab := (StyleObject as TLabel);
      lab.Text := city + ',' + add;
end;
 
как быть?

post-1800-0-62338300-1448290743.png

Ссылка на комментарий

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

  • 0

 

Попробуйте так

aItem.StylesData['labelname1.text'] := '.......';
    aItem.StylesData['labelname1.text'] := '11111';   -это не работает
    aItem.StylesData['labelname.text'] := '22222'; -это работает
 aItem.StylesData['panelcent.panelrigth.labelname1.text'] := '11111';- это вызвало эксепшн
Ссылка на комментарий
  • 0

Неужели никак нельзя получить доступ к вложенным элементам? Просто стилем накидать проще, чем городить свой объект с прямым доступом к дочерним элементам.

----

Что самое интересное, в TStyledControl.FindStyleResource объект FResourceLink = nil.

Изменено пользователем TrueCrypt
Ссылка на комментарий
  • 0

Неужели никак нельзя получить доступ к вложенным элементам? Просто стилем накидать проще, чем городить свой объект с прямым доступом к дочерним элементам.

----

Что самое интересное, в TStyledControl.FindStyleResource объект FResourceLink = nil.

Вот так все работает, но может я не понял вопроса

 

Желательно это делать в OnApplyStyleLookup данного объекта.

например если хотите заполнить стилевой текст или картинку:

 

Новый объект стиля TButton содержит TText, TLabel, TImage и TButton

procedure TForm_main.Button1ApplyStyleLookup(Sender: TObject);

begin
        TText(TButton(Sender).FindStyleResource('detail')).Text := 'Детали';
        TLabel(TButton(Sender).FindStyleResource('titul')).Text := 'Наименование';
        TImage(TButton(Sender).FindStyleResource('img')).Bitmap.Assign(BTMP);
        TButton(TButton(Sender).FindStyleResource('but_min')).Tag := 58;
        TButton(TButton(Sender).FindStyleResource('but_min')).OnClick := ButW_Min;
end;

 

Сделайте одну процедуру OnApplyStyleLookup и присвойте необходимым объектам. 

 
Можно напрямую заполнять хоть откуда например 
 TText(Button1.FindStyleResource('detail')).Text := 'Детали';
но тогда страшные аномалии происходят если ваш объект находятся допустим в скролбоксе.
Ссылка на комментарий
  • 0
Цитата

TText(TButton(Sender).FindStyleResource('detail')).Text := 'Детали';

Не работает, программа валится.

Работает вот так. Сам искал, вдруг кому сгодится

procedure TForm1.Button1ApplyStyleLookup(Sender: TObject);
var
l:tlayout;
begin
    l:=StyleBook1.Style.FindStyleResource('Button1Style1') as Tlayout;
    (l.FindComponent('GlowEffect') as TGlowEffect).GlowColor:=Talphacolorrec.Red;
end;

А вот на лету не меняет. Программа не валится, но и изменений нет

 

    l:=StyleBook1.Style.FindStyleResource('Button1Style1') as Tlayout;
    (l.FindComponent('GlowEffect') as TGlowEffect).GlowColor:=Talphacolorrec.Red;
    form1.Button1.ApplyStyleLookup;

Изменения по ApplyStyleLookUp не происходят. Причем ApplyStyleLookUp компонента происходит раньше чем например FormShow формы. Вопрос, как теперь применить настройки стиля по нажатию на кнопку.

Изменено пользователем gonzales
Ссылка на комментарий

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить на вопрос...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

  • Последние посетители   0 пользователей онлайн

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