• 0
Vladix

[Windows] Почему для прозрачной формы, стиль созданный в BitmapStyleDesigner, скрывает форму в RunTime?

Вопрос

Столкнулся с тем, что поведение style-файлов, идущих в поставке XE6

(c:\Program Files (x86)\Embarcadero\Studio\14.0\Redist\styles\Fmx\*.style)

отличается от style-файлов, созданных с помощью утилиты Bitmap Style Designer. Собственно, потому и сабж. Или совет на тему решения проблемы.

 

Воспроизвести это просто:

  1. Создаем новый проект Firemonkey HD
  2. Устанавливаем у главной формы Transparency в True
  3. Накидываем на форму кучу визуальных компонентов
  4. Кидаем на форму TStyleBook, применяем стиль из стандартных. В дизайнере все поменялось.
  5. Запускаем приложение. Все работает как надо.
  6. Применяем стиль из созданных в Bitmap Style Designer. В дизайнере все поменялось.
  7. Запускаем приложение...
  8. ...и ничего не отображается

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


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

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

  • 0

Отключите стилизацию рамки окна:

Form.Border.Styling = False

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


Ссылка на сообщение
Поделиться на других сайтах
Гость
Эта тема закрыта для публикации сообщений.

  • Похожие публикации

    • Автор: HoShiMin
      Delphi 10.1 Berlin Update 1
      На форме два TPlane'a, один позади другого. На каждый накладываются текстурки из png с альфа-каналом (TTextureMaterialSource).
      Если привязывать MaterialSource'ы в дизайн-тайме (кидать для каждого TPlane'a на форму свой TTextureMaterialSource),
      альфа-канал обрабатывается корректно (в прозрачных участках видно, что находится "позади" TPlane'a).

      Если создавать TTextureMaterialSource и привязывать в рантайме, то при при повороте TPlane'ов прозрачность исчезает, и всё, что позади переднего TPlane'а, перестаёт рендериться.
      Привязываю так:
      procedure TForm1.FormCreate(Sender: TObject); var MS1, MS2: TTextureMaterialSource; begin MS1 := TTextureMaterialSource.Create(Plane1); MS2 := TTextureMaterialSource.Create(Plane2); MS1.Parent := Form1; MS2.Parent := Form1; Plane1.MaterialSource := MS1; Plane2.MaterialSource := MS2; MS1.Texture.LoadFromFile('C:\Users\Администратор\Pictures\TestTransparentTexture.png'); MS2.Texture.LoadFromFile('C:\Users\Администратор\Pictures\TestFilledTexture.png'); end; И результат - задняя красная панелька не рендерится за большой передней:

      То же самое, но с TTextureMaterialSource'ами, привязанными в дизайн-тайме через визуальные компоненты (как должно быть):

       
      Как это исправить? TPlane'ов будет много, на каждую панельку кидать свой компонент материала - не вариант.
      Проект в аттаче
      TransparentPlane.zip
    • Автор: Ra72
      Уважаемые эксперты!
      Хочу написать свой редактор стилей для мобильных платформ.
      Для полного счастья не хватает знаний каким образом из TStyleBook.Style выгрузить его изменения в TStyleBook.Resource для последующего сохранения в файл.
       
    • Автор: sviat9440
      Всем привет! Давно с вами не виделись)) Вот такая проблема есть: У меня Виндовс 10, и все корректно отображается. Я имею в виду стили. У меня на данный момент нет возможности протестировать приложение на Виндовс 7, но прилагаю скрины (Как должно/Как отображается). Вопрос: Проблема у меня? Или на стороне FireMonkey?
       
      Попутный вопрос: Если на стороне FireMonkey, то как узнать версию ОС, чтобы при запуске на вин7, сообщать пользователю что то типа "Твоя ОС не поддерживается"?
       
      Дополнительная информация: Используется Delphi XE 10 Seattle.


    • Автор: Ra72
      Следующий код не работает на Android. На Win32 в FBinary записывается примерно 100 килобайт, а на Android - 36 байт.
      FBinary := TMemoryStream.Create; TStyleStreaming.SaveToStream(AStyleBook.Style, FBinary, TStyleFormat.Binary);
    • Автор: Ra72
      Уважаемые эксперты!
      Подскажите, как сохранить StyleBook в текстовом формате *.style динамически (во время исполнения программы) ? Например:
      object TLayout Align = alClient Height = 715.000000000000000000 Position.Y = 33.000000000000000000 Width = 1162.000000000000000000 object TSwitchObject StyleName = 'switchstyle' ...
    • Автор: basnik
      Требуется консультация по составлению интерфейса и его верстка по готовому макету.
      ОС:Android
      Платформа: Delphi XE7
       
      Задачи: 
      - Создание стилей для FireMonkey 
      - Верстка интерфейса по макету 
      Требования: 
      - Опыт разработки мобильных приложений и интерфейсов 
      - Желание работать в команде 
      - Внимательность, способность выполнять работу качественно и в установленные сроки 
      - Коммуникабельность, адекватное восприятие критики, дисциплинированность и ответственность
       
      Работа удаленная, оплата по договоренности.
       
      Skype: basnik31
      ICQ: 629993
    • Автор: AndreyS
      Обнаружилась очень неприятная и неожиданная проблема.
      Постараюсь кратко описать суть. Есть приложение (пробовал пока только на Windows) для работы с базой данных. Допустим мы создаем новый объект этой базы. Открывается форма этого объекта. При заполнении значений определенного реквизита (допустим это цвет) открывается форма выбора из списка цветов, введенных в эту базу данных. Форма выбора открывается в модальном режиме. В этой форме выбора есть возможность добавить новый или изменить уже существующий цвет. Соответственно поверх модальной формы открывается еще одна модальная форма редактирования цвета. Пока все хорошо. Но при закрытии формы цвета форма выбора заполняется черным цветом (сначала только частично, т. к. перерисовывается не вся форма, а только часть объектов, которые были перекрыты второй модальной формой, но, например, при ресайзе формы выбора чернеет уже вся клиентская часть). Все формы в приложении стилизованные, включая бордюр.
      Частично эта проблема решается если у форм устанавливать Fill.Kind в Solid или что-то другое (главное, чтобы не None). Но при этом начинают странным образом пропадать элементы формы (без логики). Пробовал мудрить, типа в OnActivate формы выбора сбрасывать StyleBook формы, далее Application.ProcessMessages, и снова устанавливать в StyleBook новое значение. После пары перемигиваний форма отрисовывается правильно, но при этом появляется другой глюк (при наведении на кнопки в заголовке главной формы, заголовок тоже чернеет). Вот такая дребедень...
       
      В общем, как я понимаю, глюк появляется, когда открыто несколько модальных форм.
       
      Может кто-то знает какой-нибудь приличный workaround?
    • Автор: Brovin Yaroslav
      По мотивам темы: [Windows] Как поменять иконку формы?
       
      Как поменять иконку у формы со стилизованной рамкой под Windows?
    • Автор: xenon54
      Сделал кастомный TCustomRoundRect  (потомок TRoundRect), хочу использовать его в стилях, а не тут-то было. Такая вот ошибка появляется при запуске приложения.
    • Автор: ANovokreschenov
      Поставил XE7, создаю новое приложение FMX, добавляю на форму StyleBook, захожу в Style Designer, добавляю TLayout и в него добавляю TRectangle, в дереве объектов выделяю TRectangle, но он не выделяется в дизайнере, если попробовать потянуть его мышкой в дизайнере, то он улетает в правый нижний угол окна дизайнера... Пробовал разные комбинации, результат один и тот же - невозможно выделять и манипулировать объектами в дизайнере... Баг подтвержденный, есть в QC... А есть ли какой-то workaround/path для этой проблемы? Или ждать Update N или XE 8?
       
      Использую в работе Delphi более 12 лет, лучшая версия - Delphi 7, все что после - слабая надежда на кроссплатформу... сейчас смотрю на C# и Xamarin...
       
      Для чего такой продукт и тем более за такие деньги?
  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу