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

    [vb2008] progress bar e Vista

    progress bar con valore massimo settato a 120

    al lancio del programma, mentre esso legge tutto quello che deve leggere (sul web, quindi ci mette qualche secondo), uno splash screen visualizza la prograss bar, che avanza man mano, chiudendosi quando le letture sono terminate:

    SplashScreen.ProgressBar1.Value = 120
    Thread.Sleep(600)
    SplashScreen.Close()

    con XP nessun problema... con Vista la prograss bar anzichè fare tutta la sua corsa, si ferma ad 1/4 circa, come se il valore massimo letto fosse 30, poi lo splash screen si chiude regolarmente.

    Inutile dire che ho controllato con un punti di interruzione che tutto il codice fosse regolarmente letto.... ho anche provato, per quanto inutile, uno splashscreen.refresh, ma nulla cambia

    come mando la bar fino in fondo anche con Vista??

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Prima della Sleep prova ad inserire una

    Application.DoEvents
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    provato... non cambia nulla, purtroppo...

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

  5. #5
    esattamente dove hai detto te, dapprima subito prima dello sleep e poi testando in diversi punti...

    ma comunque quando il programma arriva a leggere quelle righe di codice il grosso è fatto, non ci sono loop in corso... non è che un DoEvents possa risolvere molto, imho

  6. #6
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Non e' cosi'.

    Quando imposti il Value a 120, la barra si ridisegna ma la Sleep sospende il thread e quindi i messaggi di repaint non arrivano. Appena il thread riparte, il form viene subito chiuso e non hai modo di vedere alcun aggiornamento grafico (il che fa sembrare ferma la barra).

    La DoEvents prima della Sleep dovrebbe garantire il suo ridisegno prima che il thread venga sospeso.

    Se non funziona, ci saranno altri motivi, magari da ricercare nel complesso del codice che non ho modo di provare completamente ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  7. #7
    ah, buono a sapersi... ma allora però lo sleep interrompe il thread solo con Vista, perché con XP la barra va al massimo senza problemi

    comunque il codice non è particolarmente strano: leggo alcuni files sul web, alcuni my. settings e man mano che tali valori vengono letti aumento il valore della barra, dopo l' ultima lettura dò il valore 120.... con XP la barra va fino in fondo, con Vista, stesso codice, si ferma a 1/3 anche se prima ha incontrati valori di 80 - 90 ecc ecc

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.