尽管ArcToolbox提供的工具单中包含了很多工具,但你也许苻约蛳夹仍想增加ArcToolbox的功能,以便自己执行额外的任务缕计瓤账.你可以通过开发和安装符合你需要的新工具来做到这一点.一个定制工具既可以是executable(可执行的),也可以是包含在dynamiclinklibrary(DLL,动态连接库)中的。可执行的可以是运行在你使用的平台上运行的任何应用程序,它可以是一个wordprocessor(字处理器),也可以是spreadsheet(扩展),还可以是一个补充你所用的ArcToolbox的CAD应用程序。如果你有一个DLL那么要使它能够工作,就必须使它满足一些简单的要求。定制工具必须要做到能完全自我配套。ArcToolbox只提供Arc自动服务器,它允许使用具有完整功能的Arc模板。定制工具必须能处理所有有效运行和错误检查工作。重要的是,在安装一个工具之前应尽可能地将它们建得稳定一些。如果一个定制工具运行失败,ArcToolbox将会监测所有工具的退出状态,从而防止因该定制工具的停止运行而导致其它工具的失效。
创建VB类
1、打开VisualBasic6.0,再双击ActiveXDLL。
2、点击Project菜单,再点击Reference。
3、选ESRIArc瞢铍库祢automationserver,ESRIUtilautomationserver和ESRIArcToolboxInterfaces。点击OK。
4、点击类模块的Name属性,并用键盘输入"clsDescribe",作为其新名字。
5、关于这个类的VisualBasic代码,可以参阅附录A。用键盘输入该代码或从在线Help系统中对它进行复制和粘贴。将该代码添加到代码窗口。
6、点击File菜单,再点击SaveProjectas。用键盘输入"describe.cls"给class命名,再点击Save。
创建工具窗体
1、在VisualBasic中点击Project,再点击AddForm,添加一个常情写硎霈规窗体,将其Name属性设置为"frmDescribe";将其Cap墉掠载牿tion属性设置为"Describe"。
2、通过在General工具箱上点击各自的按钮并将它们放置在该工具窗体中,添加一个文本框、一个列表框、一个标签和两个按钮控件。
3、将控件命名如下:
4、用键盘向cmdOK的Caption属性中输入"OK",向cmd觊皱筠桡Cancel的Caption属性中输入"Cancel"。
5、将txtInput文本框的Text属性变成空白,然后用键盘在lbllInput擢爻充种的Caption属性中输入"Inputdataset:"。
6、用键盘输入“8655”作为lstOutput的宽度,以twips为单位。将font鸷拳林根改变为CourierNew,大小为8。通过拖动窗体的边框或设置窗体的Width属性,将窗体变宽使泺粜嗨埘之能容纳lstOutput。
7、点击File菜单,再点击savefrmDescribeAs。用键盘输入“describe.frm”作为该窗体的文件名。
8、点击File菜单,再点击SaveProjectAs。用键盘输入“Describe”作为该工程的文件名。
9、关于窗体的VisualBasic代码,可以参阅ArcGIS在线帮助文档。
10、点击Save按钮,保存窗体和工程。
11、点击File菜单,再喘揲塾疖点击MakeDescribe.dll。如果出现错误,请检查代码,确保是否与ArcGIS在线帮助文档中代码一致。在你的工程的同一位置将创建一个DLL。
12、退出VisualBasic或者将它最小化。
添加DLL
1、双击MyTools,再点击AddaCustomToolWizard。
2、点击Browser按钮。指向你前面创建的Describe.dll。
3、将destinationfolder(目的文件夹)作为默认状态:MyTools,点击next。
4、点击Selectyourtool的下拉箭头,再点击你想要的那个类(class)。由于Describe.dll只包含一个类,因此它是现有的唯一选择。
5、点击Next。
6、用键盘输入"Dataset"作为Describe所要求的参数。点击Next。
7、用键盘输入"Describe"作为该工具的名称。
8、用键盘输入有关该工具的简洁文字描述.再点击Next。
9、在Commands文本框中用键盘输入"Describe"。
10、用键盘输入几个可用来找到该工具的关键词,点击Next。
11、检查担了summarypage(概括/总览页),确认所有资料都是正确的。在完成以后,点击Finish。
12、在ArcToolbox树下双击MyTools。
13、双击Describe。在文本框中输入一个coverage的path(路径),点击OK。
14、在使用完这个工具后,点击Cancel。