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 10-04-2008
Paulao Paulao is offline
Miembro
 
Registrado: sep 2003
Ubicación: Rua D 31 Casa 1 - Inhoaíba - Rio de Janeiro - RJ - Brasil
Posts: 637
Poder: 21
Paulao Va por buen camino
MDIChild abre otro MDIChild

Señores, no consigo abri un form MDIChild apartir de otro. Hay como hacerlo? Yo puzo el otro form com fsNormal, pero no logre exito. Em mi codigo esta asi:

Cita:
procedure TFRM_CNSCliente.Grid_00DBTableViewDblClick(Sender: TObject);
begin
if not Assigned(FRM_MNTCliente) then
begin
FRM_MNTCliente := TFRM_MNTCliente.Create(Self);
FRM_MNTCliente.FormStyle := fsNormal;
FRM_MNTCliente.Visible := True;
Self.Close;
FRM_MNTCliente.ShowModal;
FreeAndNil(FRM_MNTCliente);
end;
end;
Se for posible abri el form, pero no fsNormal, mas si fsMdiChild, yo quedaria bien. Pero si no es posible, puede ser normal mismo. Siempre que hago como estas arriba, viene la exception: CANNOT MAKE VISIBLE WINDOW MODAL. Mira, el form FRM_MNTCliente es fsMdiChild y no fsNormal. Gracias a todos.
Responder Con Cita
  #2  
Antiguo 10-04-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
si lo quieres como MDI que es lo que entiendo este codigo deberia servirte, fijate que cambio el Show por ActiveMdiChild, si no entiendes avisa a ver si alguien traduce

Código Delphi [-]
procedure TFRM_CNSCliente.Grid_00DBTableViewDblClick(Sender: TObject);
begin
   if not Assigned(FRM_MNTCliente) then
   begin 
      FRM_MNTCliente := TFRM_MNTCliente.Create(Self);
      FRM_MNTCliente.ActiveMdiChild;
   end;
end;
__________________
...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
  #3  
Antiguo 10-04-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
La excepción salta porque pones visible a True y luego llamas a ShowModal.

Debiera funcionar así:

Código Delphi [-]
procedure TFRM_CNSCliente.Grid_00DBTableViewDblClick(Sender: TObject);
begin
  if not Assigned(FRM_MNTCliente) then
  begin
    FRM_MNTCliente := TFRM_MNTCliente.Create(Self);
    try
      FRM_MNTCliente.FormStyle := fsNormal;
      Self.Close;
      FRM_MNTCliente.ShowModal;
    finally
      FreeAndNil(FRM_MNTCliente);
    end;
  end;
end;

Finalmente, si querés que el form creado sea también un MDIChild, te recuerdo que estos formularios no pueden mostrarse de manera modal, por lo que tendrías que mostrarlo con Show y esperar a que el usuario lo cierre para destruirlo.

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
  #4  
Antiguo 10-04-2008
Paulao Paulao is offline
Miembro
 
Registrado: sep 2003
Ubicación: Rua D 31 Casa 1 - Inhoaíba - Rio de Janeiro - RJ - Brasil
Posts: 637
Poder: 21
Paulao Va por buen camino
EduarCol, yo hizo e ok, pero yo necessito cierrar el Form que haz el chamado, asi, haciendo con tu codigo:

Cita:
procedure TFRM_CNSCliente.Grid_00DBTableViewDblClick(Sender: TObject);
begin
if not Assigned(FRM_MNTCliente) then
begin
FRM_MNTCliente := TFRM_MNTCliente.Create(Self);
FRM_MNTCliente.ActiveMdiChild;
Self.Close;
end;
end;
Si hago asi, el form no aparece en la pantalla, pero el esta creado, pero solo no muestra. Es este mi problema, por eso yo intente hacer con el form Modal, pero tambien no logre exito.
Responder Con Cita
  #5  
Antiguo 10-04-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
Cambia el self por el nombre del formulario y deberia funcionar bien.

Código Delphi [-]
procedure TFRM_CNSCliente.Grid_00DBTableViewDblClick(Sender: TObject);
begin
   if not Assigned(FRM_MNTCliente) then
   begin 
      FRM_MNTCliente := TFRM_MNTCliente.Create(Self);
      FRM_MNTCliente.ActiveMdiChild;
      FRM_MNTCliente.Close;
   end;
end;
__________________
...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
  #6  
Antiguo 10-04-2008
Paulao Paulao is offline
Miembro
 
Registrado: sep 2003
Ubicación: Rua D 31 Casa 1 - Inhoaíba - Rio de Janeiro - RJ - Brasil
Posts: 637
Poder: 21
Paulao Va por buen camino
Descobri el error. Es que yo no puedo llamar um Form MdiChild de otro Form MDIChild.
Responder Con Cita
  #7  
Antiguo 10-04-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
claro que si se puede, de hecho lo acabo de hacer... antes de responderte arme un ejemplo y funciono bien... te adjunto el ejemplo para que lo analizes
Archivos Adjuntos
Tipo de Archivo: zip example.zip (4,8 KB, 20 visitas)
__________________
...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
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
MDIChild y QuickRep Marcela Impresión 4 11-10-2006 16:18:23
no me muestra el mdichild supermilloriver OOP 1 30-07-2005 10:32:04
help MDIChild !! kye_z Varios 6 18-11-2004 20:10:56
Menu en una MDIChild D.M Varios 1 13-09-2003 18:49:41
Menu en MDIChild seti OOP 5 09-07-2003 12:10:25


La franja horaria es GMT +2. Ahora son las 05:32:40.


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