![]() |
insuficiente memoria / insuficient memory
Hola a todos,
Mi problema es el siguiente: Tengo dos aplicaciones hechas en delphi 5 una por mi y otra por un proveedor externo o sea no cuento con el codigo fuente. Cuando ejecuto ambas aplicaciones en una PC, sea con windows98, 2000, XP o NT, funcionan sin problema pero cuando la mia en algunas ocaciones despues de tantas veces de abrir y cerrar da un error de "insuficient memory" aparentemente del BDE y la solucion que encontre para esto es cerrar ambas aplicaciones y volverlas a abrir. Por otro lado ocurre lo mismo si estoy trabajando en una nueva aplicacion y de tantas veces de darle para ejecutar da el mismo error "insuficient memory" y solo me resta abrir y cerrar. Alguien me podria decir que hacer porque en todos los casos los formularios son variables y se crean y destruyen en la medida que se usan. ademas la aplicacion termina con "application.terminate". Será que debo actualizar algo del BDE ? pero porque la aplicacion del otro proveedor no da este error... Ayuda por favor..... |
Usa Application.Close o simplemente haz un Close del formulario principal.
Application.Terminate es para casos extremos. Saludos |
Lepe, al menos hasta donde yo entiendo no existe application.close, si existe close del formulario y ya probe con eso y me sigue dando los mismos problemas.
Realmente no se porque me da este tipo de problemas..... |
Hola mmateo25v.
Prueba lo siguiente. Cuando creas el formulario, abres las tablas que se utilicen y antes de destruir el formulario, las cierra. No se ti te servirá, pero por lo menos se evita que las tablas se queden abiertas y se puedan dañar. Un saludo. |
Cita:
Si te dice el error de memoria insuficiente, entonces es que algun objeto que se crea, se deja en memoria, bien porque se machaque el apuntador, o bien porque no se libere correctamente, (o incluso ambas cosas). Por qué dices que es aparentemente del BDE? Tienes algo más de información?. Si no dispones de más informacion, postea el método que usas para crear objetos, (ventanas, tstringlist o lo que creas conveniente). A ver si entre todos lo podemos solucionar. Saludos |
Este es el metodo que utilizo para crear un form, desde el formulario principal, ya que todos estan definidos en el proyecto como available.
if Assigned(form11) then form1.Show else form1 := Tform1.Create(Application); Posteriormente en el formulario "form1" hago lo siguiente: procedure Tform1.FormCreate(Sender: TObject); begin table.open; end; procedure Tform1.FormCreate(Sender: TObject); begin table.Close; Action := caFree; form1 := nil; end; y en en close del formulario principal cierro inclusive la base de datos y hago lo siguiente: procedure TformPrincipal1.FormClose(Sender: TObject; var Action: TCloseAction); begin database.close; Action := caFree; formPrincipal1 := nil; Application.Terminate; end; Espero me puedan ayudar. Gracias. La verdad que no tengo muy claro si es el BDE o es mi aplicacion, pero en todos los casos que cierro todos los programas que hacen referencia a alguna libreria del bde y luego empiezo nuevamente a abrir las aplicaciones funciona correctamente, es por eso nada mas que digo que puede ser el bde, pero es más seguro que sea mi aplicacion que no este haciendo algo bien y quede algo abierto en memoria que impide que otra aplicacion pueda ser ejecutada. |
A mi me pasó algo parecido y me di cuenta que dejaba los querys abiertos.
Cerraba las tablas pero no los querys. De momento no me ha vuelto a suceder. Una manera que tengo para comprobar si hay alguna tabla abierta es reindexar las tablas. Si las tablas estan cerradas me reindexa perfectamente, pero si hay alguna abierta o que se este utilizando, me salta la exepción. Desde el formulario principal llamo a los otros de esta manera en el evento OnActivate del formulario que abro Y el el evento OnClose del formulario Asi es como lo solucione. Un saludo. |
La franja horaria es GMT +2. Ahora son las 15:36:56. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi