• Showing progress bar with class


    With this code, you can show the progress of a long lasting work.


    Declare Public Function NEMProgressBegin Lib "nnotesws.dll" (Byval 
    wFlags As Integer) As Long
    Declare Public Sub NEMProgressSetBarRange Lib "nnotesws.dll" (Byval 
    hWnd As Long,Byval dwMax As Long)
    Declare Public Sub NEMProgressDeltaPos Lib "nnotesws.dll" (Byval 
    hWnd As Long,Byval dwIncrement As Long)
    Declare Public Sub NEMProgressSetBarPos Lib "nnotesws.dll" (Byval 
    hWnd As Long,Byval dwPos As Long)
    Declare Public Sub NEMProgressSetText Lib "nnotesws.dll" (Byval 
    hWnd As Long,Byval pcszLine1 As String)
    Declare Public Sub NEMProgressEnd Lib "nnotesws.dll" (Byval hWnd As
     Long)
    
    Public Class CProgressBar
    	
    	Private hWnd As Long
    	
    	Property Set Range As Long
    		NEMProgressSetBarRange hWnd,Range
    	End Property
    	
    	Property Set Delta As Long
    		NEMProgressDeltaPos hWnd, Delta
    	End Property
    	
    	Property Set Pos As Long
    		NEMProgressDeltaPos hWnd, Me.Pos	
    	End Property
    	
    	Property Set Text As String
    		NEMProgressSetText hWnd,Text
    	End Property
    	
    	Property Set Progress (Pos As Long) As String
    		Me.Pos = Pos
    		Text = Progress
    	End Property
    	
    	Property Set ProgressBy (Delta As Long) As String
    		Me.Delta = Delta
    		Text = ProgressBy
    	End Property
    	
    	Private Sub Init
    		Range = 100
    		Delta = 1
    		Text = ""
    		Pos = 0
    	End Sub
    	
    	Sub New (Range As Long)
    		hWnd = NEMProgressBegin (2)
    		Init
    		If Range <> 0 Then Me.Range = Range
    	End Sub
    	
    	Sub Delay (Seconds  As Integer)
    Dim Started
    Started = Now
    While (Now - Started) * 24 * 60 * 60 < Seconds
    'Do nothing
    Wend
    End Sub

    Sub Delete
    NEMProgressEnd hWnd
    End Sub

    End Class

    '******************************
    'Calling function**************
    'Variable de barra de progreso******************************************************
    Dim oBarraProgreso As CProgressBar
    lNoDocsRespaldo = colDocsAMover.count
    Set oBarraProgreso = New CProgressBar( colDocsAMover.count)
    For x = 1 To colDocsAMover.Count
    Set doc =  colDocsAMover.GetNthDocument(x)
    Call doc.CopyToDatabase(ndbBaseRespaldo)
    Call doc.Remove(True)
    oBarraProgreso.Text = "Faltan " & Cstr(lNoDocsRespaldo -x) & " documentos de " & Cstr(lNoDocsRespaldo) & " por respaldar"
    oBarraProgreso.Pos = x
    Next x
  • 相关阅读:
    formValidator4.1.1问题汇总
    什么,又是字符串拼接,我有些不淡定了
    webform下的分页辅助类再总结
    winform下的一个分页控件总结
    总结SQL Server窗口函数的简单使用
    sql复制表定义及复制数据行
    动态SQL开发基础和经验再总结
    c#执行定时计算限制操作(计时器)
    ado.net关于操作数据库的连接字符串整理
    使用Visual Studio实现WinForm多语言版本实例
  • 原文地址:https://www.cnblogs.com/hannover/p/2481337.html
Copyright © 2020-2023  润新知