好像从来没有在Delphi的书中见到过关于静态成员变量的介绍?难道没有这个功能?用什么方法
可以替代一下?
对于一个OOP语言来说,没有这个功能不太好吧!

解决方案 »

  1.   

    type  TD = class
        private
        public
      end;var
      a: Integer; // 類似 static data member
    implementation
      

  2.   

    Delphi不支持静态的使用全局变量,在初始化Unit的时候Create对象,效果一样http://lysoft.7u7.net
      

  3.   

    const 
     {+j}i:integer{-j}
    i:=i+1;
      

  4.   

    我已经找到方法了,在类里面声明一个变量,比如是i:integer;然后在每次调用构造函数以后,就对i的值进行改变。从而实现对象的计数功能。
      

  5.   

    unit Unit1;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls, Buttons;type
      TForm1 = class(TForm)
        Button1: TButton;
        procedure Button1Click(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;
    TDevice = Class(TSpeedButton)    //定义一个抽象的设备类
            {这个类里面只是实现图形的虚拟,还提供一些纯虚方法的接口}
            private
                    counter:integer;
                    procedure showCounter(Sender: TObject);
            public
                    constructor Create(AOwner: TComponent); override;
            end;
    var
      Form1: TForm1;implementation{$R *.dfm}
    procedure TDevice.showCounter(Sender: TObject);
    begin
        showmessage(IntToStr(Counter));
    end;constructor TDevice.Create(AOwner: TComponent);
    begin
        randomize;
        inherited;
        self.Parent:=AOwner as TWinControl;
        inc(counter);
        self.Left:=random(form1.Width);
        self.Top:=random(form1.Height);
        self.OnClick:=showCounter;
    end;
    procedure TForm1.Button1Click(Sender: TObject);
    var ty:TDevice;
    begin
        ty:=TDevice.Create(self);
    end;end.
    -----------------------
    为什么我的不行????楼主诊的测试通过了吗????
      

  6.   

    你用的就是全局变量,而不是静态变量,delphi只支持静态方法,不支持静态变量