⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 frmshowfeatures.frm

📁 MapX5.02紧缩表等地图数据维护源码。
💻 FRM
字号:
VERSION 5.00
Object = "{5E9E78A0-531B-11CF-91F6-C2863C385E30}#1.0#0"; "msflxgrd.ocx"
Begin VB.Form frmShowFeatures 
   Caption         =   "显示选择集"
   ClientHeight    =   6135
   ClientLeft      =   60
   ClientTop       =   345
   ClientWidth     =   7995
   LinkTopic       =   "Form1"
   ScaleHeight     =   6135
   ScaleWidth      =   7995
   StartUpPosition =   1  'CenterOwner
   Begin MSFlexGridLib.MSFlexGrid MSFlexGrid 
      Height          =   5535
      Left            =   0
      TabIndex        =   2
      Top             =   600
      Width           =   8055
      _ExtentX        =   14208
      _ExtentY        =   9763
      _Version        =   393216
      FixedCols       =   0
      BackColorBkg    =   16777215
      AllowUserResizing=   1
   End
   Begin VB.ComboBox cbLayers 
      Height          =   315
      Left            =   1200
      TabIndex        =   1
      Top             =   200
      Width           =   3135
   End
   Begin VB.Label lblFtrCount 
      Height          =   255
      Left            =   4800
      TabIndex        =   3
      Top             =   240
      Width           =   2295
   End
   Begin VB.Label Label1 
      Caption         =   "图层名称:"
      Height          =   255
      Left            =   120
      TabIndex        =   0
      Top             =   240
      Width           =   975
   End
End
Attribute VB_Name = "frmShowFeatures"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
'********************************************************************************
'File Name   :frmShowFeatures.frm
'Description :show features property data selected in layers
'Author      :James Liu
'Copyright   :MapInfo China
'Create Date :2002年9月11日
'********************************************************************************

Private m_scurLayerName As String

Private Sub cbLayers_Click()
    If StrComp(m_scurLayerName, Trim(cbLayers.Text), vbTextCompare) <> 0 Then
        m_scurLayerName = Trim(cbLayers.Text)
        FillData m_scurLayerName
    End If
End Sub

Private Sub Form_Load()
On Error Resume Next

Dim oLayer As MapXLib.Layer
Dim oDS As MapXLib.Dataset
Dim oFtr As MapXLib.Feature
Dim oFtrs As MapXLib.Features
Dim bHasFtr As Boolean
Dim sLayerName As String
Dim i As Integer

    For Each oLayer In frmMain.Map.Layers
        If oLayer.Selection.Count > 0 Then
            cbLayers.AddItem Trim(oLayer.Name)
        End If
    Next oLayer
    
    If cbLayers.ListCount > 0 Then
        cbLayers.ListIndex = 0
        m_scurLayerName = cbLayers.List(0)
        
        '开始填充数据
        FillData m_scurLayerName
    Else
        cbLayers.Enabled = False
        MSFlexGrid.Enabled = False
        MsgBox "没有选择任何要素!"
    End If

End Sub

Private Sub FillData(ByVal sLayerName As String)
Dim oLayer As MapXLib.Layer
Dim oDS As MapXLib.Dataset
Dim oFtr As MapXLib.Feature
Dim oFtrs As MapXLib.Features
Dim bHasFtr As Boolean
Dim i As Integer, j As Integer, k As Integer

On Error Resume Next

    Set oLayer = frmMain.Map.Layers(sLayerName)
    lblFtrCount.Caption = oLayer.Selection.Count & " 个要素"
    Err.Clear
    Set oDS = frmMain.Map.DataSets(oLayer.Name)
    If Err.Number > 0 Then
        Set oDS = frmMain.Map.DataSets.Add(miDataSetLayer, oLayer, oLayer.Name)
        Err.Clear
    End If
    
'    Set oFtrs = New MapXLib.Features
    Set oFtrs = oLayer.Selection
    
    MSFlexGrid.Cols = oDS.Fields.Count
    MSFlexGrid.Rows = oLayer.Selection.Count + 1
    
    For i = 1 To oDS.Fields.Count
        MSFlexGrid.TextMatrix(0, i - 1) = oDS.Fields(i).Name
    Next i
    
    Screen.MousePointer = vbHourglass
    
    For k = 1 To oLayer.Selection.Count
        Set oFtr = oLayer.Selection.Item(k)
        For j = 1 To oDS.Fields.Count
            MSFlexGrid.TextMatrix(k, j - 1) = oDS.value(oFtr, j)
        Next j
    Next k
    
    Screen.MousePointer = vbDefault

End Sub

Private Sub Form_Resize()
    MSFlexGrid.Left = 0
    MSFlexGrid.Width = Me.Width - 100
    MSFlexGrid.Top = cbLayers.Top + cbLayers.Height + 200
    MSFlexGrid.Height = Me.Height - MSFlexGrid.Top - 400
End Sub

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -