Ver Mensaje Individual
  #17  
Antiguo 07-06-2007
Avatar de MaMu
MaMu MaMu is offline
Miembro
 
Registrado: abr 2006
Ubicación: Argentina
Posts: 863
Reputación: 21
MaMu Va por buen camino
Cita:
Empezado por Lepe
Debes revisar conceptualmente la comunicación entre las ventanas MDICHILD.

La única forma de que consigas lo que buscas es mostrando las ventanas modalmente, pero una ventana mdichild no puede mostrarse de forma modal. Son dos esquemas de funcionamiento distinto.

En entornos MDI, una ventana se destruye de memoria cuando se cierra, aunque el comportamiento por defecto en delphi es minimizarse... tú decides.

Se supone que en un entorno MDI, puedes cambiar de una ventana a otra con un clic, así que, supongamos que el usuario hace lo siguiente:
- Abre el form2
- Abre el form3
- CIERRA el form2
- Cierra el form3

Si al cerrar las mdichild se minimizan, no tendrás problemas, pero si las destruyes, obtendrás un Access violation porque Form3 estará intentando acceder a Form2, pero esa ventana ya no existe en memoria.

Existen métodos para que al cerrar una ventana, se notifique a otra de ese evento, si te interesa, busca en el foro por "FreeNotification"

Saludos
Segui tu sugerencia y lei un poco, que no viene nada mal. Solucione mi problema de la siguiente manera:

yo hacia

Código Delphi [-]
with TMiFormMDIChild.Create(self) do
    begin
        show;
    end;

Y lo cambie por

Código Delphi [-]
MiFormMDIChild := TMiFormMDIChild.Create(self);

Y lo solucioné.

Saludos y gracias a los dos.
__________________
Código Delphi [-]
 
try 
ProgramarMicro(80C52,'Intel',MnHex,True);
except
On Exception do
MicroChip.IsPresent(True);
end;
Responder Con Cita