Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Coloboración Paypal con ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 05-03-2009
Avatar de rgstuamigo
rgstuamigo rgstuamigo is offline
Miembro
 
Registrado: jul 2008
Ubicación: Santa Cruz de la Sierra-Bolivia
Posts: 1.646
Poder: 20
rgstuamigo Va por buen camino
Lightbulb

Cita:
Los estoy creando en tiempo de ejecucion...
Si lo lo estas creando en tiempo de ejecucion y has puesto en el On close este codigo:
Código Delphi [-]
procedure TFBase.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  Action:=caFree;//aqui estas liberando memoria.
end;
Eso significa que ya no necesitas ir liberando todos los formularios cuando cierres el Principal.Me entiendes?.
Ademas cuando se cierra el principal este automaticamente cierra a todos los formularios de la aplicacion;por tanto tan solo en el evento OnCloseQuery yo pondria tan solo lo siguiente modificando un poco tu codigo:
Código Delphi [-]
if MessageDlg('Desea Salir del Sistema ...?',mtConfirmation,[mbYes,mbNo],0)=mrNo then
   CanClose:=False;//aqui la variable CanClose viene por defecto con True
                   //asi que si me no me preguntase atraves de este dialogo igual se cerraria el formulario.
                   //Este dialogo es tan solo para tener la posibilidad de cambiar dicha 
                   //variable a False para que no se cierre el formulario
Pruebalo..
Saludos..
__________________
"Pedid, y se os dará; buscad, y hallaréis; llamad, y se os abrirá." Mt.7:7
Responder Con Cita
  #2  
Antiguo 06-03-2009
Efren2006 Efren2006 is offline
Miembro
 
Registrado: feb 2006
Posts: 178
Poder: 21
Efren2006 Va por buen camino
Saludos a Todos

Gracias por su tiempo en ayudarme con este Problema,,,

Resolvi el problema del Loop, colocando esto;

Código Delphi [-]
 
..
..
for idx:=Screen.FormCount-1 downto 1 do
  If Screen.Forms[idx] is TForm Then
    If TForm(Screen.Forms[idx]).Name<>Name Then
       If TForm(Screen.Forms[idx]).Owner=Self Then
          TForm(Screen.Forms[idx]).Destroy;

Pero al terminar de cerrar la aplicacion me consigo con el siguiente error;
Cita:
Exception EInvalidPointer in module rtl120.bpl at 000087c9
Responder Con Cita
  #3  
Antiguo 20-03-2009
Avatar de rgstuamigo
rgstuamigo rgstuamigo is offline
Miembro
 
Registrado: jul 2008
Ubicación: Santa Cruz de la Sierra-Bolivia
Posts: 1.646
Poder: 20
rgstuamigo Va por buen camino
Lightbulb

Cita:
Exception EInvalidPointer in module rtl120.bpl at 000087c9
Pues pienso que eso ocurre por estas tratando de liberar un formulario que ya se libero anteriormente.Por eso no se debe utilizar el destructor directamente,para destruir o liberar un objeto en delphi utiliza el metodo Free. Es decir tu ultima linea seria:
Código Delphi [-]
TForm(Screen.Forms[idx]).Free;
Pero insisto de que no es nesesario hacer todo esto:
Código Delphi [-]
for idx:=Screen.FormCount-1 downto 1 do
  If Screen.Forms[idx] is TForm Then
    If TForm(Screen.Forms[idx]).Name<>Name Then
       If TForm(Screen.Forms[idx]).Owner=Self Then
          TForm(Screen.Forms[idx]).Destroy;
por lo anterirmente que comente en el anterior Post;
Saludos...
__________________
"Pedid, y se os dará; buscad, y hallaréis; llamad, y se os abrirá." Mt.7:7
Responder Con Cita
  #4  
Antiguo 20-03-2009
Efren2006 Efren2006 is offline
Miembro
 
Registrado: feb 2006
Posts: 178
Poder: 21
Efren2006 Va por buen camino
Saludos rgstuamigo

Como comente anteriormente comparto tu teoria, porque anteriormente lo usaba asi, pienso que el problema se debe a que estoy contruyendo estos formularios que se encuentran dentro de una BPL, la verdad ya he hechos muchas pruebas y la verdad la aplicacion falla en algunos equipos y en otros no,,, la verdad estoy por rehacer completamente el formulario Principal para verificar posibles errores..

Gracias por tu tiempo ...
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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Cómo cerrar otra aplicacion desde mi aplicacion en Delphi 7 Gaby123 API de Windows 5 04-01-2007 22:44:51
cerrar aplicacion unko! Varios 9 07-07-2006 13:51:42
Cerrar una aplicacion ??? Javier_A OOP 2 08-02-2006 09:32:20
Cerrar la aplicacion llonigualker Varios 14 02-12-2004 17:29:56
Cerrar Aplicacion Nathan API de Windows 3 22-03-2004 19:03:43


La franja horaria es GMT +2. Ahora son las 11:39:24.


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