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;