Перейти к содержанию
  • Регистрация
  • 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

не надо парить стили

сделайте просто объекты в листБоксИтем и заполняйте их от души

зачем такие извраты-то??

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


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

заменил  tpanel на tlayout  и заработало.

 

а объекты потом криво листаются к сожалению

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


Ссылка на сообщение
Поделиться на другие сайты
  • 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 пользователей онлайн

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

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