| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1432 人关注过本帖
标题:command 属性设置
只看楼主 加入收藏
a535080459
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2014-11-13
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:4 
command 属性设置
单击command之后运行程序,但由于程序大长,运行结束需要20分钟左右,我想中途结束或者暂停,就像调试那样,怎么设置呢?调试状态下设置 end 程序后,程序确实停了,不过窗体也没响应了,只能关了VB,再重新打开。想过Timer 的Enabled属性来控制,但Timer的循环时间太短啊 ,请问各位大神 command的属性中有没有通过  false或 true来控制command下的程序结束或暂停,或者通过其他控件 实现同样的效果也可以,如果设置全局热键的话 请大神 写一下代码!本人小白一枚,请各位大神帮忙!
搜索更多相关主题的帖子: command 运行程序 false 左右 
2015-03-09 20:13
lianyicq
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:26
帖 子:737
专家分:3488
注 册:2013-1-26
收藏
得分:20 
试试设一布尔型全程变量pause,初值为false,窗体上新建一按钮,点击按钮后pause=true


Dim pause As Boolean
Dim i As Long
Private Sub Command1_Click()
  pause = Not (pause)
  If pause = False Then Form1.Caption = i
End Sub

Private Sub Form_Load()
  Me.Show
  While (1)
    DoEvents
    If pause = False Then
       i = i + 1
    End If
  Wend
End Sub

大开眼界
2015-03-10 10:10
a535080459
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2014-11-13
收藏
得分:0 
回复 2楼 lianyicq
请问版主 大大,假如我程序里有一个 Do...loop 循环,改怎么处理呢?如下:
Dim pause As Boolean
Private Declare Sub Sleep Lib "kernel32.DLL" (ByVal dwMilliseconds As Long)
Dim i As Long
Private Sub Command1_Click()
  pause = Not (pause)
  If pause = False Then
  'Form1.Caption = i
  Do
  Sleep (1000)
  Print i
  Loop
End Sub

Private Sub Form_Load()
  Me.Show
  While (1)
    DoEvents
    If pause = False Then
       i = i + 1
    End If
  Wend
End Sub

再次点击 Command1 的话会发生程序停止 但窗体无法响应。但我不知道程序是因pause = False停止下来的,还是因为窗体无响应导致程序停下来的。主要问题是怎么才能退出 Do 循环呢?
2015-03-10 10:58
lianyicq
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:26
帖 子:737
专家分:3488
注 册:2013-1-26
收藏
得分:0 
程序代码:
Dim pause As Boolean
Private Declare Sub Sleep Lib "kernel32.DLL" (ByVal dwMilliseconds As Long)
Dim i As Long
Dim CMD_Exit As Boolean

Private Sub Command1_Click()
  pause = Not (pause)
  Command1.Caption = "已暂停"
  If pause = False Then CMD_Exit = True
End Sub

Private Sub Form_Load()
  Me.Show
  Do
  If CMD_Exit = True Then Command1.Caption = "已退出循环": Command1.Enabled = False: Exit Sub
  DoEvents
  Form1.Caption = "Pause"
  If pause = False Then
     Form1.Caption = "Executing"
     Sleep (1000)
     Print i
  End If
  Loop
End Sub


大开眼界
2015-03-10 11:30
a535080459
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2014-11-13
收藏
得分:0 
非常非常感谢  lianyicq版主  大大!你太强了!无限崇拜啊 !问题已经解决了,像我这种水平适合看哪些书籍资料或者 大大 有没有个人视频讲解 什么的。小白本人正在自学“Visual Basic vb编程从入门到精通(第3版) ”,还有什么 大大可指导的?
2015-03-10 13:41
快速回复:command 属性设置
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.014004 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved