解决方案 »

  1.   

    过程中直接写文本框不行 直到过程执行完 全部显示 没有一步一步显示定义一个全局变量 过程中逐渐赋值  在另外一个 timer中监控变量 也不行 哪位大侠帮帮忙 还没写过这样的
      

  2.   

    自己加上sleep的API声明,
    Text1设置为多行文本框。
    private sub command1_click()
      text1="时间1开始分析…… "
      doevents: sleep 200
      text1=text1 & vbcrlf & "时间2 分析到2"
      doevents: sleep 200
      text1=text1 & vbcrlf & "时间3 分析到3"
      doevents: sleep 200
      text1=text1 & vbcrlf & "时间4 分析到4"
      doevents: sleep 200
      text1=text1 & vbcrlf & "时间5 分析到5"
      doevents: sleep 200
      text1=text1 & vbcrlf & "时间6 结束"
    end sub
      

  3.   

    Private Sub logtofile(s As String)
    Dim f As Integer
    On Error Resume Next
        log s
        f = FreeFile()
        Open App.Path + "\VBS1.LOG" For Append As #f
        Print #f, Format(Now, "YYYY-MM-DD hh:mm:ss") + "." + Right("00" + CStr(mss()), 3) + " " + s
        Close #f
        If FileLen(App.Path + "\VBS1.LOG") > MAXLOGFILESIZE Then
            Kill App.Path + "\VBS2.LOG"
            Name App.Path + "\VBS1.LOG" As App.Path + "\VBS2.LOG"
        End If
    End Sub将这个dll放在windows\system32目录下,在VB6中 Private Declare Function mss Lib "mss" () As Long Debug.Print Format(Now, "YYYY-MM-DD hh:mm:ss")
    http://download.csdn.net/detail/zhao4zhong1/4659776
      

  4.   

    3楼4楼正解,加doevents就可以搞定了。
      

  5.   

    给你个建议:如果不是真的要操作怎么长时间就没必要写了,写了也只是一闪而过。确实有必要的话,在每一个操作开始之前为文本框的Text属性赋值,然后再开始分析,分析到2了,再修改文本框的Text属性。
      

  6.   

    最关键的,是这个词:
    DoEvents
      

  7.   

    还可以不用DoEvents而改用text1.Fresh
      

  8.   

    最关键的,是这个词:
    DoEvents
    根本就没有必要。纯粹瞎折腾。你释放CPU占用目的何在??text1.text="时间1开始分析……"
    '这里就去写分析1的代码.
    '这里运行的时间足够长文本能看清楚,
    ‘不够长根本就不需要考虑用户看得清不清楚。倒更好了,
    '让用户觉得执行的很快
    text1.text="时间2 分析到2"
    '这里就去写分析2的代码.
    text1.text="时间3 分析到3"
    '……以此类推就是了,直接在分析的代码中间设置赋值。doevents不是在超长的循环里都别用它,使用它就意味着释放CPU占用,98版的MSDN本地文档说的很清楚“小心 确保以 DoEvents 放弃控制权的过程,在第一次 DoEvents 返回之前,不能再次被其他部分的代码调用;否则会产生不可预料的结果。此外,如果其它的应用程序可能会和本过程以不可预知的方式进行交互操作,那么也不要使用 DoEvents,因为此时不能放弃控制权。”本来很简单的问题搞那么复杂干嘛~?
      

  9.   

    最关键的,是这个词:
    DoEvents
    根本就没有必要。纯粹瞎折腾。你释放CPU占用目的何在??text1.text="时间1开始分析……"
    '这里就去写分析1的代码.
    '这里运行的时间足够长文本能看清楚,
    ‘不够长根本就不需要考虑用户看得清不清楚。倒更好了,
    '让用户觉得执行的很快
    text1.text="时间2 分析到2"
    '这里就去写分析2的代码.
    text1.text="时间3 分析到3"
    '……以此类推就是了,直接在分析的代码中间设置赋值。doevents不是在超长的循环里都别用它,使用它就意味着释放CPU占用,98版的MSDN本地文档说的很清楚“小心 确保以 DoEvents 放弃控制权的过程,在第一次 DoEvents 返回之前,不能再次被其他部分的代码调用;否则会产生不可预料的结果。此外,如果其它的应用程序可能会和本过程以不可预知的方式进行交互操作,那么也不要使用 DoEvents,因为此时不能放弃控制权。”本来很简单的问题搞那么复杂干嘛~?
    所谓“不可预料的结果”不就是重入么?有啥可怕的。
      

  10.   

    最关键的,是这个词:
    DoEvents
    根本就没有必要。纯粹瞎折腾。你释放CPU占用目的何在??text1.text="时间1开始分析……"
    '这里就去写分析1的代码.
    '这里运行的时间足够长文本能看清楚,
    ‘不够长根本就不需要考虑用户看得清不清楚。倒更好了,
    '让用户觉得执行的很快
    text1.text="时间2 分析到2"
    '这里就去写分析2的代码.
    text1.text="时间3 分析到3"
    '……以此类推就是了,直接在分析的代码中间设置赋值。doevents不是在超长的循环里都别用它,使用它就意味着释放CPU占用,98版的MSDN本地文档说的很清楚“小心 确保以 DoEvents 放弃控制权的过程,在第一次 DoEvents 返回之前,不能再次被其他部分的代码调用;否则会产生不可预料的结果。此外,如果其它的应用程序可能会和本过程以不可预知的方式进行交互操作,那么也不要使用 DoEvents,因为此时不能放弃控制权。”本来很简单的问题搞那么复杂干嘛~?
    所谓“不可预料的结果”不就是重入么?有啥可怕的。本来就没有必要搞那么复杂。至少你告诉我你用Doevents目的何在?
      

  11.   

    “过程中直接写文本框不行 直到过程执行完 全部显示 没有一步一步显示”我看是代码本身的问题,与是否Doevents没什么关系,释放CPU控制权来干什么?让CPU可以去重画TEXT控件?我自己用VB写安装程序的时候也是这样干的,过程中直接写文本框,显示的好好的