honghu
路人甲
路人甲
  • 注册日期2003-08-06
  • 发帖数113
  • QQ
  • 铜币292枚
  • 威望0点
  • 贡献值0点
  • 银元0个
阅读:1614回复:2

请教,MO的图例问题

楼主#
更多 发布于:2004-08-08 21:20
<P>我在设置图例为通过唯一值显示时遇到这样的问题;</P>
<P>在图例设置窗口选择通过combobox选择唯一值图例。然后利用字段进行显示图例。我想点击字段,在图例设置窗口就自动更新图例显示。但是现在遇到了这样的问题。第一次显示正确,再次点击时说对象不能在上下文中卸载。请问如何解决。</P>
<P>代码如下</P>
<P>Private Sub cboFieldname_Click()</P>
<P>Call showUniqueSymbol(cboFieldname.Text)</P>
<P>End Sub</P>
<P>Private Sub showUniqueSymbol(rendField As String)
  
  
  Dim strsFieldValue As New MapObjects2.Strings
  Set fld = flds(rendField)
  If fld Is Nothing Then Exit Sub
  
  recs.MoveFirst
  Do While Not recs.EOF
    strsFieldValue.Add fld.Value
    recs.MoveNext
  Loop
  
  If picUniqueSym.Count > 1 Then
    For i = (picUniqueSym.Count - 1) To 1 Step -1
      Unload picUniqueSym(i)
      Unload txtUniqueValue(i)
    Next
  End If
  
  Set vmr = New MapObjects2.ValueMapRenderer
  vmr.Field = rendField
  vmr.ValueCount = strsFieldValue.Count
  
  For i = 0 To strsFieldValue.Count - 1
    vmr.Value(i) = strsFieldValue(i)
  Next i
  
  'picUniqueSym(0).Visible = True
  
  
  picUniqueSym(0).BackColor = vmr.Symbol(0).Color
  txtUniqueValue(0).Text = vmr.Value(0)
  For i = 1 To strsFieldValue.Count - 1
    Load picUniqueSym(i)
    With picUniqueSym(i)
      .Left = picUniqueSym(0).Left
      .Width = picUniqueSym(0).Width
      .Height = picUniqueSym(0).Height
      .Top = picUniqueSym(i - 1).Top + 260
      .BackColor = vmr.Symbol(i).Color
      .Visible = True
    End With
    Load txtUniqueValue(i)
    With txtUniqueValue(i)
      .Left = txtUniqueValue(0).Left
      .Width = txtUniqueValue(0).Width
      .Height = txtUniqueValue(0).Height
      .Top = txtUniqueValue(i - 1).Top + 260
      .Text = vmr.Value(i)
      .Visible = True
    End With
  Next i
End Sub</P>
喜欢0 评分0
gis
gis
管理员
管理员
  • 注册日期2003-07-16
  • 发帖数15945
  • QQ554730525
  • 铜币25337枚
  • 威望15352点
  • 贡献值0点
  • 银元0个
  • GIS帝国居民
  • 帝国沙发管家
  • GIS帝国明星
  • GIS帝国铁杆
1楼#
发布于:2004-08-09 08:12
先把上次的结果清空吧?
举报 回复(0) 喜欢(0)     评分
honghu
路人甲
路人甲
  • 注册日期2003-08-06
  • 发帖数113
  • QQ
  • 铜币292枚
  • 威望0点
  • 贡献值0点
  • 银元0个
2楼#
发布于:2004-08-09 12:46
<P>把什么清空呢,我想卸载</P><P>If picUniqueSym.Count > 1 Then
    For i = (picUniqueSym.Count - 1) To 1 Step -1
      Unload picUniqueSym(i)
      Unload txtUniqueValue(i)
    Next
  End If</P><P>但是不行啊
</P>
举报 回复(0) 喜欢(0)     评分
游客

返回顶部