+ Rispondi al Thread
Visualizzazione dei risultati da 1 a 4 su 4

Discussione: Form Popup con avanzamento progressivo

  1. #1
    L'avatar di Kwisatz
    Kwisatz non è in linea Scolaretto
    Post
    84

    Question Form Popup con avanzamento progressivo

    Come da titolo ho creato una form popup che esegue in background delle elaborazioni su delle tabelle (chiamiamola "procedura di aggiornamento"), il processo può durare qualche secondo oppure qualche minuto.

    A intervalli più o meno regolari della procedura di aggiornamento modifico il contenuto di un controllo me.text della form e successivamente eseguo il comando DoEvents.

    In questo modo l'utente "percepisce" l'avanzamento dell'elaborazione e pazientemente può attenderne la fine.

    Il problema è che se lego il lancio della procedura di aggiornamento dati ad un controllo comando (che l'utente deve premere) il tutto funziona, mentre se la procedura di aggiornamento la faccio partire in automatico all'apertura della form (su apertura) l'elaborazione avviene prima che la form venga visualizzata e quindi senza alcun messaggio per l'utente.

    Sapete darmi qualche indicazione su come risolvere la cosa?

  2. #2
    SCvanni non è in linea Scolaretto
    Post
    433
    Quote Originariamente inviato da Kwisatz Visualizza il messaggio
    Come da titolo ho creato una form popup che esegue in background delle elaborazioni su delle tabelle (chiamiamola "procedura di aggiornamento"), il processo può durare qualche secondo oppure qualche minuto.

    A intervalli più o meno regolari della procedura di aggiornamento modifico il contenuto di un controllo me.text della form e successivamente eseguo il comando DoEvents.

    In questo modo l'utente "percepisce" l'avanzamento dell'elaborazione e pazientemente può attenderne la fine.

    Il problema è che se lego il lancio della procedura di aggiornamento dati ad un controllo comando (che l'utente deve premere) il tutto funziona, mentre se la procedura di aggiornamento la faccio partire in automatico all'apertura della form (su apertura) l'elaborazione avviene prima che la form venga visualizzata e quindi senza alcun messaggio per l'utente.

    Sapete darmi qualche indicazione su come risolvere la cosa?
    Salve, potresti far scatenare l'evento su Timer

    Saluti
    E' quando mi mettono con le spalle al muro che scopro il meglio di me. (NonnoVanni)

  3. #3
    L'avatar di @Alex
    @Alex non è in linea Very Important Person
    Post
    16,091
    Credo sia quanto indicava SCVanni, provo a dare un dettaglio:
    codice:
    Private Sub Form_Load()
       Me.TimerInterval=200
    End Sub
    
    Private Sub Form_Timer()
       Me.TimerInterval=0
       ' Lanci la tua proceduta di PROGRESSBAR
    End Sub
    Di fatto spesso è questione di REPAINT della FORM, che si blocca... con il ritardo del TimerInterval spesso funziona.
    @Alex
    Il CROSSPOST è VIETATO
    Mirror al vecchio sito WEB(salvare i Demo riassegnando l'estensione (.Zip/.Rar/.Exe in base all'icona...):
    http://mirror.masterdrive.it/alessandrobaraldi/
    Leggi il
    Regolamento del Forum e nel comprenderne la filosofia rispettalo.

  4. #4
    L'avatar di Kwisatz
    Kwisatz non è in linea Scolaretto
    Post
    84
    Grazie ragazzi…

    Problema risolto con i vostri suggerimenti.

    Alla prossima!

+ Rispondi al Thread

Tag per questa discussione

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi