注册 登录
编程论坛 VB6论坛

我定义的变量取不出来是那里出了问题,求教

q519708218 发布于 2021-08-02 20:22, 1302 次点击
为什么我定义的变量取不出来是那里出了问题,求位大虾解答下,本人是  vb 新人 谢谢
只有本站会员才能查看附件,请 登录
只有本站会员才能查看附件,请 登录
5 回复
#2
q5197082182021-08-02 20:24
求取 运算符的的变量  ,在线等待
#3
q5197082182021-08-02 20:28

Private Sub Command1_Click(Index As Integer)
Dim 上一次的值  As Double
Dim 运算符  As String
上一次的值 = 0
运算符 = "+"



End Sub

Private Sub 按键1_Click(Index As Integer)

Print (运算符)
If 编辑框1.Text = "0" Then
编辑框1.Text = 1
Else
编辑框1.Text = 编辑框1.Text + "1"
End If
End Sub
#4
q5197082182021-08-02 20:50
Private Sub Command1_Click(Index As Integer)
Dim 上一次的值  As Double
Dim 运算符  As String
上一次的值 = 0
运算符 = "+"
End Sub

Private Sub 按键1_Click(Index As Integer)
Print (运算符)
我的 “运算符 = "+" ” 里面什么也取不出来,明明已经赋值了 ,但就是没有 大神,帮忙看看啦,


[此贴子已经被作者于2021-8-2 20:52编辑过]

#5
风吹过b2021-08-02 22:32
变量的作用域,你去翻翻书就明白了。这里简单说一下。

每个变量都有作用域,如全局变量,整个工程可见;局部变量,部分代码内可访问。

在bas模块中,使用 public 关键字定义的变量为 全局变量,在整个工程范围内可见,可读可写。这种变量定义在数据段里。VB6好像有点不同。
在bas模块中使用 dim 或 private 定义的变量, 为模块局部变量,在整个BAS代码均可读可写,非这个BAS模块则不可见。
在窗体代码中使用 public 关键字定义的变量为 窗体的全局变量,在窗口存活期内,整个工程可读可写,窗体外访问时,加上窗体的名字。类似于窗体的一个属性。
在窗体代码使用  dim 或 private 定义的变量,为窗体局部变量,在窗口代码中可读可写,外部不可访问。

在过程/函数 中使用 public 定义变量,报错。
在过程/函数 中使用 dim 或 private 定义变量,为局部变量,在过程/函数中才能访问,过程/函数结束后自动销毁。这种变量定义在堆栈里。
在过程/函数 中使用 Static 定义的变量,为局部变量,好像是定义在数据段里,在过程/函数才能访问,过程/函数结束后继续保持值不变。



#6
风吹过b2021-08-02 22:35
具体到你的代码中,
这是二个过程,第一个过程定义的变量,在第二个过程中,无法访问的,所以在第二个过程中取不到值 。

修改方法:
定义为窗体 局部变量,把定义的这行放到所有 过程之前。

Dim 上一次的值  As Double
Dim 运算符  As String

Private Sub Command1_Click(Index As Integer)
上一次的值 = 0
运算符 = "+"
End Sub
........
1