Delphi - Form in Form

7

Aus ästhetischen Gründen möchte ich ein Formular auf einer anderen Form zeigen, so als wäre es eine Komponente, etwa wie ein TPanel. Es sollte sich mit dem Elternteil verändern, sich bewegen, wenn der Elternteil durch seine Titelleiste usw. gedrängt wird.

%Vor%

kann ich das tun? Wenn das so ist, wie?

Ich stütze mich jetzt auf MDI ...

    
Mawg 19.03.2010, 07:10
quelle

3 Antworten

21

Fügen Sie ein Panel ein, in dem sich Ihr eingebettetes Formular zur Entwurfszeit befinden soll. Erstellen Sie zur Laufzeit das Formular, und legen Sie dann die Parent-Eigenschaft des eingebetteten Formulars auf das Panel fest.

%Vor%

Bearbeiten:

Wenn Sie verhindern möchten, dass der Fenstertitel und der Rahmen angezeigt werden, fügen Sie dies am unteren Rand von FormCreate()

hinzu %Vor%

BTW, ich befürworte nicht die Verwendung von Parentformularen über Frames, nur um die Frage zu beantworten. Frames sind großartig (ich benutze sie die ganze Zeit), aber sie sind nicht genau wie Formulare. Sie sind fast genau wie ein Panel mit Kontrollen darauf.

Zum Beispiel hat ein Rahmen weder ein OnCreate-Ereignis noch ein OnShow-Ereignis, was manchmal schmerzhaft sein kann, wenn Sie sie wiederverwenden und diese Art von Verhalten benötigen.

N @

    
Nat 19.03.2010, 08:15
quelle
11

Sie können einen Rahmen verwenden.

>     
Uli Gerhardt 19.03.2010 07:19
quelle
1

Native win32 MDI gilt als "veraltet". Ich denke, dass Sie nach etwas wie der JEDI JvDocking Bibliothek suchen. Ich benutze es, um MDI zu emulieren, aber ohne die win32 MDI-Unterstützung.

    
Warren P 19.03.2010 21:23
quelle

Tags und Links