al.delphi ha scritto:
Risultato: La ProgressBar e il Label appaiono solo dopo che la cartella è stata rimossa.
Alt, questo è un problema diverso: quando vengono modificate la ProgressBar e la Label, i valori delle proprietà cambiano e come "effetto collaterale" viene segnalato a Windows che il contenuto visuale dei controlli non è più "corrente" (esiste un metodo
Invalidate() per questa segnalazione), e pertanto deve essere aggiornato sullo schermo.
Per fare questo, Windows invia un messaggio opportuno all'applicazione (tecnicamente,
WM_PAINT) che ricevuto dal Form e inoltrato ai controlli, consente a questi di ridisegnare il proprio aspetto per riflettere le modifiche apportate.
Tuttavia, il problema è che questo messaggio viene inviato all'applicazione e inserito nella relativa coda dei messaggi, quindi verrà di fatto gestito solo dopo che la directory è stata rimossa con l'istruzione che segue.
Riepilogando, le operazioni di cui stiamo parlando avvengono tutte in modo sincrono, ma l'ordine è il seguente (lo scrivo in pseudocodice prendendo spunto dal tuo):