我建了一个类,在其中定义了一个公用的变量,让工程中的其他所有窗体能得到这个变量的值,我已把这个类的unit加入到窗体中了,为何,不能在其中的一个窗体中赋值呢?
谢谢,请帮忙。

解决方案 »

  1.   

    你不放在增加一个方法
    例如:GetVar()
    这样用的时候,用这个方法来取得。
    不过我觉得既然是 public  应该是能访问的。但表单调用时必须USES
      

  2.   

    unit Unit1;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs;type
      TForm1 = class(TForm)
      private
        { Private declarations }
      public
        { Public declarations }
        i:integer;//你在类中声明的变量
      end;var
      Form1: TForm1;//你定义的变量implementation{$R *.dfm}
    begin
     form1:= tform1.Create(nil); //构造一个对象实例变量
     form1.i:= 123;////你赋值的地方
    end;
    end.
     //在哪个单元用form1的i,就把unit1 uses进来
      

  3.   

    把他声明为私有变量
    然后定义两个公有方法:(这样才体现了类的封装特性)
    //...
    public:
       procedure SetValue(paramsname:类型);
       function  GetValue():类型;
    end;
    //...
    procedure ClassName.SetValue(paramsnames:类型);
    begin 
      paramsname:=paramsnames;
    end;
    function  ClassName.GetValue():类型;
    begin
     Return:= paramsname;
    end; 
    //...
      

  4.   

    首先必须创建这个类的实例,
    var ClsA : ClassA;
    begin
      ClsA := ClassA.Create;
      ClsA.Variable := .......
    end;