Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > C++ Builder
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 17-01-2006
Sonic Sonic is offline
Miembro
 
Registrado: may 2004
Posts: 40
Poder: 0
Sonic Va por buen camino
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
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

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


La franja horaria es GMT +2. Ahora son las 00:25:21.


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
Copyright 1996-2007 Club Delphi