Delphi:在COM中使用可选参数的研究
来源:优易学  2011-10-10 10:14:59   【优易学:中国教育考试门户网】   资料下载   IT书店
  关于在COM中使用可选参数的研究
  在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/

责任编辑:小草

文章搜索:
 相关文章
热点资讯
资讯快报
热门课程培训