函数或者过程的默认值是不是只能传字符串的?还是有其它的也可以?
比如我想:
procedure GetSomeThing(qyHed:TADOQuery=qyHed);
begin
...
end;
这样好象就不行。
还望高手指教一二,呵呵。

解决方案 »

  1.   

    不只是字符串,理论上应该是所有类型都可以的,你举的例子是传类参数类型的,一般不会设默认值,因为传递的是对象的指针,要先实例化。如果你要传递默认值,可以传递nil。
    procedure GetSomeThing(qyHed:TADOQuery=nil); 
    begin 
    ... 
    end; 
      

  2.   

    可以是其他类型,但是你的
    qyHed:TADOQuery=qyHed中默认值qyHed就有问题了,是一个不存在的对象
      

  3.   

    我知道默认值可以是nil、字符串、数字、double之类的东西,
    但是因为我的整个系统要调用此过程的TADOQuery就是qyHed,我目前只能做到这样:
    procedure GetSomeThing(qyHed:TADOQuery); 
    begin 
    ... 
    end; 
    然后调用过程:GetSomeThing(qyHed);
    我的目标是能否GetSomeThing;就可以达到我的目的。
    呵呵,不知各位看懂我的意思没?
      

  4.   

    默认值一般是在声明时给的,实现部分给默认值编译器会报错:
    E2037 Declaration of 'test1' differs from previous declaration
    还有默认值不可能是变量的,这种写法也有问题.