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 23-03-2010
Lenny Lenny is offline
Miembro
 
Registrado: jun 2007
Posts: 161
Poder: 17
Lenny Va por buen camino
Question Aplicación MDI

Aplicación MDI

Nuevamente recurro a ustedes, por comodidad y sugerencia de un amigo estoy creando una aplicación MDI, todo bien aparte de algunos ajustes, solo tengo una duda. Cuando necesito “Abrir” una ventana Hija que corresponde a ingreso y edición de datos de empresa abre perfecto, cual es el problema??? Si vuelvo a presionar el botón por accidente o confusión se abre otra ventana idéntica, y otra, y otra, y otra, etc… hay alguna manera que no suceda esto??? Que solo se abra una sola vez y en caso de volver a presionar la opción quede en primer plano???
Adjunto el código que he estado utilizando hasta ahora:
Código Delphi [-]
procedure TPrincipal.Abrirempresa1Click(Sender: TObject);
var
Form: TForm;
begin
Form := TEmpresas.Create(self);
Form.FormStyle := fsMDIChild;
Form.OnClose := AlCerrar;
Form.Show;
end;
De antemano, Gracias...
Luis Francisco R.
Responder Con Cita
  #2  
Antiguo 23-03-2010
Avatar de look
look look is offline
Miembro
 
Registrado: sep 2007
Ubicación: The Shire
Posts: 656
Poder: 17
look Va camino a la fama
Cita:
Empezado por Lenny Ver Mensaje
Aplicación MDI

Nuevamente recurro a ustedes, por comodidad y sugerencia de un amigo estoy creando una aplicación MDI, todo bien aparte de algunos ajustes, solo tengo una duda. Cuando necesito “Abrir” una ventana Hija que corresponde a ingreso y edición de datos de empresa abre perfecto, cual es el problema??? Si vuelvo a presionar el botón por accidente o confusión se abre otra ventana idéntica, y otra, y otra, y otra, etc… hay alguna manera que no suceda esto??? Que solo se abra una sola vez y en caso de volver a presionar la opción quede en primer plano???
Adjunto el código que he estado utilizando hasta ahora:
Código Delphi [-]procedure TPrincipal.Abrirempresa1Click(Sender: TObject); var Form: TForm; begin Form := TEmpresas.Create(self); Form.FormStyle := fsMDIChild; Form.OnClose := AlCerrar; Form.Show; end;

De antemano, Gracias...
Luis Francisco R.

Código Delphi [-]

    if not Assigned(Form) then /// si no esta creado lo creamos
    Begin
        Form := TForm.Create(nil);
    END
    ELSE;
    Form.Show; /// si ya esta creado , lo mostramos

evento onClose del form

FreeAndnil(Form);
__________________
all your base are belong to us
Responder Con Cita
  #3  
Antiguo 23-03-2010
[maeyanes] maeyanes is offline
Capo de los Capos
 
Registrado: may 2003
Ubicación: Campeche, México
Posts: 2.732
Poder: 24
maeyanes Va por buen camino
Hola...

Para hacer lo que quieres, puedes hacer una búsqueda por el tipo de clase de la forma y si ya existe una instancia de esa clase, solo la mandas al frente:

Código Delphi [-]
procedure TPrincipal.AbrirEmpresa1Click(Sender: TObject);
var
  I: Integer;

begin
  for I := 0 to Pred(MDIChildCount) do
    if MDIChildren[i] is TEmpresas then
    begin
      MDIChildren[i].BringToFront;
      Exit
    end;
  with TEmpresas.Create(Application) do
  begin
    FormStyle := fsMDIChild;
    OnClose := AlCerrar;
    Show
  end
end;


Saludos...
Responder Con Cita
  #4  
Antiguo 23-03-2010
Lenny Lenny is offline
Miembro
 
Registrado: jun 2007
Posts: 161
Poder: 17
Lenny Va por buen camino
Talking Funciona!!!

Gracias a ambos, he utilizado la solución de maeyanes y esta perfecta para lo que necesito, estudiare igualmente la solución de look, gracias nuevamente, me han salvado una vez mas...
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
Minimizar una aplicacion al iniciar aplicacion sidneyb OOP 7 11-01-2010 18:51:53
Aplicación de Servicio+Aplicación Normal +Socket jake API de Windows 5 21-06-2007 18:53:19
Cómo cerrar otra aplicacion desde mi aplicacion en Delphi 7 Gaby123 API de Windows 5 04-01-2007 22:44:51
Diferencia entre aplicacion Clx y aplicación normal??? JorgeBec Varios 1 27-10-2004 17:30:49
aplicacion vertical? aplicacion horizontal? maruenda Varios 3 28-02-2004 23:23:20


La franja horaria es GMT +2. Ahora son las 17:34:03.


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