MultiDoc/es
│
Deutsch (de) │
English (en) │
español (es) │
português (pt) │
Acerca de...
MultiDoc es un componente de Lazarus que sustituye al habitual interfaz MDI.
Este componente permite escribir aplicaciones pseudo-MDI con Lazarus. No es una verdadera implementación del interfaz MDI, pero dará a su aplicación la capacidad de utilizar varios formularios hijos redimensionables.
Hay dos componentes:
- TMultiDoc : la zona de acople del formulario principal.
- TChildDoc : el contenedor hijo con borde y botón redimensionables.
Fueron creados pensando en un software gráfico, pero probablemente sean útiles para una amplia gama de aplicaciones.
Captura de pantalla
Autor
Licencia
LGPL modificada, vea el fichero readme.txt
Descarga
El componente, en su versión 0.1 y 0.2, y un programa de demostración lo puede encontrar en Lazarus-CCR sourceforge.
El componente en su versión 0.3 y 0.3.1 puede encontrarlo en aquí.
Próximamente uniré los paquetes MultiDoc y LMDI y estarán disponibles en SourceForge.net
Cambios habidos
- Versión 0.3.1 2008/01/01 Repara lo siguiente:
- Movidas a la sección pública algunas propiedades, para permitir excepciones en tiempo de diseño
- Version 0.3 2007/12/31 Repara lo siguiente:
- Esta versión ha sido desarrollada por Júnior Gonçalves y depende del paquete LMDI
- A traves de {$IFDEF}'s el componente compila en Lazarus/Delphi sin cambios
- Gran cambio. Ahora el ratón no "escapa" cuando el cursor esta pulsado (Testeado en GTK2 (Windows) y Windows XP)
- ChildDoc deriva ahora de TFormPanel (ver LMDI)
- No es necesario código para dar el foco al formulario hijo
- Es posible cambiar la "piel" de la barra de título, de acuerdo al sistema operativo (ver el componente TTitleBar)
- Version 0.2 2007/01/06 Repara lo siguiente:
- La propiedad BorderWidth no funciona
- Error en el orden de los botones
- Centra el cursor en la barra de título al mover el panel
- Compatibilidad con Gtk2 y FPC 2.1.1
- Error al cerrar el hijo usando el botón cerrar
- Cambio de la licencia LGPL
- Version 0.1 2006/01/20 Primera beta liberada
Dependencias / Requerimientos del sistema
Este componente deriva exclusivamente de un componente habitual de alto nivel (TPanel, TCustomSplitter, TSpeedButton). Puede funcionar en todas las plataformas de Lazarus sin realizar cambios.
Probado en Linux y Windows.
Notas
No está limitado a mostrar la zona de acople en todo el formulario principal. Puede situar TMultiDoc donde quiera o ¡usar uno múltiple!. Una combinación con un TNotebook puede producir algo parecido a un escritorio múltiple.
Instalación
- Compile e instale multidocpackage.lpk
- Abra el ejemplo demo/demomultidoc.lpi
Este ejemplo lo puede utilizar como base para una nueva aplicación.
Utilización
En tiempo de diseño:
- Sitúe un TMultiDoc en el formulario principal de la aplicación.
- Cree un formulario hijo con un TPanel principal.
- Ponga todos los objetos que quiera para el formulario hijo en el panel, escriba eventos, etc...
- No cuente con algún evento de TForm, pues este formulario no se mostrará nunca.
En tiempo de ejecución:
- Cree un nuevo formulario hijo de TMultiDoc.NewChild
- Cree un formulario hijo con el nuevo documento hijo como propietario.
- Asigne el panel principal a la propiedad Dockedpanel.
Convertir una aplicación MDI de Delphi
La conversión de una aplicación MDI se ha simplificado con la disponibilidad del mismo componente para Delphi y Kylix.
Convierta primero su aplicación a MultiDoc en Delphi, después conviértala a Lazarus. Esto necesita algún esfuerzo pero evita el antiéstetico borde de XP alrededor de los formularios hijos.
Sustituya la función habitual MDI de la siguiente forma:
MDIChildCount -> MultiDoc1.ChildCount ActiveMdiChild -> MultiDoc1.ActiveObject o MultiDoc1.ActiveChild MDIChildren[i] -> MultiDoc1.Childs[i].DockedObject o MultiDoc1.Childs[i]
El componente de Delphi está incluido en el paquete. Descomprima multidoc-delphi.zip e instale MultiDocD6.dpk o MultiDocK3.dpk.