关于OleVariant类型的疑问???

关于OleVariant类型的疑问??? VCL组件开发及应用
http://www.delphi2007.net/DelphiVCL/html/delphi_20061226151543105.html
我在remotedatamodule中创建了一个这样的过程(类似于策略模式中"上下文"类)  
  申明:  
  procedure   StrategyTrans(var   Stgy:   OleVariant);   safecall;  
  实现:  
  procedure   TSvQueueRDM.StrategyTrans(var   Stgy:   OleVariant);  
  begin  
          CxQuStgy   :=   Stgy.Create();//将具体的策略类对象传递给抽象类对象;  
  end;  
   
  其中,CxQuStgy为一基类抽象对象,而Stgy是我希望获得的基类的子类对象  
  但从另外一个地方传来的(var   Stgy:   OleVariant)参数是字符串类型的(这个字符串的内容是某个子类的类型名称).请问要怎样才能将Stgy字符串转换为类的对象?????????

怎么没有人来帮个忙哦

需要一数组对类进行维护,  
  arr:   array   of   TClass;  
  然后类加入到数组。  
  类似下面,或者生命数组常量  
      SetLength(arr,   Length(arr)   +   1);  
      arr[High(arr)]   :=   TClass1;  
      全部加入到数组  
   
   
  procedure   TSvQueueRDM.StrategyTrans(var   Stgy:   OleVariant);  
  begin  
      for   i:=0   to   high(arr)   do  
          if   arr[i].ClassNameIs(Stgy)   then  
          begin  
              CxQuStgy   :=   arr[i].Create;  
              break;  
          end;  
  end;  
   
 

转载于:https://www.cnblogs.com/delphi2007/archive/2008/09/16/1291705.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值