请问怎么在自定义过程中识别form_click事件?
vb吧
全部回复
仅看楼主
level 1
在下有一个关于vb的问题请教大家.编译一个过程,这个过程如下:执行过程A,然后form_click时,执行过程B(1),再触发form_click事件,执行过程B(2)。。以此类推,最后执行完B(n)时,执行过程C.分开做不难,可是要把上述的3个过程合写成一个过程,要怎么做呢?若有解答,感激不尽!
2006年02月09日 06点02分 1
level 1
是不是我说得不够清楚。。。请哪位好心人解答一下吧,偶正在做游戏呢,想确定一个事件,点击屏幕,出现角色的对话,等角色的对话说完之后,再进行下一个事件,就是这里不能实现,勉强用一种苯方法实现后,自己都觉得太繁琐,功能太弱了 想请教高手如何才能把上述的三个过程写到一个自定义过程中呢?
2006年02月09日 08点02分 2
level 13
你先宣告一个初始值, 比如 public jj as integer jj=0每当Form_click 时 jj=jj+1 if jj>最大值 jj=0你的过程就是 B(JJ)你也可用 select case jj case 0 case 1 case 2 end select不同的case 执行不同的 B(JJ)
2006年02月09日 08点02分 3
level 1
我是这样做的Private Sub sjchufa(xuhao As Integer) timfrm.Enabled = True frmXingcheng.Enabled = False lblinfor(3).Visible = True lblinfor(4).Visible = True num = xuhao imgDisplay(0).Picture = imgChucun(shijian(num).id).Picture lblinfor(3).Caption = shijian(num).name lblinfor(4).Caption = shijian(num).contextEnd SubPrivate Sub Form_Click() If lblinfor(3).Visible = True And lblinfor(4).Visible = True Then If shijian(num).flag = True Then num = shijian(num).next imgDisplay(0).Picture = imgChucun(shijian(num).id).Picture lblinfor(3).Caption = shijian(num).name lblinfor(4).Caption = shijian(num).context ElseIf gouwu = 0 Then '指令界面 lblinfor(3).Visible = False lblinfor(4).Visible = False With imgDisplay(0) .Left = 2460 .Picture = imgChucun(0).Picture End With frmXingcheng.Left = frmleft frmXingcheng.Visible = True frmXingcheng.Enabled = True ElseIf gouwu = 1 Then '购物中 frmShop.Visible = True '调出商品框架 cmdBack.Visible = True '调出离开按钮 End If End IfEnd SubPublic Sub initData() With shijian(0) .id = 0 .name = "" .context = "" .next = 0 .flag = False End With '商店购物 With shijian(1) .id = 5 '商店老板娘的图像 .name = NPC(0).name .context = "欢迎光临!" .next = 2 .flag = True End With With shijian(2) .id = 5 .name = NPC(0).name .context = "请问需要什么?" .next = 0 .flag = False End With '商店离开 With shijian(3) .id = 5 .name = NPC(0).name .context = "请慢走!" .next = 0 .flag = False End With '开场白 With shijian(50) .id = 0 .name = zhujue.name .context = "我叫" & zhujue.name & "。" .next = 51 .flag = True End With With shijian(51) .id = 0 .name = zhujue.name .context = "是一名重考生。" .next = 52 .flag = True End With With shijian(52) .id = 0 .name = zhujue.name .context = "由于去年没有考上重点大学,今年打算重考" .next = 53 .flag = True End With With shijian(53) .id = 0 .name = zhujue.name .context = "........" .next = 54 .flag = True End With With shijian(54) .id = 0 .name = zhujue.name .context = "可是努力有用么?我真的考得上心仪的大学么?" .next = 55 .flag = True End With With shijian(55) .id = 0 .name = zhujue.name .context = "不行!不能这样没有信心!离考试还有30个星期,我一定要努力!加油!" .next = 0 .flag = False End WithEnd Sub
2006年02月09日 08点02分 4
level 1
但是如果这样做的话,很笨。比如会出现在一个过程中同时调用两次sjchufa(i)的话,如:sjchufa(3);sjchufa(50),就会出现只出现sjchufa(50)的现象,因为sjchufa(i)只是一次完整的事件的开头。。。唉,表达能力有限,说不清楚啊!
2006年02月09日 08点02分 5
level 13
对不起我没那么多时间来研究你的代码,但照你1F的说法,下面这代码应该会接近你要的答案.Public JJ As Integer,NN as IntegerPrivate Sub Form_Load() JJ = 0End SubPrivate Sub Form_Click() JJ = JJ + 1 If JJ > NN Then '是你所有A+B+C总共有几个要执行的项目 JJ = 0 End If Select Case JJ Case 0 '执行A程序 Case 1 '执行B程序 Case 2 '执行C程序 End SelectEnd Sub'在上面你可以把 B(0) B(1) B(2) 排前面' Select Case JJ' Case 0 To 19 '假设你B部份有20个动作' 执行 B(JJ)' Case 20' '执行A程序' Case 21' '执行C程序' End Select
2006年02月09日 08点02分 7
level 1
谢谢!!!!!!!!!5555555555555太感动了!!
2006年02月09日 09点02分 8
level 1
原来form_click函数可以嵌套在别的函数里面的,我以前还不知道呢!
2006年02月09日 09点02分 9
level 1
抱歉……刚才看错了。。。
2006年02月09日 09点02分 10
level 1
您给我的代码是在form_click()里面把a、b、c三个程序做完,能不能再自定义过程中执行a、b、c三个程序呢?b通过form_click触发
2006年02月09日 09点02分 11
level 13
Private Sub Form_Click() JJ = JJ + 1 If JJ > NN Then '是你所有A+B+C总共有几个要执行的项目 JJ = 0 End If select case jj case 0 to 19 '执行B(JJ)程序 case 20 command1_click(0) '执行A程序 case 21 command1_click(1) '执行C程序 case 22 command1_click(1) '执行D程序 end selectEnd Sub '自定义过程也用Command1数组可在这里也可在Form_click()触发Private Sub Command1_Click(Index As Integer) Select Case Index Case 0 '执行 A程序 Case 1 '执行 C程序 Case 2 '执行 D程序 Case 3 '执行 E程序 End SelectEnd Sub
2006年02月09日 09点02分 12
level 1
这个是在form_click事件中嵌套自定义过程,能不能再自定义过程中嵌套form_click呢?
2006年02月09日 11点02分 13
level 13
我实在无法弄清你要做什么。在Command1_click 里面不可能再来嵌套form_click在command1_click里面.你可以如下:'自定义过程也用Command1数组可在这里也可在Form_click()触发 Private Sub Command1_Click(Index As Integer) Select Case Index Case 0 '执行 A程序 Case 1 '执行 C程序 Case 2 '执行 D程序 Case 3 '执行 E程序 case 4 '***************** form_click End Select End Sub
2006年02月09日 11点02分 14
level 1
唉。。。原来如此。谢谢了
2006年02月09日 11点02分 15
1