VBA控件教程:引发 PercentDone 事件

2015-06-05 00:08 阅读 67 次 评论关闭

PercentDone 事件是由 Widget 类的 LongTask 方法引发的。LongTask 方法接受两个参数:该方法工作所要求的时间长度,以及 LongTask 在暂停之前产生 PercentDone 事件的最小时间间隔。

Public Sub LongTask(ByVal Duration As Single, _
ByVal MinimumInterval As Single)
   Dim sngThreshold As Single
   Dim sngStart As Single
   Dim blnCancel As Boolean
   
   'Timer 函数按 Single 返回午夜以来秒数的分数值。
   sngStart = Timer
   sngThreshold = MinimumInterval
   
   Do While Timer < (sngStart + Duration)
      '在实际应用程序中,每次循环时将会在这里
      '做某些单元的工作。
      
      If Timer > (sngStart + sngThreshold) Then
         RaiseEvent PercentDone( _
         sngThreshold / Duration, blnCancel)
         '检查一下,看看操作是否被取消。
         If blnCancel Then Exit Sub
         sngThreshold = sngThreshold + MinimumInterval
      End If
   Loop
End Sub

每隔 MinimumInterval 秒,都会引发 PercentDone 事件。当该事件返回时,LongTask 将检查 Cancel 参数是否设置为 True。

注意   为了简单起见,LongTask 假定事先已经知道任务将持续多长时间。但是,这几乎是不可能的。将任务分解成平均大小的块,可能是比较困难的,而且经常困扰用户的问题是,在他们得到某件事已经发生的指示前,真正经过的时间量。

详细信息   现在已经声明并引发了一个事件,怎样才能使得另一个对象来处理这个事件?下面的“处理对象的事件”,将就 Widget 对象引发继续详细讨论这个问题。

版权声明:本文著作权归原作者所有,欢迎分享本文,谢谢支持!
转载请注明:VBA控件教程:引发 PercentDone 事件 | 猎微网

评论已关闭!