我在使用一个电子地图的ocx控件编程序,改控件的ReadHtDefault函数可以打开电子地图,我看
该函数的定义如下:function(var CodeDir:IInterface;var MapFullName:IInterface)
请问我该怎么定义参数,如何把地图的路径和名称赋给变量?
该函数的定义如下:function(var CodeDir:IInterface;var MapFullName:IInterface)
请问我该怎么定义参数,如何把地图的路径和名称赋给变量?
解决方案 »
- DLL 窗体 library 中变量的值如何传到 窗体中,谢谢!!!
- 提示[Fatal Error] p_main.pas(7): File not found: 'frxClass.dcu'
- DELPHI 5.0中的standard2对应什么类型
- 新手请教:如何插入数据
- 高手进来看看,程序报错了!
- 小弟想问在DELPHI6中如何用OLE对象把DBGRID中的数据保存为EXCEL文件
- 使用wiseinstallation打包delphi7.0的bde程序,出现如下错误提示:指定了不正确的bde版本,请确定,本机当前配置bde的版本是5.0.1.22或更
- 怎样更好的查询大的表
- 请教!如何处理三层模式数据库数据无法更新?(上次提问无结果)
- 我感觉csdn的delphi版比大富翁有人情味,我还是喜欢csdn
- 一直在大富翁上混.現在來這混混..專家分少.請大家多多關照!
- 不能加载32位dll
['{00000000-0000-0000-C000-000000000046}']
function QueryInterface(const IID: TGUID; out Obj): HResult; stdcall;
function _AddRef: Integer; stdcall;
function _Release: Integer; stdcall;
end;
你必须认真查看该OCX的使用手册,不知道你对接口、OLE了解多少,总之你的参数必须是接口的实现类对象。
第一:仔细地在控件的.pas文件中找到可以获得 路径和名称 的类的 '实现类'然后找出起CLASS定义时继承的接口; 因为Interface 是一个最原始的接口(类似超类object),所以可以使用继承于它的子接口作为传入参数;
如果:IMywork=interface()
...
function A():string;//而 TMywork = class(object,IMywork)
...
function A() //用来设置/获得路径/名称///////
那么在你使用的控件的窗体类中声明
FMywork:IMywork;
然后利用 Fmywork.A() 设置路径;//在使用FMywork前 一定要先创建
之后就可以将FMywork作为 你所需要的参数传入了试试吧! 这条思路适合你的第二,就是自己重写一个实现类,不要用接口做参数! hehe难度不小哦~~