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 26-01-2010
Avatar de Caro
*Caro* Caro is offline
Moderadora
 
Registrado: jul 2004
Ubicación: Cochabamba, Bolivia
Posts: 2.544
Poder: 22
Caro Va por buen camino
Hola morfeo21, como te indican deberías utilizar la función Assigned, pero si en el OnClose de tu MDIChild liberaras con Action:=caFree; solo va a funcionar la primera ves ya que no te lo pone a nil, por lo que la siguiente ya no se abriría tu formulario.

Código Delphi [-]
//En el OnClose liberas con FreeAndNil
procedure TForm2.FormClose(.....);
begin
 FreeAndNil(Form2);
end;
 
//Y en la llamada a tu MDIChild
if Not Assigned(Form2) then
  Form2:=TForm2.create(Self);

Saluditos
__________________
Disfruten cada minuto de su vida a lado de sus seres queridos como si fuese el ultimo, uno nunca sabe lo que puede pasar.
Responder Con Cita
  #2  
Antiguo 26-01-2010
Avatar de jcarteagaf
[jcarteagaf] jcarteagaf is offline
Miembro Premium
 
Registrado: abr 2006
Ubicación: La Paz, Bolivia
Posts: 651
Poder: 19
jcarteagaf Va por buen camino
Tengo una funcion que me hace precisamente eso

Código Delphi [-]
procedure ShowFormMDI(TfrmClass: TFormClass;bMultiInstace : boolean);
var
  i : SmallInt;
  F : TForm;
begin
  if not bMultiInstace then
    for i := Application.MainForm.MDIChildCount - 1 downto 0 do
    begin
      F := Application.MainForm.MDIChildren[i];
      if F.ClassType = TfrmClass then
      begin
        if F.WindowState = wsMinimized then
           F.WindowState := wsNormal;
        F.BringToFront;
        Exit;
      end;
    end;
  with TfrmClass.Create(Application) do
    Show;
end;

y lo llamo de la siguiente forma

Código Delphi [-]
ShowFormMDI(TFormaHija,false);

El segundo parametro te indica si se permite o no que se llame mas de una vez al formulario. Si no lo permites y el formulario esta abierto lo activara.

Espero te sirva

Saludos.
Responder Con Cita
  #3  
Antiguo 27-01-2010
morfeo21 morfeo21 is offline
Miembro
 
Registrado: may 2003
Posts: 69
Poder: 22
morfeo21 Va por buen camino
Gracias Caro era justo lo que necesitaba ya lo estoy implementando en mi proyecto, siempre hay algo que se aprende todos los dias
Responder Con Cita
  #4  
Antiguo 12-06-2013
hectormea hectormea is offline
Registrado
NULL
 
Registrado: jun 2013
Posts: 1
Poder: 0
hectormea Va por buen camino
gracias

Cita:
Empezado por Caro Ver Mensaje
Hola morfeo21, como te indican deberías utilizar la función Assigned, pero si en el OnClose de tu MDIChild liberaras con Action:=caFree; solo va a funcionar la primera ves ya que no te lo pone a nil, por lo que la siguiente ya no se abriría tu formulario.

Código Delphi [-]
//En el OnClose liberas con FreeAndNil
procedure TForm2.FormClose(.....);
begin
 FreeAndNil(Form2);
end;
 
//Y en la llamada a tu MDIChild
if Not Assigned(Form2) then
  Form2:=TForm2.create(Self);

Saluditos




muchas gracias soy nuevo en estoy y me a servido mucho!
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
Abrir el programa solo una vez Paulao Varios 8 10-04-2008 11:15:30
Abrir Formulario MDI b1ast3r OOP 2 08-04-2008 18:18:59
Abrir un formulario hijo solo una vez Walterdf Varios 5 08-04-2008 17:15:01
Aplicacio abrir solo una vez Paulao Varios 1 03-04-2008 17:55:30
Abrir solo hasta n-registros copett Tablas planas 1 27-05-2006 22:18:24


La franja horaria es GMT +2. Ahora son las 02:53:07.


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