![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
|
|
#1
|
||||
|
||||
|
Cita:
El método WriteComponent de TStream trabaja con las subcomponentes, no con los subcontroles. Normalmente, cuando se insertan componentes en tiempo de diseño, todos tienen como "owner" al formulario, incluso cuando se insertan dentro de un control contenedor como un panel. WriteComponent(Panel) guardará el panel y todos los compoenentes que posea-- ninguno en el caso normal. Pero dado que la intención es guardar los componentes que se creen durante la ejecución bastará pasarle al constructor del componente el panel como parámetro pare que sea éste el "owner". Creo que esta sería la solución ideal. Por otro lado, es posible usar las rutinas ObjectTextToBinary y ObjectBinaryToText de la unidad "Clases" para que podamos guardar las componentes en formato de texto, tal como se ven cuando escogemos la opción "View as text" en un formulario. En estos momentos no tengo mucho tiempo pero creo que no sería muy difícil crear una componente TStoreComponent que englobe estas ideas y facilite su uso. La componente tendría la siguiente interfaz: Código:
TStoreComponent = class(TComponent) public procedure LoadFromFile(FileName: String); procedure SaveToFile(FileName: String); published property Component: TComponent; end; Si esto lo combinamos con la componente TSizeControl (no estoy seguro del nombre, hace no mucho puse aquí el enlace) que nos permite cambiar tamaño y posición de controles durante la ejecución, tendríamos un modesto editor de formularios. En fin, sólo algunas ideas. // Saludos |
|
#2
|
||||
|
||||
|
RE: Guardar los cambios de componentes nuevos
Estimado Roman:
He probado tu ejemplo y la verdad es que ha acelerado bastante mi aplicación, pues lo que hago es crear en tiempo de ejecución una suerte de form de "ABM" genérico, de esta forma crea los controles necesarios para dicho abm segun los campos de la Base de Datos. Pero tenia un pequeño retardo para las tablas grandes.. pues cada vez que se abria se creaba de nuevo. Con la forma que sugeris, se crean solo una vez y luego levantan la configuración del archivo si este existe.. lo que es bastante mas rapido. Ahora bien a continuación el problema: En ese ABM generico hay un grid, el cual tambien se "formatea" con los nombres de columnas y demás. Pero cuando guardo el form en el archivo ( destroy) . Guarda la configuración del grid solo si tiene algun ragistro, es decir si el dataset que alimenta al grid esta vacio (eof) No guarda los "titles" que yo habia configurado. Pero cuando tiene por lo menos algun registro si los guarda.. Tenés idea de que puede ser? Desde ya te agradezco cualquier ayuda fabián
__________________
desde Corrientes, Argentina.. Cuna del Libertador de America |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
|