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 24-01-2011
racas racas is offline
Registrado
NULL
 
Registrado: ene 2011
Posts: 2
Poder: 0
racas Va por buen camino
Necesito ayuda para crear mdichilds en tabs

Hola a todos!

Tengo una aplicación con un ribbon, y ademas es mdi, el problema esta cuando un mdichild lo maximizo, entonces los botones de minimizar y cerrar aparecen en la parte izquierda empalmandoce con el boton de aplicación, mi pregunta es como puedo hacer que las mdichilds cuando esten maximizadas se habran en tabs, o alguna otra solución para que no se empalme.

Bueno muchas gracias de antemano!

Saludos!
Responder Con Cita
  #2  
Antiguo 24-01-2011
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
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 racas.

Una posible solución es capturar el mensaje WM_SYSCOMMAND para detectar cuando se maximiza el form Child, crearte una función para obtener el tamaño del MDIForm y ajustar el MDIChild en consecuencia.

Ejemplo:
Código Delphi [-]
...
type
  TMDIChild = class(TForm)
  private
    procedure WMSysCommand(var Msg: TWMSysCommand);message WM_SYSCOMMAND;
  public
  end;

var
  MDIChild: TMDIChild;

implementation

uses Unit1;  (* unidad del MDIForm *)

(* Esta función la podés ubicar en una unit de uso común a los Childs *)
function GetMDIClientArea(MDIForm: TForm): TRect;
begin
  if MDIForm.FormStyle = fsMDIForm then
  begin
    if not Windows.GetClientRect(MDIForm.ClientHandle, Result) then
      RaiseLastOSError;
  end
  else
    raise Exception.Create('Error no es un form MDI');
end;

procedure TMDIChild.WMSysCommand(var Msg: TWMSysCommand);
begin
  if Msg.CmdType = SC_MAXIMIZE then
   BoundsRect := GetMDIClientArea(MDIForm)
  else
   DefaultHandler(Msg);
end;

...

Un saludo.
__________________
Daniel Didriksen

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

Última edición por ecfisa fecha: 24-01-2011 a las 16:30:48.
Responder Con Cita
  #3  
Antiguo 24-01-2011
Avatar de Enan0
Enan0 Enan0 is offline
Miembro
 
Registrado: may 2004
Ubicación: Argentina
Posts: 565
Poder: 20
Enan0 Va por buen camino
Yo alguna vez hice algo similar, puse en la parte de abajo del Main Form un Control Bar, y ante cada nuevo MDI Child creado, Creaba un boton que hacia referencia dicho formulario.

Mediante un PopUp Menu daba la opcion de Cerrar, minimizar o maximizar la ventana en cuestion

saludos
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
Necesito asistencia para crear directorio dionnis C++ Builder 1 16-02-2009 15:08:25
Necesito crear una aplicacion.... ayuda please Enable Varios 8 10-09-2006 17:51:01
Necesito crear un permiso para escribir pero no para leer federiconqn21 Conexión con bases de datos 5 07-07-2006 19:13:47
Necesito un Sugerencias para Crear Indices AGAG4 Firebird e Interbase 1 10-04-2006 17:24:03
¿Como crear Tabs. ? JXJ Varios 4 21-09-2005 05:51:49


La franja horaria es GMT +2. Ahora son las 13:35:36.


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