关于类中过程的声明和实现的写法(100)

  • 主题发起人 主题发起人 delhpi
  • 开始时间 开始时间
D

delhpi

Unregistered / Unconfirmed
GUEST, unregistred user!
今天看了TMiTeC组件的部分代码,发现下面的情况。TMiTeC_Storage = class(TMiTeC_MSIC_Component) private。。。。。。 procedure FreeDeviceInfoArray(var AList: TDeviceInfoArray);//这里定义的过程是有参数的 下面实现时,好像没有参数了procedure TMiTeC_Storage.FreeDeviceInfoArray;var i: Integer;begin for i:=0 to High(AList) do begin Finalize(AList.Layout); Finalize(AList.SMART); end; Finalize(Alist);end;IDE是D7,使用这个控件,编译,运行都正常。
 
试过,确实能正确编译运行,而且支持多个参数列表
 
今天发现自己项目里的代码还有这样的现象: procedure ClearWriteRows(const DelCol: Integer; const DelStr: string);下面是实现 procedure TForm1.ClearWriteRows;似乎2个参数都是const,所以下面省略了?
 
是过程重载吧
 
没有 ,只有这1个过程。
 
我记得写这个代码时,实现部分一定有参数的,今天突然发现没有了。但是编译,运行都正常。
 
d7 ,D2007下都是这样。
 
unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs;type TForm1 = class(TForm) procedure FormCreate(Sender: TObject); private { Private declarations } procedure Test(s:string); public { Public declarations } end;var Form1: TForm1;implementation{$R *.dfm}procedure TForm1.FormCreate;//这里把默认的参数删除 ,也能正常运行。begin test('test');end;procedure TForm1.Test;begin caption:=s;end;end.
 
发现d7也是这样。
 
是啊,的确如此!不过一点也不实用...
 
没有人指教一下吗?
 
。。。这也要指教么?这根本就不算问题啊。参数列表,可以不在定义中指明,但是如果要指明的话就要和声明中的完全一致。这是Delphi语言参考中明确说过的啊!难道现在没人看Delphi的在线帮助么?。。。这是什么世道啊?!通常都是在定义中再重新指明一遍为得是在定义中方便引用。
 
问题是,我写代码的时候,定义的地方本来也是有参数列表的,因为用快捷键的.突然有一天发现定义的地方参数列表自动没有了.以前确实没有看见这个说法.
 
接受答案了.
 
后退
顶部