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。

解决方案 »

  1.   

    从向导中继承吧Self.ClassParent.ClassName得到父类名称加上  inherited;才能执行父类的click
      

  2.   

    谢谢楼上的回复!!
    1、因为是老系统,窗口已经存在了,所以无法从向导中继承。
    2、Self.ClassParent.ClassName我试了,是我要的结果。
    3、inherited是有的,只是因为改名了,所以原来的Button1.Click=Button1Click这句就不见了,所以Button2的Click事件变成默认的了。
      

  3.   

    1. 右键窗体,view as text,然后将 Object Form1: TBaseForm 这句的Object改成inherited
    2. if form2.InheritsFrom(TForm1) then ...
    3. 不能重命名继承自基类的组件。
      

  4.   

    如果不用继承,可以frames啊,这个比较容易理解,嘿嘿