2014-02-20 37 views
1

有關於嵌入FMX形式到面板一些代碼...嵌入FMX形成

http://docwiki.embarcadero.com/CodeExamples/XE5/en/FMXEmbeddedForm_(Delphi)

....我想多形式嵌入到同一個面板,在關閉之前 當然。在使用該方法從docwiki中嵌入這些表單時,我遇到了適當的問題以關閉/免費使用這些表單。

來自測試我發現窗體並不實際嵌入,而是窗體上的對象被移動到一個新的父窗體上,以模擬嵌入窗體的效果。

在vcl中這很容易做到,但在dmx中它是一個不同的球類遊戲。

有什麼想法?

+0

愛他們如何拼寫在這個例子!無論如何,你是否嘗試像在VCL中一樣進行操作,即分配子窗體的「Parent」。 –

+0

是的大衛這是我第一次嘗試。我在vcl中完美的工作。 dmx表單不會將其自身嵌入其他表單中 –

回答

0

當您嵌入表單時,正如您所述,將嵌入表單中的某些組件重新制作到包含表單上。

如果你想刪除您可以這些組件:

  • 他們重新設置父級比含有形式(例如回原來的形式)以外的東西。如果您有多種表單,並且您希望能夠在不必銷燬和重新創建的情況下進行交換,則可以執行此操作。
  • 釋放嵌入式表單(在ARC下使用DisposeOf)。這既會破壞表單,也會控制並從包含表單中移除它們。 (請注意,雖然包含窗體成爲家長,原來,嵌入形式保持作爲所有者。當嵌入式形式被銷燬該控件被破壞。

然後,您可以創建和重新設置父級的另一種形式,在它的地方

另請注意,您可以安全地將多個表單嵌入到一個容器表單中,但需要爲每個表單使用不同的對象作爲容器,也可以將多個組件或一組組件放置到可嵌入的表單中並嵌入他們到一個容器的形式或甚至在多個表單上的不同位置。

但是,您只能嵌入e一次控制一個表格。

0

最簡單的方法是將每個表單上的透明佈局設置爲頂層組件。

當您需要在面板中嵌入表單時,只需創建表單實例並將其佈局的父級更改爲面板即可。 當您不需要嵌入式表單時,您可以將佈局重新設置爲其表單並將其釋放。