问个VB的一个方法哈

MeBoss 2011-07-16 10:45:33
就是在点击某个按钮时,该按钮的操作会进行很长一段时间,所以界面会出现假死的情况,现在我想要的方法是在点击按钮后,我可以进行其它操作, 老大说有个这种方法,但是我不知道是那个方法,有人知道的吗 谢谢了
...全文
56 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
嗷嗷叫的老马 2011-07-16
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 meboss 的回复:]
我需要检测i是否等于0,可是因为执行是时间很长,所以程序会假死,那么DoEvents应该加在那里呢。MonitorVal函数是模块里面函数。[/Quote]
设置一个定时器,把GetMotionStatus i以及判断的IF语句放在定时器事件里.

因为你这个循环没有处理别的事情,因此没性能要求,定时器是个好先选择.
MeBoss 2011-07-16
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 veron_04 的回复:]
VB code

Public Function MonitorVal() As Boolean
Dim i As Long
Do
GetMotionStatus i
DoEvents
Loop While i <> 0

MonitorVal = True
End Function
[/Quote]

++++++1111111 3Q
MeBoss 2011-07-16
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 veron_04 的回复:]
VB code

Public Function MonitorVal() As Boolean
Dim i As Long
Do
GetMotionStatus i
DoEvents
Loop While i <> 0

MonitorVal = True
End Function
[/Quote]
嗯 好滴 我试一试
MeBoss 2011-07-16
  • 打赏
  • 举报
回复
我加在函数里面貌似也没有效果呢?
贝隆 2011-07-16
  • 打赏
  • 举报
回复

Public Function MonitorVal() As Boolean
Dim i As Long
Do
GetMotionStatus i
DoEvents
Loop While i <> 0

MonitorVal = True
End Function




MeBoss 2011-07-16
  • 打赏
  • 举报
回复

Public Function MonitorVal() As Boolean
Dim i As Long
Do
GetMotionStatus i
Loop While i <> 0

MonitorVal = True
End Function


我需要检测i是否等于0,可是因为执行是时间很长,所以程序会假死,那么DoEvents应该加在那里呢。MonitorVal函数是模块里面函数。
threenewbee 2011-07-16
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 veron_04 的回复:]
一般情况下假死是长循环导致的,你按楼上的,在循环体中加入:DoEvents即可
该命令是将CPU资源返回给Windows,一边其他任务能及时享有CPU利用权。这样做可以防止程序假死,但也会带来循环运行速度大幅减慢。
[/Quote]

你看错了吧。你说的是 Sleep() API
DoEvents没有这个功能。它只是会去调用GetMessage() PeekMessage() 处理消息队列的消息。
贝隆 2011-07-16
  • 打赏
  • 举报
回复
一般情况下假死是长循环导致的,你按楼上的,在循环体中加入:DoEvents即可
该命令是将CPU资源返回给Windows,一边其他任务能及时享有CPU利用权。这样做可以防止程序假死,但也会带来循环运行速度大幅减慢。
threenewbee 2011-07-16
  • 打赏
  • 举报
回复
for i = 1 to 10000000
...
doevents
next

如果耗时时间很长的地方位于一个函数内,那就没办法了。VB也不支持多线程。
zdingyun 2011-07-16
  • 打赏
  • 举报
回复
在按钮事件的循环代码中加:
DoEvents
苦苦的潜行者 2011-07-16
  • 打赏
  • 举报
回复
没听说过.
ASP组件AspJpeg(加水印)使用方法大全ASPJPEG是Persits出品的共享软件,它是一款功能相当强大的asp图象处理组件,用它可以轻松地做出图片的缩略图和为图片加上水印功能。 水印组件AspJpeg2.4.0.1 下面简单介绍一下使用方法: 您先要执行下载得到的exe文件,安装该组件. 检测是否注册成功的方法: 将以下代码保存为asp,拷贝在服务器上,用浏览器打开,看返回结果。 一、为图片添加水印 <% Dim Jpeg ''''//声明变量 Set Jpeg = Server.CreateObject("Persits.Jpeg") ''''//调用组件 Jpeg.Open Server.MapPath("aaa.JPG") ''''//源图片位置 Jpeg.Canvas.Font.Color = &H000000; ''''//水印字体颜色 Jpeg.Canvas.Font.Family = "宋体" ''''//水印字体 Jpeg.Canvas.Font.Size = 14 ''''//水印字体大小 Jpeg.Canvas.Font.Bold = False ''''//是否粗体,粗体用:True Jpeg.Canvas.Font.BkMode = &HFFFFFF; ''''//字体背景颜色 Jpeg.Canvas.Print 10, 10, "不败顽童工作室" ''''//水印文字,两个数字10为水印的xy座标 Jpeg.Save Server.MapPath("aaa_05.jpg") ''''//生成有水印的新图片及保存位置 Set Jpeg = Nothing ''''//注销组件,释放资源 Response.Write "" ''''//在该页显示生成水印后的图片 %> 二、生成缩略图 <% Dim Jpeg ''''//声明变量 Set Jpeg = Server.CreateObject("Persits.Jpeg") ''''//调用组件 Jpeg.Open Server.MapPath("aaa.JPG") ''''//原图位置 Jpeg.Width = Jpeg.OriginalWidth/4 ''''//设图片宽度为原图的四分之一 Jpeg.Height = Jpeg.OriginalHeight/4 ''''//设图片高度为原图的四分之一 Jpeg.Sharpen 1, 130 ''''//设定锐化效果 Jpeg.Save Server.MapPath("aaa_small.jpg") ''''//生成缩略图位置及名称 Set Jpeg = Nothing ''''//注销组件,释放资源 Response.Write "" ''''//在该页显示生成缩略图 %> aspjpeg组件高级使用方法介绍 aspjpeg是一款非常强大的图片处理组件,纯英文版本。不过早已经有免费版和破解版,但是对其进行详细与深入介绍的文章却是不多,即使有也只牵涉到图片缩略和图片水印。可能是因为纯英文的缘故。 这里我就是针对这些问题谈谈aspjpeg的高级用法。这里的技术主要包括: 图片缩略 图片水印 安全码技术 图片切割 图片合并 数据库支持 更多不常用的方法介绍 以及相关的一些实用技术 aspjpeg唯一点不足的就是输出方式比较单一。在这里,我们主要谈将图片处理保存后再调用的这种输出方法。另外,本人比较懒,所以有些代码仍然引用于原文档,不懂的地方偶会加以解释! 学过vb或者.net的同志肯定一看就明白了。刷子来着。呵呵。 一、图片缩略 当前位置:我的异常网» VB»VB6毕竟能不能做被其他程序直接调用的标准的DLL动态VB6毕竟能不能做被其他程序直接调用的标准的DLL动态库www.myexceptions.net网友分享于:2014-02-20浏览:2次VB6到底能不能做被其他程序直接调用的标准的DLL动态库VB6到底能不能做被其他程序直接调用的标准的DLL动态库,看到网上有这么一篇文章,到底有没有用?VB无所不能之...

7,763

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧