刘
刘永学
Unregistered / Unconfirmed
GUEST, unregistred user!
各位同仁:
众所周知,在delphi中通过ole自动化方式、派遣接口方式、以及接口方式来调用mapinfo
的机制与效率都是不同的。(通过派遣接口与接口方式调用比较相似),利用接口或
派遣接口调用mapinfo的速度是通过ole自动化方式的好几倍,并且是先期联编(这点,
已经有好几位delphi 好手在书中论述过了,如 李维等)。我在mapinfo目录下,发现了
一个文件mapinfo.tlb,于是我将之引入到delphi中(通过project /import type library )
生成了Mapinfo_TLB.pas文件。仔细浏览该文件,发现它实现了双接口,可以通过操纵接口
达到控制mapinfo的目的。如下:
uses Mapinfo_TLB.pas;
var map:DMapInfo;
mappMIMapGen;
。。。
map:=CoMapInfoApplication.Create
map.Do_ ('Set Application Window '+ inttostr(panel1.Handle));
map.Do_ ('Set Nextdo
cument Parent '+inttostr(panel1.Handle)+' Style 1');
map.Do_ ('OPEN TABLE。。。 AS。。。 ');
map.Do_ ('MAP FROM ');//do_是map提供的方法
。。。
在这里,就可以使用DMapInfo派遣接口,可是如何使用DMIMapGen等派遣接口呢? 在delphi中如何使用IMapInfo等接口呢?
我试着用以下语句:
mapp:=map.MIMapGen as DMIMapGen;
mapp.zoommap(10);
发现可以操纵DMIMapGen派遣接口,但一点反映也没有;问题是不知在何时、何地使用这个派遣接口?
在文件中,得知
class function CoMapInfoApplication.Create: DMapInfo;
begin
Result := CreateComObject(CLASS_MapInfoApplication) as DMapInfo;
end;
也就是CoMapInfoApplication构造时,返回的函数类型就是DMapInfo,但我又想使用
IMapInfo接口,我该怎么办呢?
这些问题已经困扰我好多天了,请各位大侠拔刀相助。。。。
众所周知,在delphi中通过ole自动化方式、派遣接口方式、以及接口方式来调用mapinfo
的机制与效率都是不同的。(通过派遣接口与接口方式调用比较相似),利用接口或
派遣接口调用mapinfo的速度是通过ole自动化方式的好几倍,并且是先期联编(这点,
已经有好几位delphi 好手在书中论述过了,如 李维等)。我在mapinfo目录下,发现了
一个文件mapinfo.tlb,于是我将之引入到delphi中(通过project /import type library )
生成了Mapinfo_TLB.pas文件。仔细浏览该文件,发现它实现了双接口,可以通过操纵接口
达到控制mapinfo的目的。如下:
uses Mapinfo_TLB.pas;
var map:DMapInfo;
mappMIMapGen;
。。。
map:=CoMapInfoApplication.Create
map.Do_ ('Set Application Window '+ inttostr(panel1.Handle));
map.Do_ ('Set Nextdo
cument Parent '+inttostr(panel1.Handle)+' Style 1');
map.Do_ ('OPEN TABLE。。。 AS。。。 ');
map.Do_ ('MAP FROM ');//do_是map提供的方法
。。。
在这里,就可以使用DMapInfo派遣接口,可是如何使用DMIMapGen等派遣接口呢? 在delphi中如何使用IMapInfo等接口呢?
我试着用以下语句:
mapp:=map.MIMapGen as DMIMapGen;
mapp.zoommap(10);
发现可以操纵DMIMapGen派遣接口,但一点反映也没有;问题是不知在何时、何地使用这个派遣接口?
在文件中,得知
class function CoMapInfoApplication.Create: DMapInfo;
begin
Result := CreateComObject(CLASS_MapInfoApplication) as DMapInfo;
end;
也就是CoMapInfoApplication构造时,返回的函数类型就是DMapInfo,但我又想使用
IMapInfo接口,我该怎么办呢?
这些问题已经困扰我好多天了,请各位大侠拔刀相助。。。。