闪电小绿 闪电小绿
关注数: 124 粉丝数: 150 发帖数: 1,975 关注贴吧数: 130
【求助】死循环 如题,在执行“Check1”时卡死 以下是有关的代码(不用管Module2里面的内容,那是网上抄的API) ,====================================Module1============================== Option Explicit Public T%, numbersonce%, x%(1 To 47), Time%, n%(1 To 5), NU% '生成随机数1-T Public Function Ran() As Integer Dim x As Integer Do Randomize x = Int(T * Rnd + 1) Loop Until x <> n(1) And x <> n(2) And x <> n(3) And x <> n(4) And x <> n(5) Ran = x End Function '制作列表 1 - T不重复 Public Function MakeList(T As Integer) As Long Dim a%(1 To 65535) Dim b%, i%, ii%, iii% For i = 1 To T a(i) = i Next i For iii = 1 To T - NU Do b = Ran() x(iii) = a(b) Loop Until x(iii) <> 0 a(b) = 0 Next iii MsgBox ("已生成列表") Time = 0 End Function '利用Ran() '显示列表 Public Function NumberListShow() As Integer If Time < T Then Time = Time + 1 NumberListShow = x(Time) Else: MsgBox ("当前列表已经显示完,正在生成下一组") Dim ML As Integer ML = MakeList(T) Time = 0 End If End Function '==========================Module2(写入ini的API)====================== Declare Function GetPrivateProfileString Lib "kernel32" _ Alias "GetPrivateProfileStringA" (ByVal lpApplicationName As String, _ ByVal lpKeyName As Any, ByVal lpDefault As String, _ ByVal lpReturnedString As String, ByVal nSize As Long, _ ByVal lpFileName As String) As Long Declare Function WritePrivateProfileString Lib "kernel32" _ Alias "WritePrivateProfileStringA" (ByVal lpApplicationName As String, _ ByVal lpKeyName As Any, ByVal lpString As Any, _ ByVal lpFileName As String) As Long '=============================================Form1===================== Dim F As String, S As String '就是这里↓↓↓ Private Sub Check1_Click() If numbersonce = 0 Then numbersonce = 1 Else: numbersonce = 0 End If Dim ML As Integer If numbersonce = 1 Then ML = MakeList(T) End If End Sub Private Sub Command1_Click() Form2.Show vbModeless Form1.Hide End Sub Private Sub Debug_Click() F = "抽学号:1-" S = F & T 抽学号.Caption = S End Sub Private Sub Exit_Click() End End Sub Private Sub Form_Load() Dim ret As Long Dim buff As String buff = String(255, 0) ret = GetPrivateProfileString("Numbers_Filtered", "第一个", "0", buff, 256, "c:aa.ini") n(1) = buff buff = String(255, 0) ret = GetPrivateProfileString("Numbers_Filtered", "第二个", "0", buff, 256, "c:aa.ini") n(2) = buff buff = String(255, 0) ret = GetPrivateProfileString("Numbers_Filtered", "第三个", "0", buff, 256, "c:aa.ini") n(3) = buff buff = String(255, 0) ret = GetPrivateProfileString("Numbers_Filtered", "第四个", "0", buff, 256, "c:aa.ini") n(4) = buff buff = String(255, 0) ret = GetPrivateProfileString("Numbers_Filtered", "第五个", "0", buff, 256, "c:aa.ini") n(5) = buff buff = String(255, 0) ret = GetPrivateProfileString("ColourRGB", "R", "256", buff, 256, "c:aa.ini") r1 = buff buff = String(255, 0) ret = GetPrivateProfileString("ColourRGB", "G", "256", buff, 256, "c:aa.ini") g1 = buff buff = String(255, 0) ret = GetPrivateProfileString("ColourRGB", "B", "256", buff, 256, "c:aa.ini") b1 = buff buff = String(255, 0) ret = GetPrivateProfileString("Numbers_Total", "班级总人数", "47", buff, 256, "c:aa.ini") T = buff F = "抽学号:1-" S = F & T 抽学号.Caption = S Form1.BackColor = RGB(r1, g1, b1) If numbersonce = 0 Then Check1.Value = 0 Else: Check1.Value = 1 End If End Sub Private Sub Settings_Click() Form3.Show vbModeless End Sub Private Sub 开发者信息_Click() MsgBox ("作者:戎羿190632") End Sub Public Sub 抽学号_Click() If numbersonce = 1 Then 结果.Caption = NumberListShow Else [结果] = Ran End If End Sub '====================================================
1 下一页