因此,我正在开发一种图形库,提供自定义的SVG图像格式,该格式可在TPicture或任何支持图形图像的VCL组件(例如TImage)中使用。从XE7编译器版本开始,我编写并维护了我的库包,并且我的代码向后兼容,直到XE2版本。
为了向IDE声明我的自定义图形格式,我从图形类的initialization
部分调用以下代码
Vcl.Graphics.TPicture.RegisterFileFormat('svg', 'Scalable Vector Graphics', TWSVGGraphic);
但是,自上一个RAD Studio 10.3.3 Rio版本以来,这似乎不再起作用。过去我已经遇到过类似的问题,可以找到一个解决方案: Delphi - How to correctly register a graphic class since XE8?
因此,显然自从10.3.3 Rio版本以来,Embarcadero更改了规则。再来一次。自该版本以来,我的图形类不再正确注册。有时是,有时不是。例如,当我第一次打开IDE时,不是。当我尝试在设计时调试程序包时,它就是。当我尝试运行一个项目时,有时候是这样,有时候不是。
有人遇到过类似的问题吗?在最新的编译器版本中,有关initialization
部分的规则是否已更改?最后,我的代码到底出了什么问题?
也许,即使经过这么多年,也许我还是不明白如何在Delphi中正确注册图形类。在这种情况下,如果有人可以向我解释如何正确注册图形类,以便以后再也不会遇到此类问题,我将不胜感激。