Hola a todos, perdon si vuelvo con mi problema de siempre, pero esta vez necesito una solucion definitiva porque sino pierdo el trabajo (o mejor dicho, al no encontrar solucion al problema voy a tener que dejar el proyecto). El problema es el siguiente: Tengo un proyecto del tipo MDI, tengo varias form hijas, de todas las form hijas hay una que necesito que se repita, es decir tengo un form del tipo fsMDIChild que lo guarde con distintos nombres, despues agrego los forms al proyecto teniendo por ejemplo forms adetallada, agendadetallada1, agendadetallada2, agendadetallada3, etc. El codigo que crea los forms es el siguiente:
Código Delphi
[-]
Application.Initialize;
Application.CreateForm(TMainForm, MainForm);
Application.CreateForm(TAboutBox, AboutBox);
Application.CreateForm(Tagendadetallada1, agendadetallada1);
Application.CreateForm(Tagendadetallada2, agendadetallada2);
Application.CreateForm(Tagendadetallada3, agendadetallada3);
Application.CreateForm(Tagendadetallada5, agendadetallada5);
Application.CreateForm(Tagendadetallada6, agendadetallada6);
Application.CreateForm(Tagendadetallada7, agendadetallada7);
Application.CreateForm(Tagendadetallada8, agendadetallada8);
Application.CreateForm(Tagendadetallada9, agendadetallada9);
Application.CreateForm(Tagendadetallada11, agendadetallada11);
Application.CreateForm(Tagendadetallada12, agendadetallada12);
Application.CreateForm(Tagendadetallada13, agendadetallada13);
Application.CreateForm(Tagendadetallada14, agendadetallada14);
Application.Run;
El tamaño del ejecutable es de 5 mb aprox., el form agendadetallada tiene cientos de componentes tedits. Al proyecto tengo que agregarle 6 forms agendadetallada mas, pero no puedo ni agregarle uno mas porque aparece el error: 'system error. code: 14 Espacio de almacenamiento insuficiente para completar esta operacion.'
Se que no es un problema ni de disco ni de memoria porque tengo lo suficiente, 40 gb en disco libre y la memoria del sistema es de 1gb. Al ejecutar el programa con la funcion F8 (paso por paso) en el momento que se ejecuta la instruccion Application.CreateForm(Tagendadetallada15, agendadetallada15); aparece el mismo error.
Otra forma de crear el proyecto fue la siguiente: el form agendadetallada lo puse en el repositor de objeto con la funcion adecuada "Add to Repository", despues creo otro proyecto MDI y le adiciono los forms de la siguiente forma: File -> New -> Other..., despues selecciono el form agendadetallada y selecciono, cambio la opcion de "Copy" a "Inherit". Realizo estos pasos con la cantidad de forms que necesito, al compilar la aplicacion el tamaño del ejecutable llega a 1 mb, entonces pense que ahora si funcionaria pero el error sigue apareciendo.
Quizas el problema no es de mi aplicacion sino del mismo sistema operativo windows, o algun tipo de configuracion especial de windows para que me permita utilizar mas recursos del sistema (memoria, disco, etc). Un dato mas que les puedo dar es que cuando aparece el error y la aplicacion esta mostrando el error, no puedo abrir ningun otro programa (por ejemplo el internet explorer), el internet se empieza a cargar pero queda colgado, lo que me hace suponer que realmente es un problema de memoria o de configuracion de memoria, lo mismo ocurre cuando ejecuto una version del proyecto que funciona, es decir con la cantidad de forms necesario para que se ejecute, pero si quiero ejecutar otra instancia de la aplicación me aperace el mismo error. La solucion a mi problema se podria realizar de dos formas o por lo menos es lo que me parece:
1- Configurar al sistema operativo para que mi aplicacion utilice mas memoria que la que se le asigna a cada programa por defecto.
2- En mi aplicación crear los forms no de la forma por defecto (createform) sino mediande otra forma (getmem, memalloc o algo parecido), de tal forma que se le asigne la memoria necesaria a mi aplicacion desde el principio.
Quizas todo lo que digo esta mal, pero en este momento nose que otra cosa hacer mas que esperar alguna ayuda de ustedes. Muchas gracias.