FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Problema al cerrar programa con matriz de objetos.
Hola:
He creado un programa que hace una matriz de objetos del tipo TLabel. Creo los objetos y los distribuyo en el formulario. Pero cuando ejecuto mi formulario, al querer intentarlo (es decir, cerrar mi programa) me sale siempre un error que dice: 'Invalid Pointer operation'. ¿A qué se refiere? ¿Cómo soluciono el problema? Gracias. |
#2
|
||||
|
||||
¿Puedes poner un fragmento de cómo los creas y cómo los destruyes?
// Saludos |
#3
|
|||
|
|||
Ok.
Tfm_Principal = class(TForm) procedure FormCreate(Sender: TObject); private //declaro la matriz. mt_NumeroA: array of TLabel; public { Public declarations } end; var fm_Principal: Tfm_Principal; implementation {$R *.dfm} procedure Tfm_Principal.FormCreate(Sender: TObject); var conteo: byte; begin //creo los objetos. setlength(mt_NumeroA,7); for conteo:=0 to 7 do begin mt_NumeroA[conteo]:= TLabel.Create(nil); mt_NumeroA[conteo].Parent:=fm_Principal; mt_NumeroA[conteo].Caption:=inttostr(conteo); mt_NumeroA[conteo].Left:=5; mt_NumeroA[conteo].Top:=15+15*conteo; end; end; end. No sé cómo debo destruirlos. He destruido otros objetos, pero nunca intenté con matrices. |
#4
|
||||
|
||||
A bote pronto veo un error: creas un arreglo de 7 elementos pero asignas 8 (0..7).
Ahora, todos esos objetos tienes que destruirlos o poco a poco perderás memoria. Puedes, al término del programa (evento OnDestroy del formulario) recorrer con un ciclo el arreglo aplicando el método Free de cada objeto. O bien puedes construir los objetos con
De esta manera estás indicando que Self (el formulario en este caso) es el "dueño" del objeto creado. Los dueños se encargan en automático de destruir a sus componentes. // Saludos |
#5
|
|||
|
|||
¡Funcionó! ¡Ya no sale el error! Gracias por tu ayuda, estaba creando 8 objetos, pero mi variable tenía una longitud de 7.
Gracias una vez más. Saludos. |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Opcion de cerrar el programa | ilichhernandez | OOP | 5 | 09-06-2006 10:15:19 |
Matriz de objetos en Delphi | metalfox6383 | Varios | 14 | 30-12-2005 18:33:30 |
Cerrar el programa al acabar un thread | tortelini | API de Windows | 2 | 07-04-2005 22:26:18 |
Cerrar mi programa desde otro | Sr_Sombrero | API de Windows | 2 | 02-12-2004 22:12:09 |
Liberar un matriz de objetos | soul6301 | Varios | 8 | 04-08-2004 09:19:53 |
|