Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 04-11-2004
Perenquen Perenquen is offline
Miembro
 
Registrado: jul 2003
Posts: 27
Poder: 0
Perenquen Va por buen camino
Problema al cerrar una ventana noModal.

Buenas a todos.

Mi problema surge al cerrar una ventana no modal creada dinamicamente. LLamo al formulario a partir de este código.

Código Delphi [-]
if Assigned(FEspera) then
    begin
      FEspera.Label1.Caption:='Espera, Cambiando tarifas';
      FEspera.Show;
      Fespera.Repaint;
    end
  else
    begin
      with TFespera.Create(Application) do
        name:='FEspera';
        label1.Caption:='Espera, Cambiando tarifas';
        Repaint;
      end;

Donde FEspera es un formulario creado en tiempo de diseño y eliminado del los autocreate-Forms de Delphi.

Hasta aqui todo bien, pero para cerrar ese formulario utilizo:

Código Delphi [-]
FEspera.close

y ahí está el problema, ya que me da un error de Access Violation address.

Si alguien me echara una mano se lo agradecería.
Responder Con Cita
  #2  
Antiguo 04-11-2004
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.932
Poder: 27
delphi.com.ar Va por buen camino
¿Qué haces en el OnClose del Form?...

recuerda que si preguntas por Assigned(Objeto) y este objeto fue liberado pero su "puntero/variable" no ha sido "limpiada" (Variable = Nil) asigned retornará True y tu código producirá un "Access Violation"

Saludos!
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita
  #3  
Antiguo 04-11-2004
Perenquen Perenquen is offline
Miembro
 
Registrado: jul 2003
Posts: 27
Poder: 0
Perenquen Va por buen camino
Ante todo OLE por la rapidez de tu respuesta.

Cita:
¿Qué haces en el OnClose del Form?...

recuerda que si preguntas por Assigned(Objeto) y este objeto fue liberado pero su "puntero/variable" no ha sido "limpiada" (Variable = Nil) asigned retornará True y tu código producirá un "Access Violation"
Dentro del onClose del Form tengo

Código Delphi [-]
Action := cafree;

pero es que ni llega a pasar por esta línea, el error lo da justo en

Código Delphi [-]
FEspera.Close;

Como no entendí muy bien lo del Assign ( Es que soy nuevo en esto). Eliminé esa parte del codigo, ya que estoy seguro de que esa ventana no ha sido creada con anterioridad.

Código Delphi [-]
with TFespera.Create(Application) do
  begin
        name:='FEspera';
        label1.Caption:='Espera, Cambiando tarifas';
        Repaint;
  end;

y aun asi, me da el problema.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 12:15:33.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi