Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 28-10-2003
aglopez aglopez is offline
Miembro
 
Registrado: may 2003
Posts: 11
Poder: 0
aglopez Va por buen camino
Unhappy Listar todas las propiedades de cualquier componente

Tras muchas vueltas y no dar con nada en claro, les pido ayuda con el siguiente problema:

Estoy programando una aplicación para diseño de catálogos y necesito guardar estos catálogos en una BD. Aquí se crean
numerosos componentes visuales en tiempo de ejecución a los
que se les puenden cambiar propiedades (tamaño, posición, fuente, color, etc..). Todo esto lo mantengo guardado (en memoria) en un TDA árbol, donde el nodo raíz es el fomulario principal, sus hijos las ventanas hijas, y dentro de éstas paneles, memos, images, etc.

Hasta aquí bien, pero quiero guardar esta estructura en BD y que al cargar un catálogo se creen todos los componentes con las propiedades que tenían al guardarlas.

Y mi problema es que necesito coger la lista de propiedades de cada objeto, nombre y valor, y guardar las que su valor no sea el que tenga la propiedad por defecto.

Muchas Gracias.
Responder Con Cita
  #2  
Antiguo 28-10-2003
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
En otras palabras lo que quieres es hacer un IDE.

Te recomiendo que leas el hilo Guardar los cambios de componentes nuevos en donde se muestra un método para leer y guardar componentes de un formulario de y a un archivo. Quizá no sea exactamente lo que deseas en cuanto a que tú lo quieres guardar en una base de datos y omitir las propeiedades cuyo valor es el de "default". Sin embargo creo que los métodos que allí se mencionan, WriteComponent y ReadComponent son un buen punto de partida para lo que buscas.

// Saludos
Responder Con Cita
  #3  
Antiguo 29-10-2003
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 27
jachguate Va por buen camino
Cool

De hecho, podes basarte en las rutinas de persistencia ya definidas en la clase TPersistent (de la que derivan, entre otras cosas, todos los componentes).

Podrias hacer con un botón, o una etiqueta, etc. una llamada a MiBoton.SaveToStream(...), donde el stream puede ser un campo blob de una tabla!, y luego, en tiempo de ejecución, restaurar sus propiedades con un LoadFromStream(..).

Con ello, trasladarías el método de persistencia por el cual los objetos son restaurados desde el ejecutable de tu aplicación, solo que esta vez, desde una base de datos.

Otra cosa... si investigas un poco en los fuentes de las rusas, que tienen un componente (ahora no recuerdo el nombre) que se basa en rutinas de RTTI (Run time type information) para salvar valores de propiedades en un INI o en el registro.

Hasta luego.

;-)
__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
  #4  
Antiguo 29-10-2003
aglopez aglopez is offline
Miembro
 
Registrado: may 2003
Posts: 11
Poder: 0
aglopez Va por buen camino
Gracias a todos.

Ví la luz y voy hacia ella.
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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


La franja horaria es GMT +2. Ahora son las 06:28:37.


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