【问题标题】:Initialize integer value while declaration vb6在声明 vb6 时初始化整数值
【发布时间】:2016-06-27 21:42:59
【问题描述】:

在声明过程中我应该如何初始化变量值。

我正在使用 VB6, 我试过了

公共 i 作为整数 = 0

但我有错误

预期:语句结束,“=”突出显示

我想将初始值设置为 0。

从 cmets 编辑:

我想在没有数据库帮助的情况下创建一个登录表单..

模块:所以我创建了一个用户名(1到10)--数组和密码(1到10)数组

form1 每次 i 的值递增时,我想最多注册 10 个用户 //form// i=1 register_user(i)=uname register_pass(i)=upass i=i+1 //end// 但是每次我去那个表单的时候,值又被设置为1,我该怎么办。

【问题讨论】:

标签: vba vb6


【解决方案1】:

在 VBA 和 VB6 中,您不能初始化变量。您必须使用可执行语句。

但是,每个变量都有一个默认的初始化值。

来自VB6 documentation

当变量被初始化时,一个数值变量被初始化为 0,变长字符串初始化为零长度字符串 (""),固定长度的字符串用零填充。变体 变量被初始化为空。用户定义的每个元素 类型变量被初始化为一个单独的变量。

所以实际上,在你的情况下,

public i as integer = 0

不起作用,但下一个词干确实起作用,而且就是这样做的:

public i as integer

【讨论】:

  • 这就是你的答案。 “当变量被初始化时,一个数值变量被初始化为 0。”如果您还没有打开本地窗口并转到相关的子窗口。按 F8 一次进入它并查看公共变量。它已经被设置为 0。这是整数的默认值。
【解决方案2】:

我认为问题在于您试图在声明时实例化一个公共变量...Dim i As Integer: i = 1 有效,但不是公共的。您可以这样做,也可以声明公共变量,然后在 sub 的第一行实例化它。

【讨论】:

  • 这就是我想做的事情。我想在没有数据库帮助的情况下创建一个登录表单。模块//所以我创建了一个用户名(1到10)--数组和密码(1 to 10) array end module//然后在form1中//每次i的值递增时我想注册最多10个用户//form// i=1 register_user(i)=uname register_pass(i)=upass i=i+1 //end// 但是每次我去那个表单的时候,值又被设置为 1 我该怎么办。
  • @M.Jags 您应该在问题中包含此类信息,方法是使用其下方的“编辑”链接。我已经复制了您在此处发布的内容,但我认为它的格式可以更好并且更完整。由于我不完全确定您的意思,因此我或多或少将其“保持原样”并希望您将其清理干净...
【解决方案3】:

Vacip 按照您的要求将其设置为 0 来回答它,但是要在此基础上进行构建...如果您需要一个公共变量以不同于默认值的方式启动,您可以在第一次将其设置为该值它在一个子中被调用。

如果您有多个 subs 可能第一次调用它,然后它被来回传递,您需要检查以确保它尚未设置。您可以使用公共布尔值来做到这一点。

如果您打开本地人并逐步执行此操作,您会看到一种方法。

Public iTesti As Integer 'defaults to 0
Public bTesti As Boolean 'defaults to FALSE

Public Sub testi()
If bTesti = False Then 'btesti is false and iteseti is 0
    iTesti = 1
    bTesti = True
End If
iTesti = 2
testi2
End Sub

Public Sub testi2()
If bTesti = False Then 'btesti is true and itesti is 2
    iTesti = 1
    bTesti = True
End If
iTesti = 3
End Sub

【讨论】:

    猜你喜欢
    • 2016-09-26
    • 2012-07-18
    • 2011-03-06
    • 1970-01-01
    • 2013-12-01
    • 1970-01-01
    • 2011-04-15
    • 1970-01-01
    • 2012-12-07
    相关资源
    最近更新 更多