Ver Mensaje Individual
  #11  
Antiguo 10-11-2011
Avatar de burgosrodas
burgosrodas burgosrodas is offline
Miembro
 
Registrado: sep 2008
Ubicación: Colombia
Posts: 24
Reputación: 0
burgosrodas Va por buen camino
Error en evento FormClose

Cita:
Empezado por escafandra Ver Mensaje
Yo me preguntaría si Sender es un formulario y el formulario que quieres cerrar...
Si quieres cerrar TKyndo, ¿No es mas fácil escribir directamente close?, en caso contrario ¿Quién es Sender?

Falta saber también si tienes escrito el evento OnClose y que hace.


Saludos.
Hola escafandra, gracias por tu respuesta tan rápida

me disculpo si mi explicación no es lo suficientemente clara...
pues la clase TKyndo es solo un clase con la que manejo mi aplicación, me explico
cuando quiero crear una ventana o Form nuevo, desde TKyndo.CrearVentana(); lo hago,
dado que allí manipulo el color, posición etc.. y asigno eventos a todas las ventanas que se creen en la aplicación,
desde TKyndo no cierro ninguna ventana, simplemente creo otro procedimiento TKyndo.FormKeyDown();
(dentro de mi clase kyndo) y lo asigno a cada ventana que se crea, este ultimo procedimiento son los eventos del teclado que todos mis Forms van a tener, como por ejemplo cerrar la ventana con la tecla Escape etc..., por lo tanto el Sender del que se habla es del formulario en cuestión, el que quiero cerrar.

ya en dicho formulario tengo este evento OnClose
Código Delphi [-]
procedure TFrmOpciones.FormClose(Sender: TObject; var Action: TCloseAction);
begin

      Archivoini('Aplicacion', 'Transparencias', ChkTransparentes.Checked);

     if assigned(FrmOpciones) then
      FreeAndNil(FrmOpciones);  // la variable FrmOpciones es global y mi clase TKyndo la asignó
                                // aca mismo he puesto FrmOpciones.Free, FrmOpciones.destroy, Action:=caFree, FrmOpciones.Release
end;
tengo una inquietud, ¿es correcto hacer FrmOpciones:=nil? ¿Qué pasa con la memoria que tenia ocupada?
es por eso que pongo FreeAndNil, porque pienso que así la libera y lo que quiero es que la próxima vez que mi clase TKyndo vaya a crear la misma ventana, la variable FrmOpciones este vacía, pero no creo que FrmOpciones:=nil sea la manera de cerrar un Form. (pienso, ojala me equivoque )
por último, escribir directamente Close, dentro del evento OnClose, seria un ciclo infinito.


Muchas gracias a quien me pueda colaborar
Saludos desde Colombia
Responder Con Cita