Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 06-12-2006
Patricio Patricio is offline
Miembro
 
Registrado: jul 2004
Posts: 433
Poder: 20
Patricio Va por buen camino
problema con formularios que se llaman mutuamente

Hola gente tengo 3 formularios uno A, B y C. Cada uno de estos formularios tiene dos botones para llamar a los otros 2 formularios. Por ej, en A hay un boton para llamar a B y otro para C. Lo mismo en B y C. La llamada la hago de la siguiente manera
C:TFormularioC;
begin
C := TFormularioC.Create(A);
C.showmodal;
C.release;

el problema que tengo es que si A llama a C, C llama a A, y esto lo hago 4 veces, cuando los empiezo a cerrar me da un error.
Obviamente es algo que puede pasar rara vez porque de uno se llama a otro y a lo sumo una vez mas, pero alguien hace algo parecido de otra manera.
Uso Delphi 5 e Interbase
Responder Con Cita
  #2  
Antiguo 06-12-2006
Avatar de Ñuño Martínez
Ñuño Martínez Ñuño Martínez is offline
Moderador
 
Registrado: jul 2006
Ubicación: Ciudad Catedral, Españistán
Posts: 6.000
Poder: 25
Ñuño Martínez Tiene un aura espectacularÑuño Martínez Tiene un aura espectacular
Cita:
Empezado por Patricio
el problema que tengo es que si A llama a C, C llama a A, y esto lo hago 4 veces, cuando los empiezo a cerrar me da un error.
Estoy por asegurar con que es porque cierras algún formulario antes de tiempo, pero para estar seguros, ¿cual es exactamente el error que muestra?
Responder Con Cita
  #3  
Antiguo 06-12-2006
Avatar de Crandel
[Crandel] Crandel is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Parana, Argentina
Posts: 1.475
Poder: 22
Crandel Va por buen camino
Hola Patricio, primero que nada, no es una practica que recomiende que todos los formularios se llamen mutuamente, pero supongamos que es necesario para tu aplicación.

Lo que estas haciendo con tu codigo es creando un objeto de cada uno de tus formularios dinamicamente, posiblemente tu error provenga por ahi aunque con el codigo como lo presentas no deberia dar problemas.

De igual mandera, podrias implementar fijandote en las opciones de tu proyecto que todos los formularios se creen automaticamente, menu Project/Options.

Luego simplemente los vas llamando A.Show o A.Shomal, según necesites.

De esta forma, vas llamando a los formularios para que aparescan en pantalla y no creando nuevas instancias de los mismos.

Suerte.

pd: si seguis con el error decinos cual es y que otra cosa estas haciendo
__________________
[Crandel]
Responder Con Cita
  #4  
Antiguo 07-12-2006
Patricio Patricio is offline
Miembro
 
Registrado: jul 2004
Posts: 433
Poder: 20
Patricio Va por buen camino
ok

antes que todo gracias por las respuestas, el error era un error de windows con una ventana llena de cosas como para repetirla aca. Ahora, hay alguna forma de saber si un formulario ya esta creado?
por ejemplo antes de crear el formulario A ver si esta creado y si es asi hacer el Show o Showl, cual uso para que cosa de estos dos?
Responder Con Cita
  #5  
Antiguo 07-12-2006
Patricio Patricio is offline
Miembro
 
Registrado: jul 2004
Posts: 433
Poder: 20
Patricio Va por buen camino
mensaje de error

Ahi hice una prueba se crea el formulario A, de este llama a B y cuando B vuelve a llamar a A, puse A.Showmodal y me tiro el siguiente error:
EInvalidOperation. cannot make a visible window modal

si pongo A.Show, lo muestra pero se congela, como que falta algo. y no responde mas
Responder Con Cita
  #6  
Antiguo 08-12-2006
Avatar de Crandel
[Crandel] Crandel is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Parana, Argentina
Posts: 1.475
Poder: 22
Crandel Va por buen camino
Por que no haces un pequeño ejemplo con dos formularios que se llamen y que te genere el error y lo subes aca, xq yo lo probe y no tengo ningun problema.
__________________
[Crandel]
Responder Con Cita
  #7  
Antiguo 08-12-2006
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 28
Lepe Va por buen camino
Cita:
Empezado por Patricio
cannot make a visible window modal
La ventana en cuestión ¿no será un MDIChild no? si lo es: Una MDIChild no puede mostrarse como modal. Primero has de cambiar la propiedad FormStyle.

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #8  
Antiguo 09-12-2006
Patricio Patricio is offline
Miembro
 
Registrado: jul 2004
Posts: 433
Poder: 20
Patricio Va por buen camino
No es un Child

Gracias por las informaciones que van dando, es un formulario normal

El error ocurre en forma aleatoria y cuando se llaman entre 4/5 veces cada formulario, cosa q es medio dificil en la realidad, pero como el software corre en red capaz que despues cuando subo esta actualizacion me falla.
El mensaje que aparece es este

Proyect pepe.exe reaised exception class EaccessViolation with message ‘ Access violatio at address 004031D2 in module pepe.exe. Read of address FFFFFFD0. Process Stopped.

Saludos
Responder Con Cita
  #9  
Antiguo 09-12-2006
Avatar de fjcg02
[fjcg02] fjcg02 is offline
Miembro Premium
 
Registrado: dic 2003
Ubicación: Zamudio
Posts: 1.410
Poder: 22
fjcg02 Va camino a la fama
No se si te servirá de algo este código, pero por si acaso te lo incluyo.
Yo generalmente n ocreo varias veces un formulario ( a no ser que sea necesario, claro ), sino lo que hago es saber desde donde se ha llamado por si hay que hacer diferentes acciones.
Código Delphi [-]
procedure AbriFormulario ;
begin
// si el formulario no ha sido previamente creado, lo creo. 
// Luego doy valores a las variables del formulario que necesito
if Form2= nil then Form2 := TForm2.Create(Form2);
  with Form2 do begin
    Caption:= 'Titulo formulario';
    Show;
  end;
end;

Un saludo
__________________
Cuando los grillos cantan, es que es de noche - viejo proverbio chino -
Responder Con Cita
  #10  
Antiguo 12-12-2006
Patricio Patricio is offline
Miembro
 
Registrado: jul 2004
Posts: 433
Poder: 20
Patricio Va por buen camino
Gracias

Lo voy a tener en cuenta. Gracias.
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
Problema con Formularios y SQL Server villegasmajano Conexión con bases de datos 3 19-09-2006 19:51:38
Formularios Caro OOP 1 20-10-2005 17:37:50
problema agregando formularios al proyecto Maga84 Varios 8 28-04-2005 22:13:22
problema traspaso de datos entre formularios hijos VRO OOP 6 30-03-2005 13:35:53
Problema con Formularios Modales bajo Citrix Metaframe sarackganda Varios 0 04-06-2003 02:47:50


La franja horaria es GMT +2. Ahora son las 01:14:12.


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