FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
||||
|
||||
Crear en ejecucion varias instancias de un mismo grupo de elementos
Saludos a tod@s !
He estado buscando en el foro pero lo que he encontrado no me resuelve mis dudas. Quiero crear en tiempo de ejecución 70 'fichas' iguales, cada una de las cuales contiene 4 Label's, 6 Shape's y 1 Image. Me gustaría considerarlo como un Array para posteriormente poder referenciar directamente por el índice en el array. He pensado algo así como : pero así no me funciona al parecer. Como tengo que definir TRackCard ? Como Record, como TObject, como TObjectList ? Y como referirme correctamente a cada uno de los elementos de RackCard tales como ShapeA, ShapeB, etc ? Gracias como siempre por vuestros consejos. Saludos
__________________
Piensa siempre en positivo ! |
#2
|
||||
|
||||
Hola,
Usar un Array debería funcionar, empero, son objetos los que contiene el "record" y estos han de ser creados antes de acceder a los mismos. Por otro lado usar un Array presentaría otros problemas, que desaparecerían si usaras algo como un "TObjectList". Aunque a mí se me ocurre que puedas hacerlo de forma más o menos "visual", sobre todo si los controles de las "fichas" no variarán de ficha a ficha, es decir, nada te impide usar un formulario, donde situarías los controles que te fueran menester. Y a partir de ahí a rehusar el formulario, es decir, a crear instancias del formulario "plantilla" y mostrar este cuando fuera oportuno. Eso también te quitaría dolores de cabeza a la hora de crear objetos y destruirlos. Tal vez alguien pueda aportar otras ideas. |
#3
|
||||
|
||||
Gracias David por responder.
Tengo ya el formulario totalmente operativo con mis 70 fichas, cada una de ellas con 11 elementos (entre Shape's, Label's, etc). Además hay otros elementos adicionales en mi form. Lo que me lleva a tener más o menos 1000 (!!) elementos en mi formulario. Todos ellos creados en tiempo de diseño. Ahí no está el problema. Lo que pasa es que para referirme a cada elemento de cada ficha y cambiarlo de la manera adecuada, lo hago por ejemplo de la siguiente manera :
y no veo como referirme a ellos si no es utilizando FindComponent. Como ya se ha comentado en varias ocasiones en el Foro, FindComponent tiene que recorrer siempre toda la lista de componentes en el form para encontrar el adecuado. Por eso intentaba optimizar el proceso y en vez de como ahora, teniéndolos creados en tiempo de diseño, crearlos mediante un Array y poder referenciar entonces directamente por el Array, con lo cual supongo (... que no lo sé, y por eso quería probar) mejoraría bastante la velocidad. Y por eso pensé en crear un Array de 'fichas' a las cuales poder referirme directamente por su índice.
__________________
Piensa siempre en positivo ! |
#4
|
||||
|
||||
Hola,
Creo que no me expliqué bien respecto de la parte "visual" del asunto. Según yo lo veo cada ficha podría ser un componente, que contuviera a su vez los que fueran menester. Tal vez tendrías que fabricártelo tú mismo, y puede que no visualmente, pero, el caso es contar con un componente "ficha". Luego podrías usar dicho componente en tiempo de diseño o en tiempo de ejecución. Y referirte a los subcomponentes de su interior no por separado, sino a través de su "ficha" contenedora. Tal vez incluso podrías implementar algún que otro método en el componente "ficha" que te echara una mano. De este modo no se trataría ya de localizar un "Shape" entre los cientos que hay en las decenas de "fichas", si que se trataría de trabajar con las "fichas" más o menos directamente. Si luego además quieres añadir todas las "fichas" en un "TObjectList" (o un descendiente, de modo que pudieras añadir métodos y propiedades útiles al mismo) pues adelante. Pero no me hagas mucho caso... intento aportar alguna idea... nada más. Lo mismo no me estoy enterando de nada. |
#5
|
||||
|
||||
Pues si, eso es precisamente lo que pretendía.
No sé si para ello debo de crear un nuevo 'componente'. Creo que no. Lo que quería precisamente era agrupar todos ellos en 'algo' que se llame 'ficha'. Eso se puede ? Yo pensaba que se podría con un Record (o algo así) (que se denominara 'Ficha') que a su vez 'contuviera' a los diferentes Label's y Shape's. Y después tener un array de 'fichas'. Eso pretendía explicar al principio de este hilo. Lo que no sé es precisamente como codificar esa 'ficha' sin tener que crear como tal un 'componente' nuevo. No me parece oportuno utilizar para ello Frames, donde cada ficha fuera un frame.
__________________
Piensa siempre en positivo ! |
#6
|
||||
|
||||
Hola,
Es que depende... depende si lo quieres hacer en tiempo de diseño o en tiempo de ejecución. Creo que con lo de los "Frames" puedes haber dado en el clavo. De hecho, si estás haciéndolo en tiempo de diseño supongo que estarás usando algo así, porque no te imagino situando "cientos de Shapes" en un formulario... cada uno de su padre y de su madre. Si cada ficha contiene unos controles ahí tenemos un componente, llámese "frame" o llámese otro que creemos nosotros. Pero eso es un componente que contiene unos determinados controles. Estoy contando, por otro lado, conque las fichas contienen los mismos controles, porque de otro modo el asunto se complicaría. Pero aunque se complicara. Si existieran dos o tres tipos de fichas, todas serían un componente que tal vez pudiera heredar de una ficha "base". Y luego ver qué queremos hacer y cómo. Quiero decir que se me hace raro que quieras localizar el "Shape123", por ejemplo. Para mí que ahí falla algo... Entiendo que deberías trabajar con las fichas, individualmente. Porque además no entiendo que quieras trabajar con un "Shape123", que sería como si dijéramos que las fichas no son en realidad componentes, y cada "Shape" puede estar en una ficha u otra aleatoriamente. No sé. Tengo la sensación de que me voy por las ramas, de que no estoy fino ni te estoy ayudando en nada... pero, ya está dicho. |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Referencia a diferentes instancias del mismo Form | gluglu | OOP | 14 | 23-02-2007 17:22:32 |
Evitar múltiples instancias de un mismo form | Neomanar | OOP | 1 | 09-09-2005 17:10:26 |
Varias instancias DataModules | rodmayes | OOP | 1 | 05-09-2005 13:37:45 |
Múltiples instancias de un mismo formulario | Neomanar | Varios | 1 | 22-08-2005 15:20:29 |
Crear elementos en tiempo de ejecucion | Tecnic2 | OOP | 12 | 15-06-2005 20:12:42 |
|