问一下关于继承的三个问题
1、如何将不是继承的窗口改成继承的?
最近在改一个老程序,要在每个窗口都加一个相同的功能。如果每个窗口都继承于一个基窗口,那只要改基窗口就可以了,但老程序不是这样的,所以我想将老程序改成继承一个基窗口的。
我写了一个测试程序,新建一个工程,加了两个form:form1和form2,然后,在form2中,改“TForm2 = class(TForm2)”为“TForm2 = class(TForm1)”,在前面的“uses”中,加入引用“unit1”。如果运行,则在Form2中能够显示Form1的内容,但在设计界面不显示Form1的内容。
请问一下该如何解决???
2、Form2继承于Form1,那在Form2中,用什么代码知道自己是从Form1中继承来的???
3、Form2继承于Form1,Form1有个Button1,里面有代码,在Form2中,Button1也加了一些代码。我想将Button1改名成Button2。
我在公司测试时,报错,说是Form2中没有Button1。而在家测试时,不报错,但是Button2连接不到原来Button1的Click事件上了。
请问一下,如何修改才能让Button1改名成Button2后,功能不变。
注明一下,我是用的Delphi 2010。
[解决办法]
从向导中继承吧
Self.ClassParent.ClassName得到父类名称
加上 inherited;才能执行父类的click
[解决办法]
1. 右键窗体,view as text,然后将 Object Form1: TBaseForm 这句的Object改成inherited
2. if form2.InheritsFrom(TForm1) then ...
3. 不能重命名继承自基类的组件。