Difference between revisions of "MultiDoc/de"

From Free Pascal wiki
Jump to navigationJump to search
m
m
Line 14: Line 14:
 
I do them with a [[Media:Multidoc_skychart.jpg|graphical software]] in mind but they are probably useful for a range of applications.
 
I do them with a [[Media:Multidoc_skychart.jpg|graphical software]] in mind but they are probably useful for a range of applications.
  
=== Screen Shot ===
+
=== Screenshot ===
 
[[Image:Multidoc_demo.png]]
 
[[Image:Multidoc_demo.png]]
  
Line 24: Line 24:
 
   
 
   
 
=== Download ===
 
=== Download ===
The component and a demonstration program can be found on the [http://sourceforge.net/project/showfiles.php?group_id=92177&package_id=176905 Lazarus-CCR sourceforge site].
+
Die Komponente und ein Demonstrationsprogramm sind zu finden im [http://sourceforge.net/project/showfiles.php?group_id=92177&package_id=176905 Lazarus-CCR Sourceforge Bereich].
  
 
=== Change Log ===
 
=== Change Log ===
* Version 0.2 2007/01/06 Fix the following:
+
* Version 0.2 2007/01/06 bereinigte folgendes:
 
*# BorderWidth property not working
 
*# BorderWidth property not working
*# Wrong button order
+
*# Falsche Button-Reihenfolge
 
*# Center the cursor to the title bar when moving the panel
 
*# Center the cursor to the title bar when moving the panel
*# Gtk2 and FPC 2.1.1 compatibility
+
*# GTK2 und FPC 2.1.1 Kompatibilität
 
*# Crash when closing a child using the close button
 
*# Crash when closing a child using the close button
*# Change licensing to modified LGPL
+
*# Lizenz zu modifizierter LGPL geändert
* Version 0.1 2006/01/20  First beta release.
+
* Version 0.1 2006/01/20  Erstes Beta-Release.
  
 
=== Abhängigkeiten / Systemvoraussetzungen ===
 
=== Abhängigkeiten / Systemvoraussetzungen ===
Line 52: Line 52:
  
 
=== Verwendung ===
 
=== Verwendung ===
At design time:
+
Zur Entwicklungszeit:
 
* On the application main form place a TMultiDoc.
 
* On the application main form place a TMultiDoc.
 
* Create a child form with a main TPanel.
 
* Create a child form with a main TPanel.
Line 58: Line 58:
 
* Do not rely on some TForm event as this form is never show.
 
* Do not rely on some TForm event as this form is never show.
  
At run time:
+
Zur Laufzeit:
 
* Create a new child from TMultiDoc.NewChild
 
* Create a new child from TMultiDoc.NewChild
 
* Create a child form with the new childdoc as owner.
 
* Create a child form with the new childdoc as owner.

Revision as of 00:11, 28 January 2007

Deutsch (de) English (en) español (es) português (pt)

Über

MultiDoc ist ein Lazarus Package zum Ersetzen des Standard MDI Interface.

This component permit to write pseudo-MDI application with Lazarus. It is not a real implementation of the MDI interface but it give to your application the capability to use many resizable sub-form.

Es gibt 2 Komponenten:

  • TMultiDoc : the main form docking area.
  • TChildDoc : the child container with resizeable border and button.

I do them with a graphical software in mind but they are probably useful for a range of applications.

Screenshot

Multidoc demo.png

Autor

Patrick Chevalley

Lizenz

Modifizierte LGPL, siehe readme.txt

Download

Die Komponente und ein Demonstrationsprogramm sind zu finden im Lazarus-CCR Sourceforge Bereich.

Change Log

  • Version 0.2 2007/01/06 bereinigte folgendes:
    1. BorderWidth property not working
    2. Falsche Button-Reihenfolge
    3. Center the cursor to the title bar when moving the panel
    4. GTK2 und FPC 2.1.1 Kompatibilität
    5. Crash when closing a child using the close button
    6. Lizenz zu modifizierter LGPL geändert
  • Version 0.1 2006/01/20 Erstes Beta-Release.

Abhängigkeiten / Systemvoraussetzungen

This component is exclusively derived from high level standard component (TPanel, TCustomSplitter, TSpeedButton). It must work on all the Lazarus platform without change.

Getestet unter Linux und Windows.

Anmerkungen

You are not limited to show the docking area in the full main form. You can place the TMultiDoc anywhere you want or use multiple one! A combination with a TNotebook may give something similar to a multi-desktop.

Installation

  • Kompilieren und installieren sie multidocpackage.lpk
  • Öffnen sie das Beispiel demo/demomultidoc.lpi

This example can be used as a skeleton for a new application.

Verwendung

Zur Entwicklungszeit:

  • On the application main form place a TMultiDoc.
  • Create a child form with a main TPanel.
  • Put all the object you want for the child to the panel, write the event, etc...
  • Do not rely on some TForm event as this form is never show.

Zur Laufzeit:

  • Create a new child from TMultiDoc.NewChild
  • Create a child form with the new childdoc as owner.
  • Assign the main panel to the Dockedpanel property.


Convert a Delphi MDI application

Converting a MDI application is simplified by the availability of the same component for Delphi and Kylix.

Convert first your application to MultiDoc in Delphi,then convert to Lazarus. This require some work but among the advantage you avoid the ugly XP border around your child forms.

Replace the standard MDI function as below:

  MDIChildCount   -> MultiDoc1.ChildCount
  ActiveMdiChild  -> MultiDoc1.ActiveObject
                  or MultiDoc1.ActiveChild
  MDIChildren[i]  -> MultiDoc1.Childs[i].DockedObject
                  or MultiDoc1.Childs[i]

Die Delphi Komponente ist im Package enthalten. Entpacken sie multidoc-delphi.zip und installieren MultiDocD6.dpk oder MultiDocK3.dpk.