新建两个窗体Form1,form2在form1放了一个button,加一个label1在button的onclick里写
form2:=Tform2.create(application);
form.showmodal;在form2的implilaction下写uses unit1;在form2上放一个button1,在form2的button1的onclick里写form1.label1.caption:='*****';问题是。这时我新建了一个form3,从form1继承下来。当点击form3的button1时,出现错误。跟踪调试出现
form1.label1.caption:='*****';这行错误 ,好像是没有引用unit3。怎样让继承的form3,同样可以调用form2.

解决方案 »

  1.   

    form2:=Tform2.create(application);
    form2.showmodal;//写错了.
      

  2.   

    你调试的form3的ONclick怎么会有
    form1.label1.caption:='*****'这句?真是看不明白
      

  3.   

    form3是从form1继承的。清楚了吗?所以点击form3的button时候会调用form2.
    仔细看这个问题,其实有些难的。不要一看form1,fomr2就太简单了。
      

  4.   

    你说的是点击form3的button1时,出现错误。但是调试的时候form1.label1.caption:='*****'这句又出错那么说调试的时候form3的button1 click已经成功执行并且已经生成了form2,然后你点form2的button时候出错了?是么?
      

  5.   

    你在Form3中uses unit2;了吗?
    有问题请发信息到我的E-mail:[email protected]
      

  6.   

    guangbowang
    广播王,好恐怖的mailform3如果是继承form1的话那么应该已经uses unit2了
      

  7.   

    program Project1;uses
      Forms,
      Unit1 in 'Unit1.pas' {Form1},
      Unit2 in 'Unit2.pas' {Form2},
      Unit3 in 'Unit3.pas' {Form3};{$R *.res}begin
      Application.Initialize;
      Application.CreateForm(TForm3, Form3);
      Application.Run;
    end.因为form1没有先创建, 而运行form3应出现错误 .
    Project project1.exe raise exception class Eaccessvoiolation with 
    message 'access violation at address 004541bf in module 'project1.exe'. read of address fffffff' proecess stopeed
      

  8.   

    form3是从form1继承的又怎会调用form2?不明!
    更不会执行form2的button1的事件!
    -------------------------------------------
    你有很多没说清!
    可否贴代码出来看看
      

  9.   

    form13是继承fomr1.如果是begin
      Application.Initialize;
      Application.CreateForm(TForm1, Form1);//加上去就不会有问题.
      Application.CreateForm(TForm3, Form3);
      Application.Run;
    end.
      

  10.   

    to 小兵,
    在form1的 button1里调用 form2,
    form3是从form1里继承,当然也就执行了form2.
      

  11.   

    因为很多窗体都要从form1继承,而且都要调用form2.不可能在form2里的implation下uses unit1,unit3,unit4,再判断是哪个窗体调用form2,再执行相应的代码,这样就不灵活了。如果form2知道是谁调用他自己就好了。得到调用form2窗体的句柄。再来执行相应的程序。