2012-01-25 56 views
0

我目前(在某些情況下依賴於配置文件)養育多個表單。TForm父屬性

這就是說,一個父母形式可以有多個孩子形式。

我遇到的問題是,當我最小化子窗體和父窗口當前最大化(我根據配置文件設置父窗體大小)時,我失去了子窗體圖標,從而可以不會恢復它。

如果父形式做這個,然後我仍然有圖標,可以恢復之前最大化..

在我來說,我想父窗體是一個邊界框(仍然是一個形式,雖然)因此沒有平鋪欄,因此最大化不能實現。

我需要能夠在飛行中設置此父母。

看着MDI形式(不能使用全MDI應用程序),但聽說他們不工作以及在飛行中被設置..

有誰知道在這一個最好的方法的任何提示。我不期待免費的代碼,但一些指導將不勝感激。

非常感謝, 喬

回答

2

一般不設置TFormParent可言,更不用說其他TForm一個好主意。更好的解決方案是將您的孩子內容放在TFrame上,然後根據需要設置Parent。這使您可以更好地控制TFrame的顯示方式和位置。然後,您可以提供自己的用戶界面來隱藏並根據需要顯示您的TFrame實例。如果您需要一個給定的TFrame以自由浮動,只需實例化一個空白TForm並將其設置爲該TFrameParent

+0

我明白了。那麼我可能不得不重新設計一些東西。 – Yos

+0

對不起,通過按Enter鍵換行:-)可以縮短這一短路時間。框架是透明的,但如果我想將控件放置到我的窗體上,並且框架上有一個框架(以編程方式)。我是否需要將控件放在框架上而不是形式上,以便我可以看到它們。只是嘲笑了一張虛擬形式,並將一個框架塑造成了形式。在設計師中,我在表格上放置了一個按鈕,但框架放置在按鈕的頂部。我將有很多情況下需要在表單上繪製位圖等。謝謝您的回覆! – Yos

+0

關鍵是不要把你的內容放在'TForm'上,除非用戶需要在屏幕上拖動你的內容。您可以將所有內容放在'TFrame'上,然後將其放在'TPanel'或任何其他'Parent'容器上。如果你希望你的內容可以在屏幕上拖動,你可以將'TFrame'放在一個空白的'TForm'上,並將幀的'Align'屬性設置爲'alClient'來填充整個'TForm'。用戶永遠不會知道其中的差別。 –