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 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. |
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.
|
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 Gracias por la respuesta tan rápida. |
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). |
Puede ser que sea eso, pero me da error al compilar, dice que la propiedad Owner es de sólo lectura...
|
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. |
Cita:
Cita:
aTop lo inicializas en 0. Saluditos |
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. |
Cita:
|
La franja horaria es GMT +2. Ahora son las 10:48:16. |
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