Nella mia applicazione ho il seguente record:Devo finalizzare l'array di record in Delphi?
TTransaction = record
Alias: string
Description: string
Creation: TDateTime
Count: Integer
end;
e sto usando questo record in questo array:
Transactions = array of TTransaction;
Sto mantenendo la matrice caricata durante la fase di esecuzione, ma ad una data tempo ho bisogno di cancellare tutti i dati e aggiungere alcuni nuovi.
E 'quanto basta per usare:
SetLength(Transactions, 0); ?
o devo finalizzare qualcosa?
Does 'Finalize' in realtà cambia il valore di' a', però? Ho sempre avuto l'impressione che non lo facesse - che libera la memoria lasciando l'indirizzo originale dell'array dinamico memorizzato in 'a', in previsione di una successiva chiamata a' Free' o 'Initialize'. –
@Rob Per una matrice dinamica, queste tre opzioni sono tutte equivalenti. Per un tipo gestito, Finalize deve impostare il riferimento su zero. Non ha scelta. Si consideri una variabile locale di tipo array dinamico. –
@DavidHeffernan Nei casi in cui il limite massimo dell'array è 10, è meglio usare: 1- Impostare su Nil e ricreare tutto. 2 - Associare gli indici utilizzati ai valori successivi ?? – EProgrammerNotFound