whereto
路人甲
路人甲
  • 注册日期2004-12-07
  • 发帖数7
  • QQ
  • 铜币153枚
  • 威望0点
  • 贡献值0点
  • 银元0个
阅读:2515回复:5

坚定地用delphi来开发(fullextent问题之解决)

楼主#
更多 发布于:2005-07-11 16:39
<P>感谢大家曾对我的帮助,我用delphi开发(VB我用着觉得累,hehe,不熟啊)</P>
<P>一开始我用9.0,结果放大不行,后来就改用8.3,后来发现TOC控件只有AE有,就又改AE,可惜我问的相关的问题竟没人回答我,唉,我多么希望多交几个delphi开发的朋友啊。</P>
<P>在AE中遇到一个问题,就是全局显示不行</P>
<P>mapcontrol1.Extent:=mapcontrol1.FullExtent;</P>
<P>提示说找不到成员,我想,就给你一个成员如何</P>
<P>结果就用下面的语句解决了</P>
<P>MapControl1.ActiveView.Set_Extent(mapcontrol1.FullExtent);</P>
<P>在此贴出来,给广大delphi开发者一个信心,问题总能解决的。</P>
喜欢0 评分0
lizehua1394
路人甲
路人甲
  • 注册日期2006-02-21
  • 发帖数76
  • QQ
  • 铜币19枚
  • 威望0点
  • 贡献值0点
  • 银元0个
1楼#
发布于:2006-07-26 08:36
<P>太感谢了 以前虽然做过ao方面的开发 可是刚接触delphi  遇到很多问题 一下子把我给打蒙了 希望以后多交流 我qq263460976</P>
举报 回复(0) 喜欢(0)     评分
whereto
路人甲
路人甲
  • 注册日期2004-12-07
  • 发帖数7
  • QQ
  • 铜币153枚
  • 威望0点
  • 贡献值0点
  • 银元0个
2楼#
发布于:2005-07-12 17:06
<P>楼上高手,还有一事请教:象VB中这种代码如何转成delphi呢?</P>
<P>  'Get the IRGBColor interface<BR>  Dim pColor As IRgbColor<BR>  Set pColor = New RgbColor<BR>  'Set the color properties<BR>  pColor.RGB = RGB(255, 0, 0)</P>
<P>  'Get the ILine symbol interface<BR>  Dim pOutline As ILineSymbol</P>
<P>我这么转行吗:</P>
<P>var<BR> pcolor:IRgbColor;<BR> pOutline:ILineSymbol;<BR>begin</P>
<P>//  pColor := New RgbColor   ?这句要不要转的?比如说用create什么的<BR>  pColor.Set_RGB(255);</P>
举报 回复(0) 喜欢(0)     评分
areson
路人甲
路人甲
  • 注册日期2005-03-13
  • 发帖数8
  • QQ
  • 铜币119枚
  • 威望0点
  • 贡献值0点
  • 银元0个
3楼#
发布于:2005-07-12 10:34
回复
engine是com编程,通常com编程获取属性、数值是采用get的方法,付值是采用set的方法,不过D5和D7在import esri的类库时,个别方法D7在set的时候是采用_set,注意一下就可以了。
举报 回复(0) 喜欢(0)     评分
whereto
路人甲
路人甲
  • 注册日期2004-12-07
  • 发帖数7
  • QQ
  • 铜币153枚
  • 威望0点
  • 贡献值0点
  • 银元0个
4楼#
发布于:2005-07-11 22:53
<P>MapControl1.Extent:=MapControl1.TrackRectangle ;也是找不到成员错误,现在知道答案了,应该用set_extent,楼上的兄弟你是如何从VB中得知的?</P>
<P>另外有delphi取属性字段值的代码吗?</P>
举报 回复(0) 喜欢(0)     评分
areson
路人甲
路人甲
  • 注册日期2005-03-13
  • 发帖数8
  • QQ
  • 铜币119枚
  • 威望0点
  • 贡献值0点
  • 银元0个
5楼#
发布于:2005-07-11 19:28
<P>9.0放大是什么不行?我也是用delphi开发的。分享一下放大的代码(从例子中的VB代码翻译而已)</P>
<P>///图形(页面)放大<BR>procedure MapPageZoomIn(pControl: IDispatch);<BR>var<BR>  pvActView: IActiveView;<BR>  pvMapControl: IMapControlDefault;<BR>  pvPageLayOutControl: IPageLayoutControlDefault;<BR>  newEnvelope, oldEnvelope: IEnvelope;<BR>  New_Height, New_Width: Double;<BR>begin<BR>  if pControl.QueryInterface(DIID_IMapControlDefault, pvMapControl) = S_OK then<BR>  begin<BR>    pvActView := pvMapControl.ActiveView;<BR>    newEnvelope := pvMapControl.TrackRectangle;<BR>  end;<BR>  if pControl.QueryInterface(DIID_IPageLayoutControlDefault, pvPageLayOutControl) = S_OK then<BR>  begin<BR>    pvActView := pvPageLayOutControl.ActiveView;<BR>    newEnvelope := pvPageLayOutControl.TrackRectangle;<BR>  end;<BR>  pvActView.Get_Extent(oldEnvelope);<BR>  if VarIsClear(oldEnvelope) then<BR>    Exit;<BR>  newEnvelope.Get_Height(New_Height);<BR>  newEnvelope.Get_Width(New_Width);<BR>  if (New_Height=0) and (New_Width=0) then<BR>  begin<BR>    oldEnvelope.Expand(0.75, 0.75 , True);<BR>    pvActView.Set_Extent(oldEnvelope);<BR>  end else<BR>    pvActView.Set_Extent(newEnvelope);<BR>  pvActView.Refresh;<BR>end;</P>
举报 回复(0) 喜欢(0)     评分
游客

返回顶部