Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Coloboración Paypal con ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 24-09-2014
Avatar de Espartaco
[Espartaco] Espartaco is offline
Miembro Premium
 
Registrado: oct 2005
Posts: 107
Poder: 21
Espartaco Va por buen camino
Anidacion de Forms

Hola amigos, tengo un problema que me trae de cabeza. Utilizo Delphi 5. La gestion de ventanas en mis programas es crear un form a modo main y despues en las opciones del menu creo el form para ejecutar las opciones que sean, este form es fsnormal y lo muestro con showmodal y luego lo destruyo con free.


Código Delphi [-]
 
procedure TMenuPrincipal.Clientes1Click(Sender: TObject);
var ficha:TElecClientes;
begin
Ficha:=TElecClientes.Create(Self);
Ficha.DbClientes.Active:=True;
Ficha.Showmodal;
Ficha.DbClientes.Active:=False;
Ficha.Free;
end;



Hasta aqui todo bien, si necesito otro form desde este activo lo creo de la misma forma y bien, pero si desde el segundo intento crear un tercero se me cuelga.

No se que puede estar pasando.

Desde ya muchas gracias.
Responder Con Cita
  #2  
Antiguo 24-09-2014
Avatar de gatosoft
[gatosoft] gatosoft is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Bogotá, Colombia
Posts: 835
Poder: 24
gatosoft Va camino a la fama
Pues en principio veo tu código bien, No se si me escapa algún detalle, lo digo por que no eres muy específico en el "colgar"

Considero que deberías intentar una prueba simple, abriendo los formularios como lo indicas, pero sin activar la BD

Código Delphi [-]
procedure TMenuPrincipal.Clientes1Click(Sender: TObject);
var ficha:TElecClientes;
begin
Ficha:=TElecClientes.Create(Self);
//Ficha.DbClientes.Active:=True;
Ficha.Showmodal;
//Ficha.DbClientes.Active:=False;
Ficha.Free;
end;

De esta manera podría detectar si el problema está al activar tu BD, que al cargarse puede estar realizando alguna operación o consumiendo recursos...

También podría suceder que en el mismo oncreate o en el onshow esté realizando operaciones con recursos compartidos con los formularios gemelos...

Bueno, no se que mas decirte...

Por ultimo, te recomendaría (sugerencia personal) que revisaras la activación de la BD en el OnCreate del propio formulario...

Otra sugerencia sería que destruyeras el formulario en el evento OnClose, algo asi:

Código Delphi [-]
Procedure TForm1.OnClose(Var Action...)
BEgin
  Action:= caFree
end;

Con ésto aseguras que cada vez que cierre el formulario se libera la memoria...

saludo,
Responder Con Cita
  #3  
Antiguo 24-09-2014
Avatar de Espartaco
[Espartaco] Espartaco is offline
Miembro Premium
 
Registrado: oct 2005
Posts: 107
Poder: 21
Espartaco Va por buen camino
gracias gatosoft por tu rapida respuesta, decirte que tras varias comprobaciones he comprobado que el 'cuelgue' se realiza tras ejecutar la linea que crea el form, no da lugar ni a abrir la tabla, es mas he hecho lo que me dices y igual. Cuando digo cuelgue me refiero a que la aplicacion no responde a nada teniendo que usar el administrador de tareas para pararla. Emiezo a pensar que es que Delphi 5 no permite anidar mas de dos form, porque no encuentro otra explicacion la verdad. Estoy desesperado, tengo que entregar la aplicacion y me ha surgido esto. Espero que le haya pasado a alguien y lo haya solucionado.

Muchas gracias.
Responder Con Cita
  #4  
Antiguo 24-09-2014
Avatar de Casimiro Noteví
Casimiro Noteví Casimiro Noteví is offline
Merodeador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.678
Poder: 10
Casimiro Noteví Tiene un aura espectacularCasimiro Noteví Tiene un aura espectacular
Si llamas al 3º form desde el 2º form, y destruyes el 2º form cuando llamas al 3º form... me parece que... tenemos un problema
Responder Con Cita
  #5  
Antiguo 24-09-2014
Avatar de Espartaco
[Espartaco] Espartaco is offline
Miembro Premium
 
Registrado: oct 2005
Posts: 107
Poder: 21
Espartaco Va por buen camino
No claro, la llamada al tercer form desde el segundo se hace antes de destruirlo. El proceso es ejecuto el primero, en un proceso de este se llama al segundo y en un proceso de este se llama al tercero, cuando se cierre el tercero se destruye, y cuando se cierre el segundo se destruye. El caso es que cuando son solo dos no hay ningun problema, solo me ha surgido al llamar al tercero y es lo que no entiendo.

Gracias por vuestra ayuda e interes.
Responder Con Cita
  #6  
Antiguo 24-09-2014
Avatar de Casimiro Noteví
Casimiro Noteví Casimiro Noteví is offline
Merodeador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.678
Poder: 10
Casimiro Noteví Tiene un aura espectacularCasimiro Noteví Tiene un aura espectacular
Creo que no entiendo cómo lo haces. ¿Puedes poner el código?
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
Ayuda en anidación de transacciones crcmartell Conexión con bases de datos 1 04-01-2008 08:05:11
Cursores y anidación de procedimientos almacenados david.rguez SQL 1 02-08-2007 17:06:31
MDI Forms karocs Varios 8 12-07-2007 16:38:03
dll con forms Rafa Varios 10 15-02-2005 20:43:11
Forms.....por fa buitrago Varios 1 19-11-2003 22:42:52


La franja horaria es GMT +2. Ahora son las 19:56:45.


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