Reholas,
Para crear los paneles:
Código Delphi
[-]
procedure Tform1.button1Click(...)
begin
p[i] := Tpanel.Create(nil)
end;
Estoy diciendo que nadie se encargue de liberar los paneles, ya que nosotros lo haremos manualmente.
Y al cerrar la ventana:
Código Delphi
[-]
for i:= low(p) to high(p) do
freeandnil(p[i])
caFree, es el valor del parámetro CloseAction del evento OnClose de la ventana.
Cuando una ventana se cierra, bien por código o bien pulsando la X de la ventana, se llama a ese evento, despues se comprueba si hay código en el evento OnCloseQuery, y por ultimo se ejecuta el código existente en el evento OnClose.
Modificando el parámetro CloseAction, puedes modificar el comportamiento de la ventana al cerrarse. Los valores posibles son:
Código:
caMinimize = al pulsar sobre la X, la ventana, se minimiza.
caHide = se oculta
cafree = se libera la ventana de memoria, y todos los recursos asociados
caNone = la X no hace nada
Por supuesto, si usas caFree, para volver a ver la pantalla tendrás que usar algo como:
Código Delphi
[-]
Application.CreateForm(Tform1, Form1);