Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 06-11-2007
NeoTrooper NeoTrooper is offline
Miembro
 
Registrado: oct 2006
Posts: 17
Poder: 0
NeoTrooper Va por buen camino
ListView y herencia

Hola!
Quieria preguntar si es posible y si es asi como

Tengo un ListView en Heredado de padre, y contiene unos valosres ya insertados en padre, pero no me los muestra en en formulario padre, sabeis porque ?

Gracias.
Responder Con Cita
  #2  
Antiguo 06-11-2007
NeoTrooper NeoTrooper is offline
Miembro
 
Registrado: oct 2006
Posts: 17
Poder: 0
NeoTrooper Va por buen camino
Especifico un poco mas.
Si Creo un ListView y hago Herencia de este formulario, SI que me apareceran valores que estan en padre, pero como toco o elimino algo en hijo, por mucho que borre todos los items no me vuelve a cargar lo que tiene padre.
Es como hacer un refresco que no hace.
Responder Con Cita
  #3  
Antiguo 06-11-2007
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Habría que ver cómo estás haciendo "la herencia". Y si realmente se trata de eso. Personalmente, no consigo entender bien qué sucede, ni hablar de porqué sucede así. Lo que a lo mejor ayudaría es que pusieras algo de código, o que explicaras punto por punto lo que quieres hacer, estás intentando hacer o necesitas hacer. No te cortes. Aquí no se cobra por palabras, así que, trata de explicarte un poco mejor y verás que algún compañero puede echarte una mano.
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #4  
Antiguo 07-11-2007
NeoTrooper NeoTrooper is offline
Miembro
 
Registrado: oct 2006
Posts: 17
Poder: 0
NeoTrooper Va por buen camino
Trabajo con Delphi 5
Creo formulario : Form1
voy a New--> Project1, asi hago herencia de Form1
Se me crea un Form2.

Pongo un LisView en Padre (aparece en en hijo efectivamente)
Modificando propiedades como me iran bien y añadiendo algun valor para probar. (otra vez en hijo sale igual que en padre) hasta aqui todo bien.

Entonces si añado algun valor o modifico ListView heredado en el hijo, no vuelve nunca a heredar los datos del ListView de Formulario padre. (borando todos los items del hijo en esperanza que si no hay nada en hijo cargara items de padre)

La unica manera de cargarlo otra vez que he conseguido es ir a View As Text de formulario hijo y quitar Linia que pone Data:{...} de ListView.
Entonces El hijo vuelve a cargar datos (items) del padre.

Ahora mi pregunta (que ha canviado desde primer post =)):
Hay alguna manera de decir al ListView de formulario hijo que me vuelva a cargar datos del padre sin ir a View As Text (dfm?). Alomejor hay algun propiedad hide o algo de por estilo que no me doy cuenta.
Responder Con Cita
  #5  
Antiguo 07-11-2007
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Cita:
Empezado por NeoTrooper
(...) Entonces si añado algun valor o modifico ListView heredado en el hijo, no vuelve nunca a heredar los datos del ListView de Formulario padre. (...)
Y cómo añades los items en el "ListView" del formulario heredado (o hijo), ¿estamos hablando del tiempo de diseño o del tiempo de ejecución?
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #6  
Antiguo 07-11-2007
NeoTrooper NeoTrooper is offline
Miembro
 
Registrado: oct 2006
Posts: 17
Poder: 0
NeoTrooper Va por buen camino
Diseño. Con Items editor.
Responder Con Cita
  #7  
Antiguo 07-11-2007
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Acabo de tratar de "reproducir" el problema, pero, no he podido. He creado un proyecto, y, en su formulario principal he añadido un "TListView" al que a su vez he añadido un "item". A continuación he creado un nuevo formulario heredándolo del primero, y, he añadido otro "item" al "TListView". Y todo va bien, es decir, como se espera: el "TListView" del segundo formulario muestra el "item" añadido en el formulario "padre" y el "item" que añadí (en tiempo de diseño) en el formulario "hijo".

Algo se escapa por ahí...

PD. He usado Delphi 2007 for Win32.
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #8  
Antiguo 07-11-2007
NeoTrooper NeoTrooper is offline
Miembro
 
Registrado: oct 2006
Posts: 17
Poder: 0
NeoTrooper Va por buen camino
Cita:
Empezado por dec Ver Mensaje
el "TListView" del segundo formulario muestra el "item" añadido en el formulario "padre" y el "item" que añadí (en tiempo de diseño) en el formulario "hijo".
Hasta aqui llego yo tambien, esto esta bien. ahora si, con todo esto que has hecho, intenta eliminar todos los componentes del "hijo" y añade 1 mas en padre, que es lo que quiero es que me vuelva a cargar los de "padre". En canvio se queda en blanco, ya que se ve que 1 vez modificando Data:{} de hijo no se volvera a cargar de padre, pero alomejor hay algun manera, aparte de ir a DFM a quitarselo.
Responder Con Cita
  #9  
Antiguo 07-11-2007
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

A ver. Cuando heredas el "TListView" estás heredando un objeto "completo" y por decirlo así independiente. Si tú haces cambios en el objeto padre, estos cambios se evidenciarán en el hijo (*), porque el hijo hereda del padre, esto es lógico, ¿verdad? Pero, si haces cambios en el objeto hijo... pasa lo que tiene que pasar: los cambios persisten, porque, el objeto hijo no deja de ser independiente.

Así que lo que ocurre no es un error, sino que es lo que se espera que pase. Tú heredas los "items" del objeto padre, pero, si borras dichos "items" en el objeto hijo, ¿quién es el objeto padre para añadir de nuevo los "items"? Ya lo hizo en un principio, así que si el hijo quiere deshacerse de ellos... es problema del hijo. ¿No?

(*) Ojo, los cambios se evidenciarán en el hijo si este no ha sido creado previamente. Se entiende que los cambios en el padre (una vez en tiempo de ejecución) no afectarán al objeto hijo, puesto que este es ya un objeto aparte.
__________________
David Esperalta
www.decsoftutils.com

Última edición por dec fecha: 07-11-2007 a las 11:45:20.
Responder Con Cita
  #10  
Antiguo 07-11-2007
NeoTrooper NeoTrooper is offline
Miembro
 
Registrado: oct 2006
Posts: 17
Poder: 0
NeoTrooper Va por buen camino
Cita:
así que si el hijo quiere deshacerse de ellos... es problema del hijo. ¿No?
Si, tienes toda la razon, la rpegunta es, hay alguna manera de decirle que me vuelva a cargar lo que tiene padre ?
Ya que imaginemos que lo habia modificado o borrado 1 elemento sin querer.
Responder Con Cita
  #11  
Antiguo 07-11-2007
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Pues... me temo que no exista forma, al menos tal y como planteas el asunto. O tal vez algún otro compañero pueda decir algo al respecto. En mi opinión, y, sin saber muy bien qué trata de conseguirse, cuál es el objeto de todo esto, pienso, a bote pronto, que existen otras formas de hacer "persistir" información.

Por ejemplo, si es preciso que un determinado "TListView" pueda "recuperar" sus datos originales, bastaría con guardar la información en un archivo, por ejemplo, con la información que nos interese, de modo que podamos luego recuperarla cuando nos sea precisa. Lamento no poder decir otra cosa, pero, tal vez lo dicho te ayude en algo.
__________________
David Esperalta
www.decsoftutils.com
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
Clases y herencia dec HTML, Javascript y otros 1 16-01-2007 10:53:36
Herencia miguel867 OOP 6 12-01-2007 23:08:20
Herencia... dunia_lv C++ Builder 3 29-05-2006 22:43:00
Herencia de Forms La__X Varios 1 20-01-2006 18:50:24
Herencia vegalisandro OOP 8 15-09-2003 14:30:42


La franja horaria es GMT +2. Ahora son las 18:55:22.


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