delphi 使用外部组件从文件加载样式

u5rb5r59  于 9个月前  发布在  其他
关注(0)|答案(1)|浏览(70)

当我在TStyleBook中加载样式文件时,外部组件会出现问题。
我可以编辑默认样式,或者使用TStyleBook为外部组件创建新样式。如果组件直接位于TForm内部,则可以工作。
由于外部原因,我不能这样做,我需要从.style文件加载TStyleBook

procedure TForm1.FormCreate(Sender: TObject);
begin
  StyleBook1.LoadFromFile('C:\test.style');
end;

字符串
如果它包含一个外部组件(而不是一个内部的 Delphi 组件,如TLabelTPanel,..),我得到一个错误
我的样式文件内容:

object TStyleContainer
  object TLayout
    StyleName = 'htlayout'
    Align = Client
    object THtLabel
      Align = Client
      Text = 'aaaa'
    end
  end
end


在这个函数中出现错误(来自System.Classes):

function TReader.FindComponentClass(const ClassName: string): TComponentClass;


其中ClassName = 'THtLabel',如果组件是在TForm上,这是可以的,但如果它来自一个样式文件,我得到了一个ClassNotFound
ClassTypeTStyleContainer时,GetFieldClassTable(ClassType)返回nil。

gj3fmq9x

gj3fmq9x1#

好的,解决方案是注册类:

initialization
 RegisterFmxClasses([THtLabel]);
end.

字符串

相关问题