注册 登录
编程论坛 Delphi论坛

求助改善Delphi调用olevariant出现“被呼叫方拒绝接收呼叫”

xufen 发布于 2013-06-16 19:00, 1230 次点击
菜鸟请教各位我使用delphi操作AutoCAD时,在设置图层时定义layer:OleVariant;如果频繁的使用layer的话,就会出现“被呼叫方拒绝接收呼叫”的警告,请问各位有什么办法能避免这个情况的发生。(unAssigned释放OleVariant也无效。加sleep()延时等待效果也不明显我设置1500毫秒有时也会“被呼叫方拒绝接收呼叫”)而且这种情况发生非常随机性。请问各位如何才能解决这个问题?
uses
Comobj,activeX;
var
cad,caddoc,layer:OleVariant;
try
    cad:=GetActiveOleObject('AutoCAD.Application');
  except
    cad:=CreateOleObject('AutoCAD.Application');
 end;
cad.visible:=true;//显示CAD
caddoc:=cad.ActiveDocument;
//使用layer不能连续太频繁
layer:=caddoc.layers.add('1');
layer.color:=1;
layer:=caddoc.layers.add('2');
layer.color:=2;
layer:=caddoc.layers.add('3');
layer.color:=3;
layer:=caddoc.layers.add('4');
layer.color:=4;
layer:=caddoc.layers.add('5');
layer.color:=5;
layer:=caddoc.layers.add('6');
layer.color:=6;
layer:=caddoc.layers.add('7');
layer.color:=7;
layer:=caddoc.layers.add('8');
layer.color:=8;
2 回复
#2
volte2013-06-18 15:29
既然用layer太频繁,你可以不用layer!!! 写那么多语句?
#3
xufen2013-06-20 20:37
回复 2楼 volte
其实应该说是频繁的调用OleVariant,就会造成上面这种情况。但是delphi操作CAD又离不开OleVariant这个类型。
1