FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Destruir Qrlabels creados en tiempo de ejecucion
Mi problema es q creo los label en tiempo de ejecucion, algo asi:
y cuando cierro el informe y vuelvo a realizar otro claro pues se duplica label1,label2, segun el nº d campos, y ahi me da error, me dice: Cita:
he probado en el onclose del fom q alberga el quicrep, hay alguna manera de saber cuando se cerró? Tambien he probado, en el boton donde llamo a QuickRep2.Preview, tras esto hacer:
el error: raised exception class EListError whit message 'list index of boun(7)' deciros q el 7 creo q es el valor de i en ese momento, es decir el elemento q deberia destruirse ( sino e suna coincidencia ) Saludos y espero me puedan ayudar Saludos |
#2
|
||||
|
||||
Hola,
Podrías utilizar un objeto "TList" o "TObjectList" que instanciaras en una variable "global", o que estuviera dentro del "formulario de reportes" (nunca usé uno), es decir, suponiendo que su declaración fuera similar a un formulario normal y corriente, algo así:
Eso te permitiría ir creando instancias de "TQrLabel" e ir añadiendo sus referencias al objeto "TList" o "TObjectList". Al cerrarse el formulario o cuando estimaras más conveniente sería cuestión de liberar el objeto de marras. Ahora mismo no recuerdo si con "TList" basta con liberar dicho objeto o hay que "recorrer" la lista y liberar cada una de los objetos que contiene. Lo mismo te digo para "TObjectList". Tendrás que investigar o algún compañero nos sacará de dudas. Por otro lado, el error que refieres más arriba es bastante común, y es que, en estos casos en que recorremos los componentes de un formulario, por ejemplo, y vamos liberando algunos de ellos (dependiendo de X condición), hemos de iterar por dichos elementos con un bucle al revés que como suele hacerse, es decir, algo así:
|
#3
|
|||
|
|||
ok Dec, muchas gracias por tu ayuda , asi ya sale lo que queria:
Pero aun asi, he de aprender a utilizar un objeto "TList", ya q nunca lo he hecho Saludos |
#4
|
||||
|
||||
Hola,
Cita:
|
#5
|
|||
|
|||
La verdad es q una vez q funciona asi, asi se queda pero digamos q lo tengo pendiente pues he leido ya varios hilos relacionados, tendre q buscar primero un buen libro, manual o hilo en el q se entre en detalle.
Segun se seleccione en un groupbox (lleno de checkbox) los campos que se quieren mostrar en un dbgird (junto con sus datos obviamente) con el nº de campos seleccionados sera el nº de columnas del quickrep, y ya te digo lei que para eso era mejor Tlist pero dandole vueltas encontre otra forma, jejjje veremos a ver si en un futuro no es un problema, Saludos y gracias |
#6
|
||||
|
||||
Hola,
Bueno. Piensa que la descripción de la clase "TList" dice así: Cita:
Cita:
De todos modos, parece que "TObjectList" pone la cosa todavía un poco más interesante: Cita:
Última edición por dec fecha: 08-10-2006 a las 04:41:39. |
#7
|
||||
|
||||
Es que... con un TObjectList sería muchiiiiisimo más facil, Sin necesidad de bucles, y pudiendo destruirlos y crearlos a voluntad:
Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente, se lo volveré a explicar hasta que no lo entienda, Gracias. |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
cambiar tamaño y mover componentes creados en tiempo de ejecucion | gulder | API de Windows | 4 | 18-11-2006 23:21:16 |
Acomodar QRLabels en tiempo de ejecucion | rex | Impresión | 9 | 08-10-2006 00:02:22 |
Eventos en componentes creados en tiempo de ejecucion | joumont | OOP | 3 | 27-12-2005 14:48:23 |
destruir objeto creado en tiempo de ejecucuión | jaime cotino | Varios | 5 | 28-06-2005 20:45:36 |
Objetos creados en tiempo de ejecución | Scocc | OOP | 4 | 13-06-2003 20:55:29 |
|