请问:在Delphi中有没有静态成员变量?怎样实现? 好像从来没有在Delphi的书中见到过关于静态成员变量的介绍?难道没有这个功能?用什么方法可以替代一下?对于一个OOP语言来说,没有这个功能不太好吧! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 type TD = class private public end;var a: Integer; // 類似 static data memberimplementation Delphi不支持静态的使用全局变量,在初始化Unit的时候Create对象,效果一样http://lysoft.7u7.net const {+j}i:integer{-j}i:=i+1; 我已经找到方法了,在类里面声明一个变量,比如是i:integer;然后在每次调用构造函数以后,就对i的值进行改变。从而实现对象的计数功能。 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.-----------------------为什么我的不行????楼主诊的测试通过了吗???? 你用的就是全局变量,而不是静态变量,delphi只支持静态方法,不支持静态变量 如何将integer型变量转换成char型的?谢谢!!! 关于 DBGrid ,大家请进! variant是什么类型变量呢? 请问数据库用Access,但不用ODBC连,不知怎么弄?(只有这么多分了,全部献上) 在线等待,急求flash播放器的源代码 请教: 如何用程序清除IE地址栏的内容? 这个程序小弟有几处不明白,高手们帮忙。 有一数值型字段(A11),怎么建立索引,即由大到小排列? 大哥们别不理我啊,这是我的课程设计啊,数据库数据库数据库。。。 高手请进! 分不够还能加!急!!! 今天突然看到这篇文章很有感触,大家看看又有什么感想呢?
private
public
end;var
a: Integer; // 類似 static data member
implementation
{+j}i:integer{-j}
i:=i+1;
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.
-----------------------
为什么我的不行????楼主诊的测试通过了吗????