unit Opsfmco4;
interface
uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
 type
  Tfrm_mkins = class(TForm)
    pnlCOR_IPMI: TPanel;
  private
    { Private declarations }
    FOldResize: TNotifyEvent;
  protected
    procedure CreateParams(var Params: TCreateParams); override;
  public
    { Public declarations }
    constructor Create(Sender:TComponent;                                          sPackage,sItem,sedCORNo: string; tButtonState, tParentButtonState:ButtonState);
  end;var
  frm_mkins : Tfrm_mkins;
  COR_IPMIModified : boolean;
implementation
{$R *.DFM}请问此处
1.  var
  frm_mkins : Tfrm_mkins;
  COR_IPMIModified : boolean;
它也是仅限于本单元内使用吧?2.    那它和 在
private
       { Private declarations }
        FOldResize: TNotifyEvent;
定义的有何区别?

解决方案 »

  1.   

    1叫做变量,2叫做类的域,他们的作用域与访问范围不一样1、全局变量,声明在interface部分则在整个工程可访问,声明在implementation部分则在单元内可访问,生存期为全局的。
    2、类的域,可以看成类中的变量
    对象创建时创建,声明在private则只能在本类中访问,声明在protected则只能在本类和派生类中访问,声明在public和published则可以在任何地方访问
    生存期与类创建的对象相同。
      

  2.   

    to  ronaldli(木的) 1. 那上述的全局变量var, 跟声明在类中public的变量有何区别? 不是
        都是在整个工程都可访问吗?
     2. 'public和published则可以在任何地方访问'
       那两者区别?
      

  3.   

    public 在这声明的其他实例可以访问这些变量,Published也一样,但
    published中声明的在属性编辑器中就可以看到,也就是设计时就可以把这个值确定好保存在.dfm文件中
      

  4.   

    1.  var
      frm_mkins : Tfrm_mkins;
      COR_IPMIModified : boolean;
    它也是仅限于本单元内使用吧?
    在其他的单元也可以调用,要使用给变量的时候在前面加上uses unitX;就可以拉
    private
           { Private declarations }
            FOldResize: TNotifyEvent;
    是私有变量,只能在该单元使用!
      

  5.   

    1.  var
      frm_mkins : Tfrm_mkins;
      COR_IPMIModified : boolean;
    为全局全量,引用该单元的单元都可以使用。2.    那它和 在
    private
           { Private declarations }
            FOldResize: TNotifyEvent;
    属于Tfrm_mkins类的私有变量,
    只限于本类的成员函数可以使用,
    或者是同单元的类(友元)可以使用。
    且访问前该类必须实例化才行。
      

  6.   

    public和published的区别huojiehai(海天子)说得很清楚了var定义的变量是变量,它存在于全局
    类中public定义的变量,属于类,它存在于类对象实例中,没有实例就无所谓那个变量