可能重复:
Replacing a component class in delphi
有谁有修改VCL组件并使它们在IDE中相对默认的技巧吗?这意味着不一定从它们下降,而是在似乎不允许子代对象中这样的东西的地方改变功能。如果可以用它们来代替标准组件,那也是一种奖励。
例如,我想要做的事情之一是在TButton上使用alpha混合鼠标。我注意到没有OwnerDraw事件,修改按钮绘制方式的代码似乎不在我可以覆盖的位置。有什么建议吗?还是我必须将TButton及其所有祖先从VCL代码中删除并直接修改它?
发布于 2011-08-15 18:43:48
发布于 2011-08-15 20:07:44
您正在提出几个与开发自定义V.C.L.控件相关的问题。
因为,这是一个非常广泛的话题,你可能想浏览或搜索关于它的互联网。
作为一个快速的问题,有几种方法可以开发或扩展控件。
有时,相同的控件可以以不同的方式开发,另一些则取决于您想要开发的控件的种类。
你还提到了如何做一个控件,与Delphi的I.D.E交互。
Delphi控件与包一起工作,您可以在没有控件的情况下使用普通库生成包,在生成控件之前,您可能需要开始这样做。
您可以创建一个控件,它根本不交互,只能通过运行应用程序来工作,然后再添加与DelphiI.D.E的交互。
在Delphi中,当您开发一个控件并希望将它放在表单上时,在内部设计时,它就像Delphi一样是您的应用程序,并且已经拥有了您的控件。
发布于 2011-08-16 02:30:51
如果您想要更改应用程序中所有TButtons的外观,则可以在不修改VCL的情况下这样做。当有几百个按钮组件存在时,我认为没有必要自己修改甚至子类VCL控件。例如,对于α混合鼠标,只需查看TMS控件即可。
但是,对于自己动手的技术,方法一(推荐为简单的)是将应用程序中的所有TButtons都从应用程序中删除,然后用其他方法替换它。VCL组件替换(全局)是通过gExperts轻松完成的。要了解如何将标准控件外观(按钮的外观)与德尔菲代码中绘制的一些覆盖元素结合起来,请参阅TBitBtn作为示例。与其子类TButton或TCustomButton,我建议您检查TBitBtn源,并从它开始。
方法二(不推荐简单)是开始使用与标准控件完全不同的外观的剥皮系统。
https://stackoverflow.com/questions/7069000
复制相似问题