RSS
热门关键字:  数据挖掘  数据仓库  商业智能  人工智能  搜索引擎

关于在COM中使用可选参数的研究

来源: 作者:unkonwn 时间:2005-09-04 点击:
关于在COM中使用可选参数的研究

作者:wangzhidong(Steven Bob) 数据挖掘研究院

创作日期:2002-3-27

数据挖掘实验室

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; 数据挖掘研究院

实例下载: http://www.megspace.com/computers/coreware/

数据挖掘实验室

最新评论共有 0 位网友发表了评论
发表评论
评论内容:不能超过250字,需审核,请自觉遵守互联网相关政策法规。
匿名?