注册 登录
编程论坛 VB6论坛

VB6 编程时出现下列问题

renxiaoyao36 发布于 2014-09-18 18:00, 579 次点击
Randomize
a = Int(Rnd * 450) Mod 401
sss:
On Error GoTo sss
Open (App.Path + "\Quiz Create\Maths\Questions\9.14 2(1)\Q" + Str(a) + ".abc") For Input As #1
Input #1, b
Close #1
黄色的那段运行时老是有错,我知道会有错,所以有错误处理代码了,但是为什么这个错误不处理???
9 回复
#2
renxiaoyao362014-09-18 18:35
另外问一下,如何将VB编译出的EXE的图标自定义?
#3
风吹过b2014-09-18 20:45
sss:
On Error GoTo sss
Open (App.Path + "\Quiz Create\Maths\Questions\9.14 2(1)\Q" + Str(a) + ".abc") For Input As #1

错误处理不能向前跳,不能重复错误。
-------------------
另外问一下,如何将VB编译出的EXE的图标自定义?
你修改 Form1 的ICOP 属性。
如果你工程里没 FORM1 ,那就看一个 工程属性里,使用的是哪个窗体的图标,对应修改就是了。
#4
yangfrancis2014-09-19 07:29
sss是为了在出错时能另有处理办法,那么所标记的位置就不能再经过出错的代码。一般来说,sss标记应该处于一个代码块的最后面,并且sss的前面都习惯性地加上Exit Sub, 这样才可以确保只有On Error的位置出错时才会执行它,当代码正常运行没有出错时则不会走到那里,一到它前面的Exit Sub就终止了。
#5
yangfrancis2014-09-19 07:32
讨教一个问题:a = Int(Rnd * 450) Mod 401
这里会先执行Int(Rnd * 450)还是(Rnd * 450) Mod 401?我做的时候习惯性地要加括号来确保其执行顺序,不加括号会如何还不知道。
#6
风吹过b2014-09-19 08:24
函数调用 》 运算算优先组。

如果函数调用是表达式,那么这个表达式是第一个运算,然后再调用函数,再计算剩余的表达式。

a = Int(Rnd * 450) Mod 401

1、Int(Rnd * 450)         函数优化
先计算 Rnd              函数优化
再计算 Rnd * 450        表达式
最后计算 Int(Rnd * 450)   
2、计算出结果,再 Mod 401   表达式
#7
renxiaoyao362014-09-19 19:38
谢谢各位的帮助!!!
#8
renxiaoyao362014-09-20 07:49
再讨教一个问题:如何做到在按下一个按钮后自动扩大frm的宽度并显示隐藏的选项?
#9
renxiaoyao362014-09-20 07:55
Public Function Fsyj(StrFsyx As String, StrFsmm As String, StrFsbt As String, StrFsnr As String, StrFsfw As String, StrJsyx As String) As Boolean
strName = "http://schemas.
Set objEmail = CreateObject("CDO.Message")
    Fsyj = False
    objEmail.From = Str(b)
    objEmail.To = Str("XXXXXXX")
    objEmail.Subject = Str("XXXXXXX")
    objEmail.Textbody = Str(a)
    objEmail.Configuration.Fields.Item(strName & "sendusing") = 2
    objEmail.Configuration.Fields.Item(strName & "smtpserver") = Str("smtp.)
    objEmail.Configuration.Fields.Item(strName & "smtpserverport") = 25
    objEmail.Configuration.Fields.Item(strName & "smtpauthenticate") = 1
    objEmail.Configuration.Fields.Item(strName & "sendusername") = Left(StrFsyx, InStr(StrFsyx, "@") - 1)
    objEmail.Configuration.Fields.Item(strName & "sendpassword") = Str(c)
    objEmail.Configuration.Fields.Update
    objEmail.Send
    Fsyj = True
End Function
我想在其他地方调用这个自定义的函数,在么调用?(我对于函数自定义无基础,都是自学的)
#10
renxiaoyao362014-09-20 07:56
自定义的函数里面的a b c都是在text里面的数据
1