Visualizzazione dei risultati da 1 a 8 su 8
  1. #1

    Refresh video che funziona così così...

    Utilizzo all’interno di una applicazione una ProgressBar ed una casella di testo che valorizzo, all’interno di un ciclo For-Next, per mostrare all’utente l’avanzamento di una operazione ed il relativo dettaglio in formato testo.
    Le operazioni che vengono svolte all’interno del ciclo sono una serie (complessa) di select ed update su un insieme di database SQL.
    Tutto funziona a meraviglia SE sul PC non eseguo nessuna altra operazione.
    Se invece apro un’altra finestra o semplicemente sposto la finestra dell’applicazione sul video o, ancora, qualcuno effettua una SELECT su uno degli archivi oggetto delle mie elaborazioni, il contenuto della finestra si incastra e non viene più mostrato l’avanzamento della ProgressBar ed i testi nella casella di testo… apparentemente sembrerebbe che il programma sia piantato, invece continua a lavorare egregiamente e termina le operazioni previste, ma semplicemente non mostra gli aggiornamenti a video.
    Per forzare il refresh uso, per l’appunto, my.nomeoggetto.refresh() all'interno del ciclo (ho provato ad applicarlo sia alla label, sia alla progressBar, sia alla maschera di lavoro con main.refresh()).
    Cosa sbaglio?
    Devo implementare una qualche gestione video che non conosco?
    Problemi di memoria del PC?
    Altro? :master:

  2. #2
    Dimenticavo...
    Uso Visual Studio 2005 ed il programma è in VBasic!

  3. #3
    Potrebbe darsi che si tratti di una gestione eventi "aggressiva", che intasa la coda dei messaggi di Windows.

    Nel tuo ciclo For/Next, hai già inserito l'istruzione DoEvents prima del Next?
    SoloVangelo.it - Uno sguardo al mondo con gli occhi della fede
    «Dio ha tanto amato il mondo, che ha dato il suo unigenito Figlio, affinché chiunque crede in lui non perisca, ma abbia vita eterna.» (Gv.3:16-17)

  4. #4
    Utente di HTML.it L'avatar di gibra
    Registrato dal
    Apr 2008
    residenza
    Italy
    Messaggi
    4,244
    Abbi pazienza...
    Ma sul serio pensi che qualcuno possa darti una mano non conoscendo niente della tua applicazione?

    Ciao

  5. #5
    No, non ho utilizzato DoEvents.
    Dopo averlo inserito direi che funziona tutto perfettamente... non conoscevo questa istruzione! :ignore:
    Mi chiedo se posso eliminare tutti i refresh che avevo inserito per forzare il problema (così forse rendo un pò più rapida l'elaborazione?).... mi studio meglio l'istruzione sull'help in linea e poi, nel caso, provo.
    Grazie 1Mega! anche perché mi hai risparmiato una lunga descrizione dell'applicativo a gibra

  6. #6
    Anch'io ho gli stessi casini con il Refresh. Più precisamente, non mi fa correttamente il refresh quando leggo grossi file di testo, mentre non ho problemi quando leggo grosse quantità di record. Mah... Ma lo DoEvents serve qualsoa, in questo contesto???

  7. #7
    Originariamente inviato da JerDotNet
    Anch'io ho gli stessi casini con il Refresh. Più precisamente, non mi fa correttamente il refresh quando leggo grossi file di testo, mentre non ho problemi quando leggo grosse quantità di record. Mah... Ma lo DoEvents serve qualsoa, in questo contesto???
    Bhé... quanto meno proverei.
    Personalmente non conoscevo questa istruzione ed ero un pò scettico della risposta di JackInTheBox... invece va alla grande!
    Auguri

  8. #8
    Diciamo che il problema che hai esposto è abbastanza "tipico": quando fai elaborazioni che richiedono diverse risorse, il sistema operativo dedica a queste la priorità, ed i vari refresh video passano in cavalleria, venendo accodati negli eventi di Windows.

    Invece, DoEvents serve a dire "arrivati a questo punto del programma, guarda se ci sono degli eventi in attesa ed evadili".

    Felice di esserti stato di aiuto.
    SoloVangelo.it - Uno sguardo al mondo con gli occhi della fede
    «Dio ha tanto amato il mondo, che ha dato il suo unigenito Figlio, affinché chiunque crede in lui non perisca, ma abbia vita eterna.» (Gv.3:16-17)

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.