Delphi Firemonkey - 运行时加载样式



我已经将几个示例样式从 ...\RAD Studio\9.0\Styles 作为资源加载到我的项目中,并且"简单地"尝试在运行时加载其中一个。

我正在使用以下代码来尝试执行此操作:

var
  vResourceStream : TResourceStream;
begin
  vResourceStream := TResourceStream.Create( HInstance, 'DARKSTYLE', RT_RCDATA );
  try
    StyleBook1.LoadFromStream( vResourceStream );
  finally
    vResourceStream.Free;
  end;

它可以编译正常,但是当我运行它时,我收到一堆错误,第一个是"属性对齐不存在",然后是"读取 TStyleBook.Align 时出错:属性对齐不存在",它似乎为一堆更多的属性、高度等这样做。

有人可以给我一些关于如何解决它的指示吗?

并不是说我对FMX有一点了解,但是AFAIU.style文件是资源定义文件。您应该读取其资源,而不是从流中读取样本对象:

StyleBook1.Resource.LoadFromStream( vResourceStream );

作为参考,TStyleBook 上有 LoadFromStream 和 LoadFromFile 方法,但也有 TStyleStreaming 类,带有额外的 LoadFromResource 实用程序方法(除了它自己的 LoadFromStream 和 LoadFromFile)。可能他们也应该在 TStyleBook 类中添加一个 LoadFromStream(猜它会调用相应的 TStyleStreaming 类)

相关内容

  • 没有找到相关文章

最新更新