Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > C++ Builder
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 18-10-2011
Avatar de Diego827
Diego827 Diego827 is offline
Miembro
NULL
 
Registrado: oct 2010
Posts: 157
Poder: 16
Diego827 Va por buen camino
Unhappy Cerrar MDIChild cuando esta maximizada

Amigos del Club, mi problema es el siguiente:

Tengo una ventana MDIChild dentro de mi ventana padre MDIForm; hasta aqui todo Ok, al evento Onclose() de la ventana MDIChild le coloqué la función caFree y la cierra sin problemas; el clavo esta cuando maximizo el MDIChild, esta se expande y oculta sus botones de minimizar, maximizar y cerrar haciendo imposible su cierre.

¿Que código puedo utilizar para que se cierre la ventana MDIChild maximizada?
¿Existe acaso alguna función que cierre todas las ventanas hijo?

No se si estuvo bien preguntar dos cosas al mismo tiempo es solo que las dos me solucionan el problema.

Gracias amigos
Responder Con Cita
  #2  
Antiguo 18-10-2011
Avatar de Caminante
Caminante Caminante is offline
Miembro
 
Registrado: oct 2010
Ubicación: Lima - Peru
Posts: 338
Poder: 16
Caminante Va camino a la fama
Me parece extraño ese comportamiento que indicas. Yo utilizo ventanas MDI y nunca ha a pasado.
De todas formas si quieres cerrar la ventana puedes poner un boton en su form hijo asignando Close al hacer click.
En cuanto a lo segunto en el form Midparent puedes usar las propiedades MDiChildcount y mdichildren[] para manipular los forms hijos.

Saludos
Responder Con Cita
  #3  
Antiguo 18-10-2011
Avatar de Diego827
Diego827 Diego827 is offline
Miembro
NULL
 
Registrado: oct 2010
Posts: 157
Poder: 16
Diego827 Va por buen camino
Posible razòn

Creo que no lo dije todo; estoy utilizando controles y forms con pieles, Business skin. Quizas esa sea la causa. Veo y posteo gracias amigo.
Responder Con Cita
  #4  
Antiguo 18-10-2011
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cuando la ventana carece de menú principal, al maximizar una ventana hija, los botones de cerrar, maximizar, etc., se pierden. Si la ventana principal tiene menú principal, los botones aparecen normalmente.

// Saludos
Responder Con Cita
  #5  
Antiguo 18-10-2011
Avatar de Diego827
Diego827 Diego827 is offline
Miembro
NULL
 
Registrado: oct 2010
Posts: 157
Poder: 16
Diego827 Va por buen camino
Hola estimado roman, gracias por tu respuesta.

Creo fielmente en lo que has dicho; esa es la razón y ya sospechaba que las pieles tenian que ver pero luego de tu comentario estoy de acuerdo.

Ahora bien, como puedo cerrar la ventana que este maximizada? existe algun método para la eliminación de ventanas hijas?
Existe acaso un metodo que elimine todas las ventanas hijas de golpe?

Se que puedo agregar un boton de "cerrar" y al metodo onclick() asignarle la funcion caFree() pero seria algo chapucero (clasico de los novatos como yop)

Gracias amigos.

Última edición por Diego827 fecha: 18-10-2011 a las 18:51:01.
Responder Con Cita
  #6  
Antiguo 18-10-2011
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 38
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola Diego827.
Cita:
Existe acaso un metodo que elimine todas las ventanas hijas de golpe?
Código Delphi [-]
procedure TMDIForm.btCloseAllChildsClick(Sender: TObject);
var
  i: Integer;
begin
  for i:= MDIChildCount-1 downto 0 do
    MDIChildren[i].Close;
end;
Siempre que todos los MDIChildren tengan Action:= caFree en su evento OnClose, si no se minimizarán.

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....

Última edición por ecfisa fecha: 18-10-2011 a las 19:30:20.
Responder Con Cita
  #7  
Antiguo 18-10-2011
Avatar de Diego827
Diego827 Diego827 is offline
Miembro
NULL
 
Registrado: oct 2010
Posts: 157
Poder: 16
Diego827 Va por buen camino
Estimado ecfisa; gracias por responder.

Pruebo y posteo.

Gracias.
Responder Con Cita
  #8  
Antiguo 18-10-2011
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 38
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Perdón Diego, ahora reparo que era el foro C++ Builder.

Entonces sería:
Código:
void __fastcall TForm1::btnCloseAllChildsClick(TObject *Sender)
{
  for(int i= MDIChildCount-1; i>= 0; i--)
    MDIChildren[i]->Close();
}
Un saludo.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #9  
Antiguo 19-10-2011
Avatar de Diego827
Diego827 Diego827 is offline
Miembro
NULL
 
Registrado: oct 2010
Posts: 157
Poder: 16
Diego827 Va por buen camino
Exacto; gracias a todos.

Estimado ecfisa:

Encontre algo interesante y que te da la total razon:

Código Delphi [-]
/*
void __fastcall TForm1::CloseChildrenClick(TObject *Sender)
{
  for(int i = MDIChildCount - 1; i >= 0; i--)
    MDIChildren[i]->Close();
}

void __fastcall TForm1::MyArrangeIconsClick(TObject *Sender)
{
  Form1->ArrangeIcons();
}

void __fastcall TForm1::MyCascadeClick(TObject *Sender)
{
  Form1->Cascade();
  }

Gracias a todos!
Responder Con Cita
  #10  
Antiguo 19-10-2011
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 38
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola Diego.

Te agrego dos opciones mas:
Código:
/* Mosaico Horizontal */
void __fastcall TForm1::tbTileHrzClick(TObject *Sender)
{
  TileMode = tbHorizontal;
  Tile();
}

/* Mosaico Vertical */
void __fastcall TForm1::tbTileVerClick(TObject *Sender)
{
  TileMode = tbVertical;
  Tile();
}
Un saludo.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #11  
Antiguo 19-10-2011
Avatar de Diego827
Diego827 Diego827 is offline
Miembro
NULL
 
Registrado: oct 2010
Posts: 157
Poder: 16
Diego827 Va por buen camino
Listo.

Hola,

Gracias a todos por sus respuestas, Saludos.
Responder Con Cita
  #12  
Antiguo 24-02-2012
Avatar de Diego827
Diego827 Diego827 is offline
Miembro
NULL
 
Registrado: oct 2010
Posts: 157
Poder: 16
Diego827 Va por buen camino
Wink Parecere tonto... mas vale tarde que nunca

Hola amigos, solamente para comentarles:

Gracias por lo que me ayudaron en este hilo. Muy amables! Todavía me esta sirviendo!!!

Última edición por Diego827 fecha: 24-02-2012 a las 07:51:24.
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
Cerrar MDIChild desde un Button Lenny Varios 3 03-06-2011 22:33:31
erro al cerrar segundo preview mdichild amurrieta Impresión 2 08-12-2009 20:41:19
No cerrar la ventana cuando le doy click al boton de la barra de titulo lostprophets Varios 5 15-05-2007 00:14:18
Cerrar todas las Ventanas MDIChild gluglu OOP 11 18-04-2007 20:12:56
Error al cerrar aplicacion cuando creo fields dinamicamente mierda OOP 3 02-11-2006 18:57:41


La franja horaria es GMT +2. Ahora son las 21:27:24.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi