FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Problema con ComponentEditor y TStringList
Hola a todos!
Mi duda es con respecto a la creación de un componente. Os comento un poco el estado actual. Hace ya bastante tiempo cree un componente basado en un TRichEdit que incluía algunas propiedades más. El componente lleva funcionando bien desde entonces, pero hace poco se me ocurrió la idea de crearle algunas propiedades más, entre la que destaco un TStringList. La función de esta propiedad es muy parecida a la de la propiedad Lines del TRichEdit, de manera que si en el inspector de propiedades se le hace doble clic a esta propiedad, aparece el mismo String List Editor que aparece al hacer esta doble pulsación sobre la propiedad Lines. La propiedad se integra bien con el asistente de Borland y no dan ningún problema A parte de crearle estas propiedades de más, le cree también un Editor de propiedades personalizado, ayudándome de la clase TComponentEditor. Al hacer doble clic sobre mi componente, en tiempo de diseño, aparece este asistente que practicamente hace lo mismo que el inspector de objetos de Borland pero de forma más visual y ofreciendo más ayudas. Al pulsar Aceptar sobre dicho asistente, todos los cambios realizados se trasladan al componente en cuestión en tiempo de diseño, y luego al compilar y ejecutar, como es lógico también van a parar al componente que se crea para la ejecución. El problema es el siguiente, al pulsar en Aceptar, todos los cambios se trasladan bien excepto los cambios en la propiedad de tipo TStringList que mencioné antes. Al pulsar el dichoso botón los cambios pasan al objeto en tiempo de diseño sin problemas, pero luego al ejecutar, esos cambios no se trasladan al objeto que se crea en tiempo de ejecución. He descubierto que si, tras cerrar mi asistente (pulsando en Aceptar), abro en el inspector de objetos la propiedad TStringList y sobre el asistente de Borland "String List Editor" pulso luego OK, los cambios sí que llegan a ejecución. De la misma forma, si pido ver el Form en modo texto (aparece el contenido textual del fichero DFM y dentro de este el contenido de la propiedad en cuestión actualizada) entonces también se trasladan los cambios. Con estos síntomas, creo saber donde está el problema, el TStringList es la única propiedad que he creado para este componente que tiene su constructor y destructor, por lo que dicha propiedad no es la misma en tiempo de diseño que en tiempo de ejecución. Según he leído por ahí, en estos casos el componente en ejecución puede mantener sus propiedades porque quedan reflejadas en el fichero DFM, pero parece que el asistente que cree como Editor del Componente no actualiza el fichero sino simplemente actualiza el componente en tiempo de diseño. Se me ha olvidado comentar una cosa que es importante, he dicho que tras pulsar Aceptar si pido ver el form en modo Texto, ahí puedo ver que los cambios se han actualizado en el DFM, pero realmente es "el proceso de ver el texto" el que actualiza los cambios. Esto lo he comprobado porque al cambiar la propiedad TStringList desde mi asistente Builder no me da la opción para guardar los cambios (es decir no ha detectado cambios en ningún fichero) y aparte si desde fuera de Borland abro el DFM, entonces no se ven los cambios. Y aquí es donde necesito vuestra ayuda, primero me gustaría que me dijérais qué pensais sobre la explicación que le doy al problema y segundo si realmente estoy en lo cierto, a ver si alguien puede indicarme qué es eso que el asistente de Borland "String List Editor" hace que mi asistente no, para que los cambios queden patentes en el DFM. Ha sido un poco largo de explicar, pero creo que no me dejo nada fuera, de todas formas como siempre, si algo no ha quedado claro o necesitais algún dato más pues no tenéis más que preguntar. Muchas Gracias por adelantado |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Problema al momento de crear objetos | DANY | OOP | 5 | 28-11-2005 10:28:05 |
Problema con los Post_Events | Aldo | Firebird e Interbase | 1 | 21-10-2005 12:58:10 |
problema con aplicación para consola | spab | Varios | 5 | 20-06-2005 11:25:51 |
TObjectList y TStringList | esquerda21 | Varios | 6 | 21-01-2004 15:16:58 |
TStringList | esquerda21 | Varios | 10 | 19-01-2004 11:15:21 |
|