在Clarion中,我希望在窗口中动态设置 OLE 的定义。现在,这就是我在一个窗口中定义两个 OLE 对象的方式:
Window WINDOW('Test ActiveX Window'), AT(,,431,92), FONT('MS Sans Serif', 8,, FONT:regular), COLOR(COLOR:White), CENTER, ALRT(F2Key), TIMER(10), GRAY
OLE, AT(10,3,11,7), USE(?MyOLE1), HIDE, CREATE('MyActiveX.MyActiveXCtrl.1'), COMPATIBILITY(021H) END
OLE, AT(30,3,11,7), USE(?MyOLE2), HIDE, CREATE('SomeOtherActiveX.SomeOtherActiveXCtrl.1'), COMPATIBILITY(021H) END
END
两个对象都包含相同的方法定义(例如TestMethod
),几乎就像它们实现了一个公共接口一样。我目前可以像这样有条件地调用它们:
if (condition)
testStr = ?MyOLE1{'TestMethod(param1)'}
else
testStr = ?MyOLE2{'TestMethod(param1)'}
end
我想做的只是创建一个对象,然后动态设置控件的定义。我知道还有其他方法可以简化这一点(OCX 包装器等),但根据项目的要求,必须这样做。在某些时候,此代码将从 2 个对象增长到更多对象,这将更加简洁。
如何动态设置控件的定义(MyActiveX.MyActiveXCtrl.1
部分)?