Problema usando el objeto TStrings
Hola:
Tengo este código: procedure Tfr_principal.lb_buscarClick(Sender: TObject); var vr_tags: TStrings; begin vr_tags.Append('texto'); end; Quiero utilizar el objeto TStrings para crear una lista de textos, pero al intentar crear el primer elemento de la lista, me aparece este error: http://mpo9qg.bay.livefilestore.com/...asd.jpg?psid=1 ¿qué es lo que anda mal? Gracias. |
Hola.
Antes de utilizar vr_tags tenés que crear una instancia de la clase. Como TStrings es abstracta debés usar un descendiente en la creación, por ejemplo TStringList.
En algún punto, luego que termines de usar vr_tags, deberias liberar el recurso con:
Saludos. :) |
Primero tienes que crear el objeto, para despues utilizarlo:
No debes olvidar liberar el objeto después de finalizar con su uso. |
Muchas gracias. Ha funcionado. Una interrogante más: ¿Qué sucedería si no la libero?
|
Hola
Si no la liberas y vuelves a llamar al evento dirá que el TStrings ya esta creado y no lo puede volver a crear dando error. Si no me equivoco. Saludos |
Cita:
degradación de la perfomance y hasta fallos por falta de memoria. En un ejemplo como ese, realmente no es apreciable la memoria ocupada. Pero es importante tomár como práctica la liberación de los recursos utilizados; por que la memoria, aunque hoy es abundante, sigue siendo finita... ;) Saludos. :) |
|
Hola.
Por si quedara alguna duda te pongo un ejemplo con el que podés comprobar el efecto de no liberar recursos:
Dale unos cuantos clicks al botón y me contas... ;) Saludos. :) |
Hola
Bien: Entonces suponemos que free libera la memoria, no?. Siguiendo tu ejemplo, que pasa aqui amigo?: Que hago mal? Saludos |
Hola mi amigo.
No estás haciendo nada mál, lo que sucede que la intención del código que puse de ejemplo es precisamente forzar un error por falta de liberación de recursos. Es decir que nada correcto saldrá si nos basamos en ese código. Ahora si me limito al código que adjuntaste, el problema es que en Button1Click se crean un millon de instancias de TStrings y en Button2Click sólo se puede liberar una. Saludos. :) |
La franja horaria es GMT +2. Ahora son las 15:05:37. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi