![]() |
![]() |
![]() |
![]() |
![]() |
FTP | ![]() |
![]() |
CCD | ![]() |
![]() |
Buscar | ![]() |
![]() |
Trucos | ![]() |
![]() |
Trabajo | ![]() |
![]() |
Foros | ![]() |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
![]() |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Liberar formularios
hola gente tengo un problema.
tengo una aplicacion que crea en tiempo de ejecucion todos los forms menos el principal. ahora, cuando el usuario cierra la sesion, de esta aplicacion, quiero liberar la todos los forms y además asignarles nil. hasta ahora probe lo siguiente sin exito. Código:
tot := Application.ComponentCount -1; for i := 0 to tot do begin if (i < Application.ComponentCount) and (Application.Components[i] <> nil) and (Application.Components[i] is TForm) and (Application.Components[i].Name <> 'fPrincipal') then begin faux := (Application.Components[i] as tform); (Application.Components[i] as tform).Free; faux := nil; end; end; como puedo resolver este problema? gracias de antemando por su ayuda.
__________________
El secreto de la libertad está en no tener miedo. |
#2
|
||||
|
||||
Es que la variable que estas apuntando a Nil, es la variable faux, si el formulario en tiempo de ejecución fue asignado a otra variable, la otra va a seguir manteniendo el valor anterior.
Saludos!
__________________
delphi.com.ar Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla. ![]() |
#3
|
|||
|
|||
hola delphi.com.ar lo que dices es correcto, pero como puedo asignarle nil si no puedo hacer
(Application.Components[i] as tform) := nil ni Application.Components[i] := nil gracias.
__________________
El secreto de la libertad está en no tener miedo. |
#4
|
||||
|
||||
El tema es que vas a tener que asignarle nil indistintamente a todas las variables, si los formularios no tienen múltiples instancias, puedes asignarle Nil a la variable en el OnDestroy de los mismos.
Saludos!
__________________
delphi.com.ar Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla. ![]() |
#5
|
|||
|
|||
la verdad no queria llegar a esa instancia ya que son muchos formularios .. queria ver si podia hacerlo con una rutina generica ... pero si no surge nada tendre que hacer como tu bien dices en el ultimo mensaje.
saludos
__________________
El secreto de la libertad está en no tener miedo. |
#6
|
||||
|
||||
Sinceramente, en la mayoría de mis "proyectos" no uso ninguna variable para acceder a los formularios, mas que la de los DataModules, y la del formulario principal (MDI). Como no tengo necesidad de comunicarme con los formularios individualmente una vez creado, directamente borro la variable, y los creo simplemente:
Código:
TMiFromulario.Create(Self);
__________________
delphi.com.ar Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla. ![]() |
![]() |
|
|
![]() |
|