程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> Delphi >> 關於在COM中使用可選參數的研究

關於在COM中使用可選參數的研究

編輯:Delphi
在Delphi6中設計COM組件方法時,在 Parameter flags dialog 中,選擇Optional選項,即輸入參數為可選,現就給出如何實現可選參數實例。  監測函數 function VarIsEmptyParam(const V: Variant): Boolean; begin   Result := (TVarData(V).VType = varError) and             (TVarData(V).VError = $80020004); {DISP_E_PARAMNOTFOUND} end; 實例 uses ComServ, Variants, Dialogs, SysUtils; procedure TOptionalParamsDemo.GetParams(const Param1: WideString; Param2,Param3: OleVariant; Param4: Integer); var   s2, s3: WideString; begin   if VarIsEmptyParam(Param2) then     s2 := ' empty '   else     S2 := ' not empty ';   if VarIsEmptyParam(Param3) then     s3 := ' empty '   else     S3 := ' not empty ';   ShowMessage(Format('Param1[%s] Param2[%s] Param3[%s] Param4[%d]',[Param1, s2, s3, Param4])); end;

    procedure TForm1.Button1Click(Sender: TObject); var   V: Variant; begin   V := IDispatch(CoOptionalParamsDemo.Create());   V.GetParams('123'); end;   procedure TForm1.Button2Click(Sender: TObject); var   AIntf: IOptionalParamsDemo;   V: Variant; begin   AIntf := CoOptionalParamsDemo.Create();  // AIntf.GetParams('', EmptyParam, 9, 4);   V := IDispatch(AIntf);  // V.GetParams('123', '123', '123', '123');   V.GetParams(); end;   procedure TForm1.Button3Click(Sender: TObject); var   AIntf: IOptionalParamsDemo;   V: Variant; begin   AIntf := CoOptionalParamsDemo.Create();  // AIntf.GetParams('', EmptyParam, 9, 4);   V := IDispatch(AIntf);   V.GetParams('123', '123');  // V.GetParams(); end;   procedure TForm1.Button4Click(Sender: TObject); var   V: Variant; begin   V := IDispatch(CoOptionalParamsDemo.Create());   V.GetParams('123', '123', 123); end; procedure TForm1.Button5Click(Sender: TObject); var   V: Variant; begin   V := IDispatch(CoOptionalParamsDemo.Create());   V.GetParams('123', 123, 123, 6); end;

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved