![]() |
usar un editor de propiedades para TCollectionItem
saludos a todos:
tengo un problema que quisiera me ayuden a resolver, estoy creando un grid el cual tiene asociado cada columns a un TCollectionItem, hasta ahi todo bien. el problema es que no encuentro la forma de por ejemplo cuando borre una columna en el editor de propiedades lo haga automáticamente en el grid, es decir que me notifique ya que debo hacer ciertas operaciones y cálculos cuando suceda eso, por ello hice un nuevo editor de propiedades usando un TForm. hasta ahi y todo funciona cuasi-perfectamente, el problema es que veo que voy a seguir y seguir añadiendo nuevas propiedades al TCollectionItem y la verdad creo que se va a hacer más complicado estar modificando siempre mi editor de Propiedades, por ello quisiera saber si alguno de ustedes conoce un editor de propiedades para elementos de tipo TCollectionItem o conoce la forma de como notificar cuando cree o justo antes de que se elimine un elemento en el TCollection, uso delphi 7. gracias por su atención |
Me parece que el problema no se soluciona con tener un editor de propiedades personalizado, porque si agregas o quitas columnas en runtime tampoco se ejecutarán estos cálculos que mencionas. Sugiero que implementes mecanismos de comunicación entre tus clases, es decir, que cuando agregues un TCollectionItem tu colección le informe al su dueño, en este caso el gris, que la cantidad de ítems ha cambiado, y de ese modo realice los cálculos necesarios. De esta manera tanto si la colección se modifica desde un editor de propiedades o desde código, siempre se realizarán los cálculos necesarios.
Fíjate el ejemplo del modelo del TDBGrid donde las columnas son controladas por la colección TDBGridColumns que requiere en el momento de ser creadas un Owner del tipo TCustomDBGrid. Saludos! |
imagino que no me queda otra y seguir investigando, he visto el modelo del TdbGrid pero creo no he investigado lo suficiente para ver el método que se ejecuta antes y despues de eliminar una columna, seguiré informando:p
|
La franja horaria es GMT +2. Ahora son las 17:54:12. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi