現在至少有300多種我在過去5年中創建的手動創建的表單,我從未見過這個問題。我當然有一個主要的形式,然後是一堆小的孩子形式。這些子表單不是自動創建的,它們是在我的代碼中手動聲明和創建的。這個項目還很不成熟,這意味着在這個項目中沒有太多的代碼可能會丟失一些東西。但問題是,我所做的只是創建窗體,將父窗體分配給主窗體,並且沒有任何代碼來顯示窗體,無論如何它都會顯示其自身。表單自動顯示沒有我告訴他們?
FControlPanel:= TfrmControlPanel.Create(nil);
FControlPanel.Parent:= Self;
這就是我必須創建它的所有代碼。絕對沒有代碼在實際的子表單中。它至少需要FControlPanel.Show
才能看到,但由於某種原因,它仍然可見。
我確實有一種預感可能導致此行爲開始。但我不能把兩個和兩個放在一起。我試圖使用MDI表單功能,將表單保存在主窗體中。但是在一些試驗/錯誤情況出現之後,我放棄了並重新設置了自己的屬性。我改變的唯一屬性是FormStyle - 我在fsMDIForm,fsNormal和fsStayOnTop之間切換的主要形式(用於試用)。我把孩子換成fsMDIChild。在我放棄之後,我將它們全部切換回默認的fsNormal。當這場「車展」開始發生時,這是在玩這個遊戲之後。
此外,可能是一個重要的說明,這些子窗體是從主窗體繼承而來的。這種主表格幾乎沒有代碼,至少沒有可能顯示它的代碼。我在任何代碼中都沒有告訴它顯示這些子表單,但無論如何。而且我知道他們不是自動創建的。
我該做什麼錯了?
PS - 實現MDI的一般問題還有另外一個問題,我並不是在問MDI,但它可能是導致這種情況發生的原因,因爲已知組件的屬性會改變屬性的永久性組件,例如,在TPanel上,將「ParentBackground」切換爲true,然後再次返回false,使其在使用XPMan時正確顯示指定的顏色。
BINGO!非常感謝 - 我忘記了甚至有Visible屬性的表單,我從來沒有使用它...+1並且接受:D – 2011-12-22 00:53:20
因此,在這種情況下,我假設'Visible'屬性用於指定創建時是否可見?我一直使用窗體上的顯示/隱藏... – 2011-12-22 00:55:35
是的。我想它被用於自動創建的表單。 – ain 2011-12-22 00:57:19