mapbasic高级编程中的一些问题.docxVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
mapbasic高级编程中的一些问题

在VB6中使用callback我将MapBasic提供的关于如何在Visual Basic 中使用CallBack的样例程序,在VB6中打开运行时,VB会报出如下的错误信息:“实时错误 98:一个属性或方法调用不能包含对一个私有对象的调用,无论是作为参数还是返回值。” Why?Re:这个错误信息完全是由用户的 VisualBasic 调试环境设置不当造成的,与MapBaic提供的程序无关。解决如下:由 “工程” “工程属性” 进入工程属性对话框,并进行如下的设置。通用:工程类型,ActiveX EXE;启动对象 Sub Main;升级ActiveX 控件。生成:删除有关未使用的ActiveX控件的信息部件:启动模式,独立方式。调试:启动工程时等待创建部件。如果用户还未在自己的工程中建立 Sub Main,则应当在模块中建立一个 Sub Main过程。在 Delphi 中调用 callback在用Delphi调用MapBasic的Callback时,Delphi的函数并未被调用.我是用Delphi中的ActiveX作为Callback类,是否能提供关于Callback的Delphi例子.。答:我想你在Delphi中定义一个包含OLE事件的类后,应该把自己定义的Delphi函数名在这个类程序中声明一下,作为一个OLE对象(我估计这个函数是你自己的custom command),再在Delphi应用程序中用map application给这个对象赋予一个ID号,就可以调用了。我手上有一段例子,是用map application的setcallback进行调用的,copy给你,希望有所启发:{以下这个单元用来定义包含OLE事件的类并声明你自己定义的Delphi函数名}unit MyAuto;interfaceuses OleAuto,forms,windows,controls,messages,sysutils,classes;typeTMyAuto = class(TAutoObject)privateFMyProp: string;function GetMyProp: string;procedure SetMyProp(S: string);publicconstructor Create; override;automatedprocedure querytool(s:string); // 你自己定义的对象名property MyProp: string read GetMyProp write SetMyProp;end;implementationusesDialogs;constructor TMyAuto.Create;begininherited Create;end;procedure TMyAuto.SetMyProp(S: string);beginFMyProp := S;end;procedure TMyAuto.querytool(s:string);beginfgdmain.searchpoint(s); //Delphi程序中调用的函数名end;function TMyAuto.GetMyProp: string;beginResult := FMyProp;end;procedure RegisterMyAuto;constAutoClassInfo: TAutoClassInfo = (AutoClass: TMyAuto;ProgID: AUTOPROJ.MyAuto;ClassID: {FE67CF61-2EDD-11CF-B536-0080C72EFD43};Description: Sam;Instancing: acInternal);beginAutomation.RegisterClass(AutoClassInfo);end;initializationRegisterMyAuto;end.{以下是在Delphi应用程序中调用,因程序太长,我就不全盘copy了}:procedure Tform1.FormCreate(Sender: TObject);var myauto1:tmyauto; mi,miresp:variant;beginmi:=createOleObject(mapinfo.application);myauto1:=Tmyauto.create;miresp:=myauto1.oleobject;mi.do(set application window + intTostr(handle));mi.setcallback (miresp); //在mbapplication中只有setcallback调用OLE对象mi.do(Create Buttonp

文档评论(0)

shenlan118 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档