Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1

    [VB] Come aspettare un secondo

    Ciao a tutti

    All'interno di un programma in vb vorrei inserire un'istruzione che dica al programma di aspettare un secondo prima di proseguire. Come posso fare?


  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    VB?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Si visual basic.

    Vorrei evitare il comando Timer perchè si azzera a mezzanotte. Per ora sto usando un ciclo

    codice:
        For a = 1 To 600
            For b = 1 To 1000
                DoEvents
            Next b
        Next a
    Questo ciclo impiega un po' più di un secondo. Se cambio pc può variare la durata?

  4. #4

    Re: [VB] Come aspettare un secondo

    Originariamente inviato da spiderontheweb
    Ciao a tutti

    All'interno di un programma in vb vorrei inserire un'istruzione che dica al programma di aspettare un secondo prima di proseguire. Come posso fare?

    Basterebbe un semplice Sleep 1000, dove la Sleep e' definita nella prima riga del codice che segue, che contiene anche una routine piu' generale:
    codice:
    Private Declare Sub Sleep Lib "kernel32.dll" (ByVal milliSec As Long)
    Public Sub Pause(ByVal sec As Single)  'effettua una pausa per i secondi (o frazione) indicati
       Dim t As Single
       t = Timer + sec
       If t > 86400 Then t = 0
       While Timer < t
          Sleep 50
          DoEvents
       Wend
    End Sub
    Unica controindicazione: non e' adatta a gestire pause inferiori a 1 decimo di secondo.

    Con questa routine, per una pausa di un secondo: Wait 1

    IceCube_HT (VB6 fan Club)

  5. #5

    Re: Re: [VB] Come aspettare un secondo

    P.S.: NON PUOI usare semplicemente un ciclo, la durata varierebbe da PC a PC, o addirittura anche sullo stesso PC in condizioni diverse (a seconda del numero e tipo di applicazioni in uso...)
    IceCube_HT (VB6 fan Club)

  6. #6
    Devo fare un pausa di un secondo. Quindi mi confermi che se scrivo

    codice:
    Private Declare Sub Sleep Lib "kernel32.dll" (ByVal milliSec As Long)
    
    Private Sub Command1_Click()
        ...
        Sleep 1000
        ...
    End Sub
    a mezzanotte non ho problemi?

  7. #7
    Originariamente inviato da spiderontheweb
    Devo fare un pausa di un secondo. Quindi mi confermi che se scrivo

    codice:
    Private Declare Sub Sleep Lib "kernel32.dll" (ByVal milliSec As Long)
    
    Private Sub Command1_Click()
        ...
        Sleep 1000
        ...
    End Sub
    a mezzanotte non ho problemi?
    Certo, la carrozza non ritornera' una zucca, garantito !
    Cosi', tra l'altro, NON USI la funzione Timer, quindi....

    Il problema della Sleep e' che "impegna" la macchina, quindi non va' bene per pause troppo lunghe o frequenti, se la usi per una pausa ogni tanto di 1 sec. non hai problemi.

    Ciao !
    IceCube_HT (VB6 fan Club)

  8. #8
    Originariamente inviato da icecube_HT
    Il problema della Sleep e' che "impegna" la macchina, quindi non va' bene per pause troppo lunghe o frequenti, se la usi per una pausa ogni tanto di 1 sec. non hai problemi.
    Al contrario, la Sleep sospende il thread corrente, e quindi non impegna la macchina.
    Amaro C++, il gusto pieno dell'undefined behavior.

  9. #9
    Originariamente inviato da MItaly
    Al contrario, la Sleep sospende il thread corrente, e quindi non impegna la macchina.
    Hai ragione, ho detto una belinata...

    In realta' congela completamente la sola applicazione VB, bloccando pero' tutti i controlli, icone, ecc...
    Ma per l'uso che ne deve fare l'autore iniziale del post, e' piu' che sufficiente...

    Bye.
    IceCube_HT (VB6 fan Club)

  10. #10
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Originariamente inviato da spiderontheweb
    Si visual basic.

    Volevo sapere la versione del VB ...

    Comunque, se usi un ciclo da 50 iterazioni con una Sleep da 20 ms e una DoEvents, ottieni lo stesso ritardo (circa) senza bloccare l'interfaccia ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.