delphi中,当我们在IDE的窗体中添加控件时,会自动把相关单元加入uses的,所以一般不用考虑这个问题。
但是,如果你在设计Style时,在Style里用了Effects(不是自带控件Style里的effects),程序运行时,会出现找不到你所修改的effect类的致命错误。这是因为uses缺少了
FMX.Effects 和 FMX.Filter.Effects 这两个单元,但是delphi自带控件的Style里如果用了effect却默认不用uses这两个单元!!!
比如TCornerButton,其Style里自带了一个Effect,你如果改变这个effect类,如果不uses FMX.Effects 和 FMX.Filter.Effects 这两个单元, 则会出现找不到你所改变的effect类的错误。
弄了半天,偶然发现的,运行不行的时候,就直接在窗体添加了同样的effect,运行下,当然没问题。把窗体中的effect删了,再运行,刚才修改了style里的effect控件可以了。这时还是没有发现是没引用这两个单元的问题,也没想到去看窗体单元的代码,直接新建一个工程,再弄个一样的修改effect的控件,又不行了!!!!
这下纠结啊,把2个工程放在一个工程组里,然后把StyleBook和控件互相复制粘贴,不行的工程还是不行,行的工程还是行,这下肯定是窗体及其单元文件出问题了,比较两个窗体的TEXT,没发现问题,纠结啊纠结(傻啊)。转回FORM比较2个窗体,才发现那个能运行的有FMX.Effects 和 FMX.Filter.Effects 这两个单元,把这两个单元添加到出错的工程里的窗体uses,OK,唉,啊。。。。
赶紧记下来。。。