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-03-2008
Avatar de Zakio14
Zakio14 Zakio14 is offline
Miembro
 
Registrado: feb 2008
Ubicación: Costa Rica
Posts: 22
Poder: 0
Zakio14 Va por buen camino
Traer al frente un fromHijo

Pura vida Foro!!

Mi consulta es la siguiente.

Tengo un From Madre y tengo un Botón que llama a una Ventana Hija.

Cada vez que clicko en este botón me crea una ventana nueva y eso me irrita de cierto modo, lo que quiero es crear una función que me cree el fromHijo si no esta creada, pero si ya esta creada que me la llame al frente de las demás pero sin volver a crearla.

Mi consulta es: Que Algoritmo uso para llamar esto, les agradezco toda ayuda que me puedan brindar.. Mil Gracias
Responder Con Cita
  #2  
Antiguo 06-03-2008
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
Codigo?
Con que codigo llamas al from?
Recuerda si nos das detalles podremos hacer algo mas.
Saludos
Responder Con Cita
  #3  
Antiguo 06-03-2008
Avatar de eduarcol
[eduarcol] eduarcol is offline
Miembro Premium
 
Registrado: ago 2003
Ubicación: En los estados Zulia y Merida de Venezuela
Posts: 4.151
Poder: 25
eduarcol Va por buen camino
utiliza la variable global que se genera en la unit del formulario.

Código Delphi [-]
Form2: TForm2;

En las propiedades del proyecto quitalo de los autocreate y pasalo a los avalaible, agrega este codigo al boton.

Código Delphi [-]
if not Assigned(Form2) then
      Form2 := TForm2.Create(Application);

   Form2.Show;
__________________
...Yo naci en esta ribera del arauca vibr@d0r
Soy hermano de la espuma,
de la garza, de la rosa y del sol...
Viva Venezuela
Responder Con Cita
  #4  
Antiguo 06-03-2008
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 27
jachguate Va por buen camino
Bueno, yo lo hago mas o menos como dice Eduarcol, con formularios padres/hijos. Supongo que las mismas reglas aplican para formularios Madres/hijas...

Digamos que para completar el algoritmo, aporto lo siguiente:

Código Delphi [-]
  if not Assigned(Form2) then
    Form2 := TForm2.Create(Application)
  else if Form2.WindowSate = wsMinimized then
    Form2.WindowSate = wsNormal;
  Form2.BringToFront;

Obviamente, hay que tener cuidado de que la variable Form2 se asigne a nil al momento de destruir el formulario para que esto funcione adecuadamente.

Hasta luego.

__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
  #5  
Antiguo 08-03-2008
Avatar de Zakio14
Zakio14 Zakio14 is offline
Miembro
 
Registrado: feb 2008
Ubicación: Costa Rica
Posts: 22
Poder: 0
Zakio14 Va por buen camino
Pura Vida!

Gracias por su ayuda eso me funciono bien!! Mil Millones de Gracias

Gracias porque siempren me sacan mis dudas!!
Responder Con Cita
  #6  
Antiguo 08-03-2008
Avatar de Zakio14
Zakio14 Zakio14 is offline
Miembro
 
Registrado: feb 2008
Ubicación: Costa Rica
Posts: 22
Poder: 0
Zakio14 Va por buen camino
Pura Vida Foro!

Bueno Este codigo lo encontre y me funciona a la perfeccion!!!

Lo Pongo aqui por si alguien lo llega a necesitar...
Código Delphi [-]
 
//Esta funcion se crea en Public
 
function ExisteForm(Formulario : string) : boolean;

// Esta funcion ya definida en el Public
function TPrincipal.ExisteForm(Formulario : string) : boolean;
var
   ChildIndex : integer; 
begin
  ChildIndex := 0;
  result := false;
  while (ChildIndex < MDIChildCount) and (not result) do
    begin
      if MDIChildren[ChildIndex].Name = Formulario then
         result := true
      else 
          inc(ChildIndex);
    end;
  if result then
     MDIChildren[ChildIndex].BringToFront;
end;
 
 
// Esto se coloca en el llamado del formulario hijo MDI
 if not ExisteForm('FMatricBach') then  //Primero se llama esta función para asegurarnos de que no existe el formulario
     begin                                          // ExisteForm es la funcion creada aqui la llamamos
       FMatricBach := TFMatricBach.Create(Application);
       FMatricBach.show; //no uso showModal
     end;

//Esta función es llamada cada vez que se abre un Formulario desde Menú
//para asegurarnos de que no se encuentra ya abierto el mismo 
//Buscamos entre los formularios hijos abiertos, si no esta cargado se carga
//De lo contrario se trae al frente de los demás.
Hasta la proxima foristas...

Última edición por jachguate fecha: 11-03-2008 a las 04:51:26. Razón: ¡usad la etiqueta delphi!
Responder Con Cita
  #7  
Antiguo 11-03-2008
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 27
jachguate Va por buen camino
Hola. Por favor, utilizá la etiqueta delphi para publicar trozos de código. He editado tu mensaje para añadirla, y espero que coincidas conmigo en que la presentación del mensaje está mucho mejor ahora.

Hasta luego.

__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
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
traer al frente un form no modal (de entre varios), utilizando el valor en el caption jcapitan OOP 2 23-05-2007 02:33:43
Traer al frente mdichild carlohg OOP 15 15-05-2007 05:02:08
Que ventajas tiene php frente a asp.net?? CARLOS E PHP 1 14-09-2006 09:42:14
Form Al frente el_enigma1 OOP 2 20-01-2005 00:28:21
¿Como traer al frente un formulario ? athal Lazarus, FreePascal, Kylix, etc. 2 11-05-2004 15:53:19


La franja horaria es GMT +2. Ahora son las 16:49:48.


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