【问题标题】:VB6: Object Variable or With Block Variable Not SetVB6:对象变量或块变量未设置
【发布时间】:2016-05-22 04:21:33
【问题描述】:

目前正在学习 vb6 的高中生在尝试设置这些图像框的左值和上值时遇到了这个主要问题。我不断收到错误:

对象变量或未设置块变量

并且调试似乎将其引导到左侧和顶部值变量。

Option Explicit

Dim GapY As Integer
Dim GapX As Integer

Dim x As Integer
Dim y As Integer

Dim Tile() As Image
Dim NumOfTiles

Dim h, i As Integer 'Counter       

Private Sub cmdRender_Click()
    x = 480
    y = 480

    GapX = Val(InputBox("Enter How Many tile you want horizontally:"))
    GapY = Val(InputBox("Enter How Many tile you want vertically"))

    NumOfTiles = (GapY * GapX)

    ReDim Tile(NumOfTiles)

    For i = 1 To GapY
        For h = 1 To GapX

           Tile(h).Height = 615
           Tile(h).Width = 615
           Tile(h).Left = x
           Tile(h).Top = y         
           'Tile(h).Stretch = True
           x = x + 600
        Next
        y = y + 600
        x = 480
    Next                
End Sub

【问题讨论】:

    标签: vb6


    【解决方案1】:

    您尚未将任何图像分配给您的 tile 数组,即您有一个包含 NumOfTiles 空位置的数组。

    我不知道您从哪里获取图像。您可以使用new Image 创建图像或从文件中读取图像或从表单上的图像框中获取它们等。


    您可能想使用PictureBox 控件。如果您在表单上有这样的控件,则必须这样输入数组

    Dim Tile() As PictureBox
    ReDim Tile(NumOfTiles) As PictureBox
    

    然后从您的表单中分配它们(假设您在表单上放置了一些):

    Set Tile(1) = pictureBox1
    Set Tile(2) = pictureBox2
    ...
    

    或在循环中

    For i = 1 To NumOfTiles
        Set Tile(i) = Me("pictureBox" & i)
        Tile(i).Left = ...
    Next
    

    或者用类似这样的方式在表单上创建它们(我没有尝试过)

    Set Tile(i) = Me.Controls.Add("VB.PictureBox", "pictureBox" & i)
    

    【讨论】:

    • 我希望图像框暂时保持空白,但这不是我的问题所在。这是我尝试更改图像框属性之一的时刻,例如 .left 和 .top。
    • Tile(i)Nothing,即图片框不为空,根本不存在!
    • 奥利维尔是对的。您创建了一个数组来保存图像,但没有实际图像。就像您创建了一堆没有鞋子的鞋盒。你可以把一只鞋放进盒子里,但在你把一只鞋放进盒子里之前,你不能用一只鞋做任何事情。因此,当那里没有鞋时,您的意思相当于“将鞋带系在盒子 1 中”。
    • 感谢你们,这真的很有帮助。
    • 不客气。另外,由于您是 StackOverflow 的新手,我想通知您,您可以通过勾选答案旁边的勾号来为好的答案投票并接受对您帮助最大的答案。在本网站上,点赞或接受的答案都算作“感谢”。
    猜你喜欢
    • 1970-01-01
    • 2016-06-08
    • 2018-12-11
    • 2013-07-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多