当然有啦
比如定义一个过程  Tform1.test(a:integer;b:integer=3);调用它时你既可以
用test(3),也可以用test(3,4).

解决方案 »

  1.   

    有!!!!!!
    例如:
    procedure DefaultParamTestFunc(var para1:integer;const para2:string='abc');
    begin
    ////...
    end;
    需要注意的事, 在Delphi中,只有常参才能有默认值,而且含有默认值的必须在后面,就是说,在第一个有默认值的参数的后面的参数都必须幽默认值。
      

  2.   

    你们所说的好像都是自定义的过程或函数,delphi本身的接口哪个是有缺省参数的,请举个例子
    ,还有"只有常参才能有默认值"是什么意思,哪些是常参?soToolkit.CompressECW(strSrcImageFile As String,strDestEcwFile As String,[nCompressHint As Long],[nDestCompression As Long],[dX0 As Double],[dY0 As Double],[dResolutionX As Double],[dResolutionY As Double],[nResolutionUnits As Long],[strDatum As String],[strProjection As String]) 
    第三方控件的接口的参数如上所示,本来带[]是可缺省的,在VB中不要这些省数是可以的,但是在delphi这些参数必须要,否则出错,怎么办?
      

  3.   

    函数
    procedure TWebModule1.XMLBroker2RequestRecords(Sender: TObject;
      Request: TWebRequest; out RecCount: Integer; var OwnerData: OleVariant;
      var Records: String);
    其中参数Sender、Request是常参,OwnerData、Records是变参
      

  4.   

    Delphi中的可选参数没有带[]之说,那我怎么怎么哪些参数是可选的,哪些参数是必选的呢?
    MessageDlg('Welcome to my Object Pascal application.  Exit now?',
        mtConfirmation, [mbYes, mbNo], 0)这个方法中[mbYes, mbNo]就带[],但它们是必选的
    ,Delphi太笨了。