Cita:
Empezado por walito
Bien, cuando arranca el programa se crean todos los form y luego los cierro(close) a todos los MDIChild, osea q ya estan creados.
|
Me extraña un poco esa afirmación. Un mdiChild no puede ocultarse así por las buenas, solo minimizarse o destruirse. ¿Los tienes minimizados?
- Si estan minimizados, no tiene sentido que funcione mal.
- si no están minimizados, entonces realmente no estan creados,es decir, se crearon, despues se destruyeron, pero el Form queda con una referencia inválida, de ahí que muestre el valor que pille en memoria.... pero tarde o temprano debería dar un Access Violation.
En el el formClose de cada ventana, añade:
Código Delphi
[-]
procedure Tform2.Close(....);
begin
action := cafree;
form2 := nil;
end;
Eso para el form2 y 3
Si al hacer ese cambio ves que tu programa empieza a dar Access Violation cada dos por tres, entonces, es que debes estudiar mejor como crear y destruir las ventanas.
Haz este pequeño experimento y nos comentas
saludos