• 0
Winexcel

Вставка стиля

Вопросы

Подскажите пожалуйста, как мне вставить свой стиль в какой либо компонент, например в TButton вставить стиль от TEdit(предполагается что стили есть в TStyleBook), findStyleResourceAndClone

пробовал так:

  Button1.AddObject(StyleBook.FindStyleResource('editStyle', True));

Но стиля едита не увидел

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


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

7 ответов на этот вопрос

  • 0

Можно делать именно копированием, вот я и спрашиваю как

Изменено пользователем Winexcel

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


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

Не совсем понятно, что Вы хотите получить в итоге.
Вы можете просто поместить объект TEdit со стилем 'editstyle' (или любым другим) внутрь кнопки:
 

  Edit1 := TEdit.Create(Button1);
  Edit1.Align := TAlignLayout.Center;
  Button1.AddObject(Edit1);

 

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


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

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

Или можно также вызвать метод FindStyleResource('', TRUE) , где последний параметр AClone

function TPresentedControl.FindStyleResource(const AStyleLookup: string; const AClone: Boolean): TFmxObject;

отвечает за копирование стиля.

Объясните для чего вообще это нужно тогда? Если не для вставки этого стиля..

Изменено пользователем Winexcel

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


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

для чего Вам вставлять стиль? 

Опишите конкретную задачу

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


Ссылка на сообщение
Поделиться на другие сайты
  • 0
4 минуты назад, Равиль Зарипов (ZuBy) сказал:

для чего Вам вставлять стиль? 

Опишите конкретную задачу

Конкретной задачи нет, меня интересует просто для чего нужна копия стиля

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


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

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


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

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

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

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