Cita:
Empezado por Neftali
La liberación me parece correcta y luego recuerda borrar el índice 1 (Delete), ya que ahora te ha quedado un String en la posición 1 con un apuntador a ¿???¿?.
|
Efectivamente, si no se elimina el elemento entero, habría que hacer .Objects[1] := nil
Cita:
Empezado por Neftali
Lo que no me ha quedado claro es esto (el CAST como TObject), pero bueno:
Código Delphi [-]TObject(StrNew(PChar('QueTal')))
|
Es un cast para que acepte el puntero a la nueva cadena. A efectos prácticos, supongo que es equivalente a Pointer(StrNew(PChar('QueTal'))).
Lo que no entiendo muy bien es cómo haciendo .Objects[1].Free es capaz de liberar esa memoria, siendo que no se trata de un objeto creado mediante un constructor Create.