Differenze tra le versioni di "Evitare la perdita di memoria chiudendo forzatamente un Form"
Riga 1: | Riga 1: | ||
In talune particolari circostanze può accadere che utilizzando, per chiudere un ''Form'' (o comunque il programma), l'istruzione ''Quit'' si abbia in console questo tipo di messaggio: | In talune particolari circostanze può accadere che utilizzando, per chiudere un ''Form'' (o comunque il programma), l'istruzione ''Quit'' si abbia in console questo tipo di messaggio: | ||
''gbx3: warning: 1 allocation(s) non freed.'' | ''gbx3: warning: 1 allocation(s) non freed.'' | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
Detto avviso sta a significare che nel chiudere il programma o comunque il ''Form'' è avvenuta una perdita di memoria (''[https://it.wikipedia.org/wiki/Memory_leak Memory Leak]''): l'area di memoria riservata attinente in tal caso ad un componente grafico non è stata liberata adeguatamente e resta pertanto ''riservata'', inservibile, non sovrascrivibile. | Detto avviso sta a significare che nel chiudere il programma o comunque il ''Form'' è avvenuta una perdita di memoria (''[https://it.wikipedia.org/wiki/Memory_leak Memory Leak]''): l'area di memoria riservata attinente in tal caso ad un componente grafico non è stata liberata adeguatamente e resta pertanto ''riservata'', inservibile, non sovrascrivibile. | ||
− | |||
Per ovviare a questa perdita di memoria, bisognerà provvedere via codice a liberare l'area di memoria riservata dell'oggetto, agendo mediante la funzione ''Free()'', e prima del comando ''Quit'', sull'indirizzo dell'oggetto medesimo fornito dal Metodo ".Address()" della Classe ''Object'': | Per ovviare a questa perdita di memoria, bisognerà provvedere via codice a liberare l'area di memoria riservata dell'oggetto, agendo mediante la funzione ''Free()'', e prima del comando ''Quit'', sull'indirizzo dell'oggetto medesimo fornito dal Metodo ".Address()" della Classe ''Object'': | ||
Riga 24: | Riga 9: | ||
'''End''' | '''End''' | ||
− | |||
'''Public''' Sub Button2_Click() | '''Public''' Sub Button2_Click() |
Versione delle 14:40, 23 giu 2023
In talune particolari circostanze può accadere che utilizzando, per chiudere un Form (o comunque il programma), l'istruzione Quit si abbia in console questo tipo di messaggio:
gbx3: warning: 1 allocation(s) non freed.
Detto avviso sta a significare che nel chiudere il programma o comunque il Form è avvenuta una perdita di memoria (Memory Leak): l'area di memoria riservata attinente in tal caso ad un componente grafico non è stata liberata adeguatamente e resta pertanto riservata, inservibile, non sovrascrivibile.
Per ovviare a questa perdita di memoria, bisognerà provvedere via codice a liberare l'area di memoria riservata dell'oggetto, agendo mediante la funzione Free(), e prima del comando Quit, sull'indirizzo dell'oggetto medesimo fornito dal Metodo ".Address()" della Classe Object:
Public Sub Button1_LostFocus() Print "Button1_LostFocus" End Public Sub Button2_Click() Free(Object.Address(Button1)) Quit End