yjxtgy
路人甲
路人甲
  • 注册日期2003-07-31
  • 发帖数156
  • QQ
  • 铜币283枚
  • 威望0点
  • 贡献值0点
  • 银元0个
阅读:1746回复:3

改变图元大小出错

楼主#
更多 发布于:2003-12-09 10:12
各位大虾,我写了一个改变图元的简易程序,但是会出错,请问谁知道原因?

procedure TForm1.Button1Click(Sender: TObject);
var
    ftrs:mapxlib_tlb.features;
    ftr:mapxlib_tlb.feature;
    lyr:mapxlib_tlb.layer;
    vl_style : mapxlib_tlb.style;
    name1:string;

begin
    lyr:=Map1.Layers.Item('无标题');
    ftrs:=lyr.AllFeatures;
    ftr:=ftrs.Item(2);
    name1:=ftr.Style.SymbolBitmapName;
    vl_style := costyle.Create;  //由于直接用style无法改变图元大小,所以听取高手意见用自建的变量试试看,再复制回去
    vl_style.SymbolType := miSymbolTypeBitmap;
    vl_style.SymbolBitmapTransparent := true;  //这有什么用??
    vl_style.SymbolBitmapName := name1 ;

    vl_style.SymbolBitmapSize:= 50;
    ftr.Style := vl_style.Clone;   //到了这里就会出错,好像说是超出mapx的控减范围
    ftr.Update(EmptyParam,EmptyParam);

end;
喜欢0 评分0
gis1117
  • 注册日期
  • 发帖数
  • QQ
  • 铜币
  • 威望
  • 贡献值
  • 银元
1楼#
发布于:2003-12-09 15:27
下面是创建一个自定义BMP符号的代码(可以参考):转echo2003
Dim  f4 As New MapXLib.Feature
    f4.Attach Map1
    f4.Style.SymbolType = miSymbolTypeBitmap
    
    f4.Style.SymbolBitmapColor = miColorGreen
    f4.Style.SymbolBitmapName = "GLOB1-32.BMP"
    f4.Style.SymbolBitmapSize = 24
    f4.Point.Set f4.CenterX, f4.CenterY
    
     pt.Set x, y
    
     Set f4 = Map1.FeatureFactory.CreateSymbol(pt, ftr)

     Map1.Layers.Item("11_jh_BOUND").AddFeature f4




[此贴子已经被作者于2003-12-9 15:28:35编辑过]
举报 回复(0) 喜欢(0)     评分
echo2003
点子王
点子王
  • 注册日期2003-07-28
  • 发帖数2453
  • QQ76947571
  • 铜币5473枚
  • 威望1点
  • 贡献值0点
  • 银元0个
  • GIS帝国居民
2楼#
发布于:2003-12-09 16:08
vl_style.SymbolBitmapSize:= 50;
这句话有错误!最大是48,你写成50,当然会抱错了!
举报 回复(0) 喜欢(0)     评分
yjxtgy
路人甲
路人甲
  • 注册日期2003-07-31
  • 发帖数156
  • QQ
  • 铜币283枚
  • 威望0点
  • 贡献值0点
  • 银元0个
3楼#
发布于:2003-12-11 08:23
对就是这个错,现在终于搞定了!谢谢!
举报 回复(0) 喜欢(0)     评分
echo2003
点子王
点子王
  • 注册日期2003-07-28
  • 发帖数2453
  • QQ76947571
  • 铜币5473枚
  • 威望1点
  • 贡献值0点
  • 银元0个
  • GIS帝国居民
4楼#
发布于:2003-12-11 08:32
搞定就好!
举报 回复(0) 喜欢(0)     评分
游客

返回顶部