不可以写在Create里!
你可用类方法来实现!
你可用类方法来实现!
解决方案 »
- 代码解释ActiveControl
- 请教,如何用代码让控件在有数据改变时不显示,批量修改完再显示?因为数据量大的时候花屏闪烁
- 请问windows下如何获得选中的文本的内容? 谢谢!
- 如何双击stringgrid中的一行值后赋给另一个stringgrid?
- delphi6为何我写代码时活动的unit已经变化,而左边的查看类和过程变量等的那个monitor窗口(我说不准具体名称)不随之变化?
- Delphi 6 是不是很容易死机?
- 数据库的不爽:怎么删除?
- 怎样按dbgrid显示的内容保存到数据库
- how to writting!?
- 急!!!哪儿有 InstallShield Express for Delphi 6 下载
- Delphi启动慢的解决方法
- 如何使DateTimePicker初始显示为空而不是2002-08-11?
类方法的使用
类方法(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;
即可直接完成调用……是否很爽^_^