嗨,我正在开发一个 TControl 后代,我们将其命名为 THTMLBaseControl,在运行时该控件仅根据该控件的设置生成和输出 HTML 代码,因此基本 TControl 类和方法的所有附加属性,包括 Windows 消息系统是真的没有在运行时使用并导致内存开销。
我需要从 TControl 继承该控件,因此在设计时我可以使用所有 IDE 设计器的东西。
但是在运行时几乎所有那些在设计时需要的属性我都不需要它们。
我的所有控件都继承自该 THTMLBaseControl,因此不能为每个控件类创建一个包装类,因为它会大量重复代码。
所以我需要的是在运行时,在类被实例化之前,我可以更改父类,以便它将基于另一个类似 TControl 的类进行实例化,可能命名为 TmyBaseControl 从“TComponent”继承,如 TControl 那样,但这不会拥有所有 TControl 内存开销,并且只有我的 THTMLBaseControl 所需的属性和方法。
我真的没有 rutime 的 GUI 是一个只提供 HTML 的 Web 服务器,这是 Intraweb 和 Raudus 做的事情,但总是问题是所有都基于 TControl,所以它们必须在运行时创建并生成大量未使用的内存和进程开销。也许有一个解决方案,因此在运行时实例化的任何 THTMlBaseControl 后代都将从 TmyBaseControl 继承所有属性和方法,而不是从 TControl 继承。
我已经看到有一些方法可以破解 VMT,但也许还有其他解决方案,但还没有看到。我已经完成了对 NewInstance、ClassParent 和 TnstanceSize 类方法的更改,但我必须指定从哪个类开始,显然我必须对每个继承的 THTMLBaseControl 类执行相同的步骤
为了所有人:这只是一个疑问,我需要组件是像 TEdit、TPanel 这样的控件,由设计器 IDE 可见和可编辑我什至可以创建自己的 TControl 类,但我只是在想我是否可以重用代码已经存在。
问候