FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Crear instancias de objetos creados con TPanel
Hola, no sé si me he explicado muy bien, no sabía hacerlo mejor.
Quiero mostrar información de una determinada forma: una imagen y un texto (una portada de una película y un título, respectivamente), para ello en un formulario (lo he llamado FrmObjetosCTP) he creado un panel que contiene un TPanel (llamado PnlPrevPelícula) y dentro de este hay un TImage y un TLabel. Ahora lo que me gustaría es, desde otro formulario, crear múltiples instancias de este panel para poder mostrar este tipo de información todas las veces que sea necesario. Quizá no sea la manera de hacerlo, nunca antes había intentado hacer algo así. He intentado crearlo dentro de un TScrollBox (ScBPelículasAbiertas) mediante este código, pero no funciona: Código:
FrmObjetosCTP.PnlPrevPelícula.Create(ScBPelículasAbiertas); Código:
var NuevaPev: TPanel; begin PnlPelículasAbiertas.Visible:=True; NuevaPev:=PnlNuevaPelícula.Create(ScBPelículasAbiertas); end; También quería hacer con estas una lista doblemente enlazada para poder hacer referencia entre ellas y poder eliminarlas cuando fuera necesario, pero no sé cómo crear variables ligadas a este objeto, ya que lo que he creado no es en realidad una clase, creo que me queda mucho que aprender en este tema. Un saludo y gracias por vuestro tiempo. |
#2
|
||||
|
||||
Si te he entendido bien, deberías utilizar un "marco" (TFrame). Los TFrame son como los TForm, la diferencia está en que los marcos los puedes crear dentro de otro marco o de una ventana, o incluso dentro de un TScrollBox.
|
#3
|
|||
|
|||
Creo que sí es eso lo que busco, lo estoy intentando, pero al crearlo no me aparece, he intentado también crearlo en un formulario nuevo, por si acaso era problema de crearlo dentro del ScrollBox, con este código;
Código:
var NuevaPrev: TObjPrevPelicula; begin NuevaPrev:=TObjPrevPelicula.Create(Self); end; Gracias por la respuesta tan rápida. |
#4
|
||||
|
||||
Quizá estás olvidandote de asignar el contenedor (Owner) del objeto. Prueba esto:
Estoy suponiendo que TObjPrevPelicula es un componente visual y que SELF es una ventana TForm. Si el contenedor no es la ventana, entonces debes asignar al Owner el objeto que sea (por ejemplo un panel, el ScrollBox, etc). |
#5
|
|||
|
|||
Puede ser que sea eso, pero me da error al compilar, dice que la propiedad Owner es de sólo lectura...
|
#6
|
||||
|
||||
La propiedad owner la estas especificando en la creación del componente:
El único parámetro de Create en los objetos visuales es owner. Cita:
Tal vez deberías jugar con el parámetro "Parent" que es en el que puedes especificar la ventana padre del componente. Esta propiedad no es de solo lectura, por lo que puedes cambiarla en el momento que tu quieras. Para encapsular los tres componentes dentro de un TPanel, tal vez deberías crear una clase o componente secundario derivado de TPanel conteniendo dichos componentes dentro. No puedes usar el TPanel creado en un TForm, ya que los objetos que hay dentro del TPanel están definidos dentro de la clase TForm y no de la clase TPanel. Un saludo.
__________________
"La recompensa de una buena acción está en haberla hecho" |
#7
|
||||
|
||||
Hola Kandorf, es porque debes asignarle un Parent como te han indicado, en tu caso el Parent sería el ScrollBox.
Cita:
aTop lo inicializas en 0. Saluditos
__________________
Disfruten cada minuto de su vida a lado de sus seres queridos como si fuese el ultimo, uno nunca sabe lo que puede pasar. |
#8
|
|||
|
|||
Sois la leche! Funciona todo perfectamente, era cosa el Parent, gracias también por todos vuestros consejos, por vuestra rapidez y por entendernos aunque nos expresemos a nuestra manera ^^
Saludos. |
#9
|
||||
|
||||
¡Ooops! Vaya despiste. Quise decir "Parent". Eso. Bueno, ya te lo han explicado y lo has solucionado, así que ya lo sabes.
|
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Problema con limite de instancias de objetos (TBitBtn) | nuk3zito | OOP | 31 | 08-12-2008 22:07:20 |
duda al crear un descendiente de tpanel | hibero | OOP | 1 | 23-05-2008 21:07:52 |
Recorrer todos los objetos creados de una clase propia | mierda | OOP | 1 | 25-10-2007 19:52:10 |
Compartir "objetos" entre varias instancias | mafebresv | Varios | 4 | 16-01-2006 23:38:23 |
Objetos creados en tiempo de ejecución | Scocc | OOP | 4 | 13-06-2003 20:55:29 |
|