Perdona fsurfing, ma Format serve per formattare valori diversi da stringa, e convertirli appunto in una stringa, nel formato voluto. Se la converti prima con CStr(), format non riesce a capire cosa deve fare, o perlomeno può creare dei problemi...
Il valore passato da Lux è corretto, ma non essendo inizializzato, viene riportato il suo valore di inizializzazione, ovvero zero.
Se poi, invece, l'ha popolato con l'operazione che ha scritto in quest'ultima mail, allora c'è qualcosa che non và...
1) Qual'è il valore di DFree() senza la divisione?
2) Sei sicuro che sul tuo sistema il punto decimale viene considerato come divisore decimale? Provato con la virgola?
3) Sei sicuro che le dimensioni inserite in Draw() non siano troppo piccole?
Penso che tu debba procedere a piccoli passi, ovvero verificare se DFree() ritorna un valore corretto, se la divisione ritorna un valore rappresentabile, se il carattere punto del formato è accettato, se le dimensioni di Draw() possono contenere tutto il numerello.