I
import
Unregistered / Unconfirmed
GUEST, unregistred user!
类方法的使用
类方法(Class methods)是一类特殊的方法,它们在声明时要以class开头
type
TFigure = class
public
...
class procedure GetInfo(varInfo:TFigureInfo); virtual;
...
end;
实现时也以class开头
class procedureTFigure.GetInfo(varInfo:TFigureInfo);
begin
...
end;
(具体意义请自行查看帮助)
乍一看好象平时没有遇到过这个东东,也没有看到过谁用过这个东东,好象这个东东也没有什么大作用,其实不然……
比如我们有时为输入密码或其他常用数据专门做一个form,但由于其代码都在form定义的unit里面,所以在使用时仅仅需要几行代码,比如
with TfrmPassword.Create(nil) do
try
ShowModal;
finally
Free;
end;
虽然这样的代码已经很简洁,但如果写个十七八个还是很讨厌的。利用类方法可以使其更简洁!一行足以……
TfrmPassword = class(TForm)
...
public
{ Public declarations }
class function Execute:TModalResult;
end;
...
class function TfrmPassword.Execute:TModalResult;
begin
with TfrmPassword.Create(nil) do
try
Result := ShowModal;
finally
Release; //注意此处必须为release不能为free!
end;
end;
然后只用一行
TfrmPassword.Execute;
即可直接完成调用……是否很爽^_^
类方法(Class methods)是一类特殊的方法,它们在声明时要以class开头
type
TFigure = class
public
...
class procedure GetInfo(varInfo:TFigureInfo); virtual;
...
end;
实现时也以class开头
class procedureTFigure.GetInfo(varInfo:TFigureInfo);
begin
...
end;
(具体意义请自行查看帮助)
乍一看好象平时没有遇到过这个东东,也没有看到过谁用过这个东东,好象这个东东也没有什么大作用,其实不然……
比如我们有时为输入密码或其他常用数据专门做一个form,但由于其代码都在form定义的unit里面,所以在使用时仅仅需要几行代码,比如
with TfrmPassword.Create(nil) do
try
ShowModal;
finally
Free;
end;
虽然这样的代码已经很简洁,但如果写个十七八个还是很讨厌的。利用类方法可以使其更简洁!一行足以……
TfrmPassword = class(TForm)
...
public
{ Public declarations }
class function Execute:TModalResult;
end;
...
class function TfrmPassword.Execute:TModalResult;
begin
with TfrmPassword.Create(nil) do
try
Result := ShowModal;
finally
Release; //注意此处必须为release不能为free!
end;
end;
然后只用一行
TfrmPassword.Execute;
即可直接完成调用……是否很爽^_^