没有响应
Type TNode
Cur As Integer
ID As String
PP_Cur As String
Distance As Long
Status As Boolean
End Type
Type TLine
Cur As Integer
ID As String
Point1 As Integer
Point2 As Integer
Weight As Long
Status As Integer
End Type
定义变量:
Public Points(1 To 8) As TNode
Public Arc(1 To 14) As TLine
程序是这样的:
Private Sub Form_Load()
Call Init
Call Dijkstra
End Sub
Sub Init()
With Points(1)
.ID = "S"
.Status = False
.PP_Cur = "0"
.Distance = 0
End With
With Points(2)
.ID = "A"
.Status = False
.PP_Cur = ""
End With
With Points(3)
.ID = "B"
.Status = False
.PP_Cur = ""
End With
With Points(4)
.ID = "C"
.Status = False
.PP_Cur = ""
End With
With Points(5)
.ID = "D"
.Status = False
.PP_Cur = ""
End With
With Points(6)
.ID = "E"
.Status = False
.PP_Cur = ""
End With
With Points(7)
.ID = "F"
.Status = False
.PP_Cur = ""
End With
With Points(8)
.ID = "T"
.Status = False
.PP_Cur = ""
End With
With Arc(1)
.ID = "1"
.Point1 = "1"
.Point2 = "2"
.Weight = 6
End With
With Arc(2)
.ID = "2"
.Point1 = "1"
.Point2 = "3"
.Weight = 3
End With
With Arc(3)
.ID = "3"
.Point1 = "2"
.Point2 = "3"
.Weight = 2
End With
With Arc(4)
.ID = "4"
.Point1 = "2"
.Point2 = "6"
.Weight = 1
End With
With Arc(5)
.ID = "5"
.Point1 = "6"
.Point2 = "7"
.Weight = 4
End With
With Arc(6)
.ID = "6"
.Point1 = "2"
.Point2 = "5"
.Weight = 2
End With
With Arc(7)
.ID = "7"
.Point1 = "3"
.Point2 = "5"
.Weight = 7
End With
With Arc(8)
.ID = "8"
.Point1 = "3"
.Point2 = "4"
.Weight = 4
End With
With Arc(9)
.ID = "9"
.Point1 = "5"
.Point2 = "4"
.Weight = 6
End With
With Arc(10)
.ID = "10"
.Point1 = "4"
.Point2 = "7"
.Weight = 10
End With
With Arc(11)
.ID = "11"
.Point1 = "5"
.Point2 = "7"
.Weight = 9
End With
With Arc(12)
.ID = "12"
.Point1 = "5"
.Point2 = "8"
.Weight = 5
End With
With Arc(13)
.ID = "13"
.Point1 = "6"
.Point2 = "8"
.Weight = 8
End With
With Arc(14)
.ID = "14"
.Point1 = "7"
.Point2 = "8"
.Weight = 3
End With
For i = 1 To 14
Arc(i).Status = 1
Next
'////初始化结束
End Sub
一执行Init(),马上窗口就会没有响应。不知道是为什么?
问题点数:20、回复次数:5Top
1 楼ZOU_SEAFARER(颓废程序员^_^)回复于 2006-03-08 11:17:06 得分 12
Option Explicit
Private Type TNode
Cur As Integer
ID As String
PP_Cur As String
Distance As Long
Status As Boolean
End Type
Private Type TLine
Cur As Integer
ID As String
Point1 As Integer
Point2 As Integer
Weight As Long
Status As Integer
End Type
'定义变量:
Dim Points(1 To 8) As TNode
Dim Arc(1 To 14) As TLine
'程序是这样的:
Private Sub Form_Load()
Call Init
' Call Dijkstra
End Sub
Sub Init()
Dim i As Integer
With Points(1)
.ID = "S"
.Status = False
.PP_Cur = "0"
.Distance = 0
End With
With Points(2)
.ID = "A"
.Status = False
.PP_Cur = ""
End With
With Points(3)
.ID = "B"
.Status = False
.PP_Cur = ""
End With
With Points(4)
.ID = "C"
.Status = False
.PP_Cur = ""
End With
With Points(5)
.ID = "D"
.Status = False
.PP_Cur = ""
End With
With Points(6)
.ID = "E"
.Status = False
.PP_Cur = ""
End With
With Points(7)
.ID = "F"
.Status = False
.PP_Cur = ""
End With
With Points(8)
.ID = "T"
.Status = False
.PP_Cur = ""
End With
With Arc(1)
.ID = "1"
.Point1 = "1"
.Point2 = "2"
.Weight = 6
End With
With Arc(2)
.ID = "2"
.Point1 = "1"
.Point2 = "3"
.Weight = 3
End With
With Arc(3)
.ID = "3"
.Point1 = "2"
.Point2 = "3"
.Weight = 2
End With
With Arc(4)
.ID = "4"
.Point1 = "2"
.Point2 = "6"
.Weight = 1
End With
With Arc(5)
.ID = "5"
.Point1 = "6"
.Point2 = "7"
.Weight = 4
End With
With Arc(6)
.ID = "6"
.Point1 = "2"
.Point2 = "5"
.Weight = 2
End With
With Arc(7)
.ID = "7"
.Point1 = "3"
.Point2 = "5"
.Weight = 7
End With
With Arc(8)
.ID = "8"
.Point1 = "3"
.Point2 = "4"
.Weight = 4
End With
With Arc(9)
.ID = "9"
.Point1 = "5"
.Point2 = "4"
.Weight = 6
End With
With Arc(10)
.ID = "10"
.Point1 = "4"
.Point2 = "7"
.Weight = 10
End With
With Arc(11)
.ID = "11"
.Point1 = "5"
.Point2 = "7"
.Weight = 9
End With
With Arc(12)
.ID = "12"
.Point1 = "5"
.Point2 = "8"
.Weight = 5
End With
With Arc(13)
.ID = "13"
.Point1 = "6"
.Point2 = "8"
.Weight = 8
End With
With Arc(14)
.ID = "14"
.Point1 = "7"
.Point2 = "8"
.Weight = 3
End With
For i = 1 To 14
Arc(i).Status = 1
Next
'////初始化结束
End Sub
帮你修改了一下Private 不能少!
dim i as integer 不能少
Top
2 楼ZOU_SEAFARER(颓废程序员^_^)回复于 2006-03-08 11:18:52 得分 0
还有如果不是在mod里面声明变量的话
应该用把Public Points(1 To 8) As TNode
Public Arc(1 To 14) As TLine
改为
Private Points(1 To 8) As TNode
Private Arc(1 To 14) As TLine
或者
Dim Points(1 To 8) As TNode
Dim Arc(1 To 14) As TLine
Top
3 楼AnnaBear(淡淡)回复于 2006-03-08 11:31:58 得分 8
修改后:
'Private Type TNode
' Cur As Integer
' ID As String
' PP_Cur As String
' Distance As Long
' Status As Boolean
'End Type
'
'Private Type TLine
' Cur As Integer
' ID As String
' Point1 As Integer
' Point2 As Integer
' Weight As Long
' Status As Integer
'End Type
'
'Public Points(1 To 8) As TNode
'Public Arc(1 To 14) As TLine
'****以上部分可以放入module里比较好:)
'
Private Sub Form_Load()
Call Init
' Call Dijkstra
End Sub
Private Sub Init()
Dim i As Integer'*****别忘记定义
With Points(1)
.ID = "S"
.Status = False
.PP_Cur = "0"
.Distance = 0
End With
With Points(2)
.ID = "A"
.Status = False
.PP_Cur = ""
End With
With Points(3)
.ID = "B"
.Status = False
.PP_Cur = ""
End With
With Points(4)
.ID = "C"
.Status = False
.PP_Cur = ""
End With
With Points(5)
.ID = "D"
.Status = False
.PP_Cur = ""
End With
With Points(6)
.ID = "E"
.Status = False
.PP_Cur = ""
End With
With Points(7)
.ID = "F"
.Status = False
.PP_Cur = ""
End With
With Points(8)
.ID = "T"
.Status = False
.PP_Cur = ""
End With
With Arc(1)
.ID = "1"
.Point1 = "1"
.Point2 = "2"
.Weight = 6
End With
With Arc(2)
.ID = "2"
.Point1 = "1"
.Point2 = "3"
.Weight = 3
End With
With Arc(3)
.ID = "3"
.Point1 = "2"
.Point2 = "3"
.Weight = 2
End With
With Arc(4)
.ID = "4"
.Point1 = "2"
.Point2 = "6"
.Weight = 1
End With
With Arc(5)
.ID = "5"
.Point1 = "6"
.Point2 = "7"
.Weight = 4
End With
With Arc(6)
.ID = "6"
.Point1 = "2"
.Point2 = "5"
.Weight = 2
End With
With Arc(7)
.ID = "7"
.Point1 = "3"
.Point2 = "5"
.Weight = 7
End With
With Arc(8)
.ID = "8"
.Point1 = "3"
.Point2 = "4"
.Weight = 4
End With
With Arc(9)
.ID = "9"
.Point1 = "5"
.Point2 = "4"
.Weight = 6
End With
With Arc(10)
.ID = "10"
.Point1 = "4"
.Point2 = "7"
.Weight = 10
End With
With Arc(11)
.ID = "11"
.Point1 = "5"
.Point2 = "7"
.Weight = 9
End With
With Arc(12)
.ID = "12"
.Point1 = "5"
.Point2 = "8"
.Weight = 5
End With
With Arc(13)
.ID = "13"
.Point1 = "6"
.Point2 = "8"
.Weight = 8
End With
With Arc(14)
.ID = "14"
.Point1 = "7"
.Point2 = "8"
.Weight = 3
End With
For i = 1 To 14
Arc(i).Status = 1
Next
End Sub
Top
4 楼charkie(我爱红燕)回复于 2006-03-08 13:04:25 得分 0
我把
Private Points(1 To 8) As TNode
Private Arc(1 To 14) As TLine
这两行放在一个模块里面(global.bas),
两种结构的定义放在types.bas里面
还是不能正常运行,提示“user_defined type not definesd”出错
Top
5 楼charkie(我爱红燕)回复于 2006-03-08 13:40:19 得分 0
看来还是不行,我把所有的地方都改成平public类型,还是不能执行下去,仍然会不响应Top




