FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
||||
|
||||
Implementar una propiedad de tipo TStringList
Estimados
Tengo la necesidad de agregar una propiedad a un componente. Dicha propiedad quiero que esté publicada cuando se use dicho componente. Esta propiedad será llamada Texto (por ejemplo). Quiero que sea de tipo TStringList. El problema está en que esta propiedad, al momento de leerla o escribirla no accede a un objeto privado del componente sino a otra fuente de datos (un archivo, por ejemplo u otra fuente de datos). Entonces, con estos parámetros les pego un código a modo de ejemplo:
Las dudas son: La función GetTexto crea todas las veces un objeto de tipo TStringList. ¿Esto no es algo malo? ¿Al estar generándose un objeto cada vez que se ejecuta la función no se está consumiendo mas memoria? ¿Cuando se destruye este objeto? Desde yá muchas gracias por su tiempo Saludos Última edición por masedano fecha: 25-03-2011 a las 03:36:25. |
#2
|
||||
|
||||
Hola masedano.
Creo que podrías usar una variable privada de tipo TStringList cuya creación tenga lugar en el constructor y su liberación en el destructor. De ese modo la vida de la variable comienza con la instancia del objeto, se utiliza durante la existencia del mismo y se libera cuando es destruido. El método SetTexto debería guardar los valores en la variable privada y el método GetTexto obtenerlos de ella. Un saludo.
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
#3
|
|||
|
|||
Hola masedano,
Me parece que no estás enfocando bien el problema. Verás: tú quieres acceder a una serie de strings, contenidos estos en un archivo. Por tanto, necesitarás una propiedad que contenga strings y alguna variable en la que indiques el archivo. Yo lo haría así:
Cita:
Cita:
Y si encima la llamada es del estilo: miStr:=X.Texto[2], entonces pasa totalmente desapercibida dicha creación, ya que en la función que llama a GetTexto (a través de X.Texto) no tienes ningún TStringList que puedas destruir, sino tienes una simple string. Espero haberte ayudado. Un saludo, LoPiTaL Última edición por LoPiTaL fecha: 25-03-2011 a las 08:51:39. |
#4
|
||||
|
||||
ecfisa y LoPiTaL
Muchas gracias por vuestras respuestas. Con ellas veré que puedo resolver. Si tengo novedades les cuento. Saludos |
#5
|
|||
|
|||
Ui!
Perdón ecfisa, no vi tu respuesta. Básicamente lo que he comentado es lo mismo que pusiste tú. Un saludo, LoPiTaL |
#6
|
||||
|
||||
Cita:
No tenés por que disculparte, todo lo contrario . Seguramente ha ayudado mucho a masedano el código que aportaste y que además está muy bién explicado. Un saludo.
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... Última edición por ecfisa fecha: 28-03-2011 a las 22:16:45. |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Propiedad del tipo TComponentClass | basti | OOP | 2 | 16-03-2007 09:06:29 |
Implementar una nueva opción para la propiedad "FormStyle" | JM75 | OOP | 3 | 15-02-2007 15:53:44 |
Propiedad tipo TFileName | Kreyser | OOP | 3 | 20-10-2005 18:44:54 |
Propiedad tipo Objeto | buildero_d | OOP | 16 | 09-09-2005 00:01:55 |
Propiedad de tipo TShortCut | eMax | OOP | 8 | 11-06-2003 22:47:01 |
|