2012-04-12 2 views
-1

Die VCL lässt andere Formulare als die MainForm nicht nativ dazu, untergeordnete MDI-Formulare zu hosten. Dies ist eine hart codierte Einschränkung für Borland, keine Einschränkung der Microsoft MDI-Architektur. Microsoft erlaubt mehreren Fenstern in einer Anwendung, MDI-untergeordnete Elemente zu hosten. Es gibt kein Konzept von MainForms in der Win32-API.Mehrere MDI-übergeordnete Formulare in einer einzelnen Anwendung

Ich habe versucht, das unten Embarcadro C++ Beispiel zu Embarcadro Delphi ohne Erfolg zu konvertieren. Ich stoße immer auf den Fehler "keine mdi-Formulare sind derzeit aktiv" beim Erstellen der MDI-Kind-Formulare.

In diesem C++ - Beispiel wird veranschaulicht, wie einem nicht MDI-Projekt ermöglicht wird, mehrere MDI-übergeordnete Formulare zu hosten, von denen keines die MainForm der VCL ist.

Download mit Informationen (Account zum Download erforderlich) http://cc.embarcadero.com/item/23574

Direct Download (kein Konto zum Download erforderlich) ich dankbar wäre http://www.delphibasics.info/MultipleMDIParentFormsInASingleApplication.zip

wenn jemand diese Probe aus embarcadro C++ Sprache umwandeln würde embarcadro Delphi Sprache. Vielen Dank.

+4

Stack Overflow ist kein kostenloser Konvertierungsservice. Sie müssen es selbst versuchen und spezifische Fragen stellen, wenn Sie nicht weiterkommen. –

+4

Ich schrieb diesen Artikel. Wenn Sie Hilfe bei der Konvertierung benötigen, senden Sie eine Anfrage in den Embarcadero-Foren oder senden Sie eine E-Mail an mich. –

+2

Auch ein einzelnes MDI-Elternformular in einer Anwendung ist eine zu viele. :-) Versuchen Sie stattdessen Andocken. –

Antwort

4

Quality Central # 12006 Hosting MDI child forms in non-MainForm forms enthält detaillierte Schritte in der Beschreibung der Problemumgehung für das Hinzufügen von Unterstützung dafür. Es beinhaltet jedoch das Patchen der VCL-Quellen und wurde gegen Delphi 2005 gepostet, sodass sich einige der Schritte möglicherweise geändert haben. Es ist auch geschlossen worden als Wird nicht tun, also, wenn Sie diesen Ansatz verfolgen, müssen Sie es selbst langfristig pflegen.