Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/delphi/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Delphi 将新属性添加到TMS控制“中”;TAdvSmoothDock“;但它没有';不显示在对象检查器中_Delphi_Tms - Fatal编程技术网

Delphi 将新属性添加到TMS控制“中”;TAdvSmoothDock“;但它没有';不显示在对象检查器中

Delphi 将新属性添加到TMS控制“中”;TAdvSmoothDock“;但它没有';不显示在对象检查器中,delphi,tms,Delphi,Tms,我试图向TMS控件“TAdvSmoothDock”添加一个新属性(Images:TImageList),但该属性没有出现在对象检查器中 我在“已发布”项下对其定义如下: Published property Images: TImageList read GetImages write SetImages; 我可以编译它,但是属性没有出现在对象检查器中。 在代码中使用控件时,它确实出现在delphi IDE中: 比如: AdvSmoothDock1.Images := ImageList1

我试图向TMS控件“TAdvSmoothDock”添加一个新属性(Images:TImageList),但该属性没有出现在对象检查器中

我在“已发布”项下对其定义如下:

Published
  property Images: TImageList read GetImages write SetImages;
我可以编译它,但是属性没有出现在对象检查器中。 在代码中使用控件时,它确实出现在delphi IDE中:

比如:

AdvSmoothDock1.Images := ImageList1;
目前我正在使用Delphi XE2 VCL


注意。

您需要重建包含该组件的TMS包,而不仅仅是更改源代码

对象检查器不使用代码源来确定要显示的内容。它使用RTTI(运行时类型信息),它从包含组件的运行时包(如果没有可用的运行时包,则使用designtime包)中的编译版本获取

找出TMS组件所在的包,在IDE中打开该包的源代码(包的.dproj文件),然后构建该包。确保它看到的是源代码的版本,而不是正常的TMS版本,以便使用更改


(当然,正确的方法是创建您自己的TAdvSmoothDock的后代,添加属性,将其放入您自己的使用TMS one的包中,并且永远不要接触TMS源代码。)

是的,它已安装……我告诉过你我可以使用它,但新属性没有出现……我试图卸载它并构建、编译、安装它……我还试图删除DCU、BPL并构建新的DCU、BPL并安装它。我做到了……我试图重建TMS软件包,但没有成功……我检查了路径和所有内容,但仍然是一样的!我知道如何做到这一点对象检查器也会找出要显示的内容。我尝试了正确的方法,但我有我的顾虑,这就是为什么我要修改TMS的基本代码。但不管如何,重新编译和重建包都会让重新创建RTTI,这将让obejct检查器读取新属性,但在我的情况下,它不起作用…@user1512094很抱歉这么冒昧,但你的担心是没有根据的,因为你经验太少。坚持正确的方法,让That工作。然后你没有重建正确的包,或者当重建包时,它会拾取原始源文件。这是仅有的两种可能性(我已经做了几百次了,所以我很确定这个事实)。对不起,但我的答案是正确的。如果这对你不起作用,你需要弄清楚你怎么做得不对。@iamjoosy:这正是我在回答的最后一段中所说的,NGLN在他的评论中也这么说。