比方说,有二个form,第一个form上有一按钮,在第二个form上我设一个全局变量var a:boolean,
在form1creat中设
   boolean:=false
我想通过点form1上的按钮,来改变form2上变量a的值,但是,结果变量a在form2上
的值永远是false,但是在form1上值可以改变。这是怎么回事,请各位高手指点。

解决方案 »

  1.   

    Var a: Boolean;
    在form2中form1creat事件中:
       a := False;在form1中
    procedure TForm1.Button1Click(Sender: TObject);
    var
      b: Boolean;  
    begin
      b := true;
      Form2.a := b;   
    end;
    这样就可以改变form2中的值
      

  2.   

    引用的时候一定要加上form2.****
      

  3.   

    boolean:=false???什么东西???/是不是a:=false???
    首先 你要确保你的form2已经create了
    其次 确定在form1中引用unit2单元,
    再次 确定a不是私有变量
    最后 确定在form2的create事件中,a没有再次被初始化为false;
    这样
    在form1中
    procedure TForm1.Button1Click(Sender: TObject);
    begin
      Form2.a := true;   
    end;
      

  4.   

    如果初始化赋值是在form1中,那么楼上的'首先'pass,如是a只在form2中生明,form1所在的单元 引用form2
    所在的单元,则:
    begin
      a:=true;
    end;
      

  5.   

    偶很同意 IORILI的做法!因为这个做法一定可以!除非你的delphi有问题!