我已经将几个示例样式从 ...\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 类)