Winexcel Опубликовано 28 марта, 2017 Поделиться Опубликовано 28 марта, 2017 Подскажите пожалуйста, как мне вставить свой стиль в какой либо компонент, например в TButton вставить стиль от TEdit(предполагается что стили есть в TStyleBook), findStyleResourceAndClone пробовал так: Button1.AddObject(StyleBook.FindStyleResource('editStyle', True)); Но стиля едита не увидел Цитата Ссылка на комментарий
0 enatechno Опубликовано 28 марта, 2017 Поделиться Опубликовано 28 марта, 2017 Стиль не "вставляется", а "применяется".Button1.StyleLookup := 'имя стиля'; Цитата Ссылка на комментарий
0 Winexcel Опубликовано 28 марта, 2017 Автор Поделиться Опубликовано 28 марта, 2017 (изменено) Можно делать именно копированием, вот я и спрашиваю как Изменено 28 марта, 2017 пользователем Winexcel Цитата Ссылка на комментарий
0 enatechno Опубликовано 28 марта, 2017 Поделиться Опубликовано 28 марта, 2017 Не совсем понятно, что Вы хотите получить в итоге. Вы можете просто поместить объект TEdit со стилем 'editstyle' (или любым другим) внутрь кнопки: Edit1 := TEdit.Create(Button1); Edit1.Align := TAlignLayout.Center; Button1.AddObject(Edit1); Цитата Ссылка на комментарий
0 Winexcel Опубликовано 28 марта, 2017 Автор Поделиться Опубликовано 28 марта, 2017 (изменено) Вот есть конкретный метод findStyleResourceAndClone, он создаёт копию стиля, я так понимаю что копия стиля нужна для того чтобы её вставлять в другой визуальный компонент, например TButton.. Или можно также вызвать метод FindStyleResource('', TRUE) , где последний параметр AClone function TPresentedControl.FindStyleResource(const AStyleLookup: string; const AClone: Boolean): TFmxObject; отвечает за копирование стиля. Объясните для чего вообще это нужно тогда? Если не для вставки этого стиля.. Изменено 28 марта, 2017 пользователем Winexcel Цитата Ссылка на комментарий
0 Модераторы Равиль Зарипов (ZuBy) Опубликовано 28 марта, 2017 Модераторы Поделиться Опубликовано 28 марта, 2017 для чего Вам вставлять стиль? Опишите конкретную задачу Цитата Ссылка на комментарий
0 Winexcel Опубликовано 28 марта, 2017 Автор Поделиться Опубликовано 28 марта, 2017 4 минуты назад, Равиль Зарипов (ZuBy) сказал: для чего Вам вставлять стиль? Опишите конкретную задачу Конкретной задачи нет, меня интересует просто для чего нужна копия стиля Цитата Ссылка на комментарий
0 enatechno Опубликовано 28 марта, 2017 Поделиться Опубликовано 28 марта, 2017 2 часа назад, Winexcel сказал: findStyleResourceAndClone Я так понимаю, Вы имели ввиду FindAndCloneStyleResource? Этот метод не возвращает копию стиля. Он возвращает копию объекта(элемента) стиля. Например, если Вы хотите напрямую изменить элемент стиля (например цвет фона кнопки), то делаете: AObject := Button1.FindStyleResource('background'); if (AObject is TRectangle) then TRectangle(AObject).Fill.Color := TAlphaColorRec.Aqua; И Button1 изменит цвет. Но, если после этого сделать Layout1.AddObject(AObject); то кнопка Button1 не будет больше иметь элемент 'background', родителем этого объекта станет Layout1. Что касается AObject := Button1.FindStyleResource('background', True); if AObject <> nil then Layout1.AddObject(AObject); или if Button1.FindAndCloneStyleResource('background', AObject) then Layout1.AddObject(AObject); то вы просто создаете новый объект AObject типа TRectangle со всеми свойствами как у стилевого элемента 'background', за исключением StyleName (у вновь созданного AObject будет StyleName = ''). В нашем примере этот новый объект (TRectangle) будет помещен на Layout1. При этом 'background' кнопки не изменится. Winexcel и Равиль Зарипов (ZuBy) 2 Цитата Ссылка на комментарий
Вопрос
Winexcel
Подскажите пожалуйста, как мне вставить свой стиль в какой либо компонент, например в TButton вставить стиль от TEdit(предполагается что стили есть в TStyleBook), findStyleResourceAndClone
пробовал так:
Button1.AddObject(StyleBook.FindStyleResource('editStyle', True));
Но стиля едита не увидел
Ссылка на комментарий
7 ответов на этот вопрос
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.