delphi xe6 firemonkey изменить стиль формы во время выполнения

привет, как я могу изменить (мобильное приложение delphi firemonkey) время выполнения книги стилей

я попробую загрузить из ini или текстового файла, когда formcreate или formshow

но не может работать stylename is string

я пробовал этот код, но код 1 работает, а код 2 не работает

if RadioButton1.IsChecked then  Form1.StyleBook:=white else Form1.StyleBook:=black;

я нуждаюсь

form1.stylebook:= trim(Copy(Memo2.Lines.Strings[0],7,30)); {string ='black'}

но код ошибки: [Ошибка dcc32] main.pas(226): E2010 Несовместимые типы: «TStyleBook» и «string»


person Mustafa Soy    schedule 19.07.2014    source источник


Ответы (1)


Чтобы прояснить некоторую путаницу:

  1. Для свойства StyleBook требуется тип экземпляра объекта TStyleBook, поэтому ваша попытка передать строку этому свойству приведет к ошибке несовместимых типов.

  2. StyleName — это имя, под которым известен стиль или подкомпонент стиля. Я не совсем понимаю, почему вы упомянули свойство StyleName, поскольку оно, похоже, не имеет ничего общего с вашим вопросом.

Возвращаясь к вашему вопросу, как загрузить стиль в TStyleBook во время выполнения и применить его к форме?

var
  aStyleBook : TStyleBook;
begin
  // Create styleBook and assign the main form as its owner
  aStyleBook := TStyleBook.Create(Self); 
  // Load style from file or Stream
  aStyleBook.Resource.LoadFromFile('...'); 
  // set the loaded style as active style
  Self.StyleBook := aStyleBook;
end;
person Peter    schedule 20.07.2014