Clarionでは、OLE の定義をウィンドウで動的に設定しようとしています。現在、ウィンドウ内で 2 つの 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
私がやりたいのは、オブジェクトを 1 つだけ作成してから、コントロールの定義を動的に設定することです。これを簡素化する他の方法 (OCX ラッパーなど) があることは知っていますが、プロジェクトの要件に基づいて、これを行う必要があります。ある時点で、このコードは 2 つのオブジェクトからさらに多くのオブジェクトに成長し、よりクリーンになります。
MyActiveX.MyActiveXCtrl.1
コントロールの定義 (パーツ)を動的に設定するにはどうすればよいですか?