Перейти к содержанию
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 пользователей онлайн

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