【问题标题】:Visual Basic 6 Dynamic VariablesVisual Basic 6 动态变量
【发布时间】:2010-12-23 15:34:18
【问题描述】:

我正在使用 vb6 做一个程序,它以坐标的形式存储来自 mouseclick 的数据。我成功地完成了显示点击坐标的第一阶段。我现在的问题是我需要以变量的形式保存坐标,以便我可以将它们回调以用于其他目的,例如查找两点之间的距离。

如果它只有两个坐标,则更容易找到距离。但是当涉及到许多坐标时,我被卡住了。我试图做一个数组来存储循环内的数据

 1. InputX(ListNum, 0) = Int(x)
 2. InputY(ListNum, 1) = Int(y) 
 3. ListNum=ListNum+1

当我尝试拨打InputX(2,0) = Text1.Text or Text1.Text=InputX(2,0) 时,他们都没有工作。好像鼠标点击后数据会被删除

有什么方法可以设置动态变量来存储我点击的坐标,例如 Input1,Input2,Input3 ...InputN

我在 VB6 中执行此操作。

【问题讨论】:

    标签: variables vb6 dynamic


    【解决方案1】:

    您遇到的问题是您在那里使用了一个二维数组。二维数组看起来像一张表。但这不是你想要的。你想要一个点对列表。因此,创建一个包含两个整数 x 和 y 的结构,并创建一个包含这些结构的数组:

    'Right underneath your Class Form1 declaration:
    
    Structure Point
        Dim x As Integer
        Dim y As Integer
    End Structure
    Dim length As Integer = 10
    Dim Points(length) As Point
    
    
    'When you want to start using your points put this in the method:
    
    Points(0).x = 10
    Points(0).y = 10
    Points(1).x = 20
    Points(1).y = 40
    

    【讨论】:

      【解决方案2】:

      VB6 中的动态变量

      首先你声明变量而不给出大小:

      Dim InputX() As String
      

      然后你第一次使用 ReDim 为你的数组指定大小:

      ReDim InputX(5)
      

      如果您想保留阵列中已有的任何数据,请使用 ReDim Preserve:

      ReDim Preserve InputX(10)
      

      我希望这是你需要的。

      【讨论】:

      【解决方案3】:

      看来是第一种方法

      Text1.Text=InputX(2,0)

      正在工作。我只需要将 x 和 y 声明为 Single

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2017-09-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多