2012-04-24 68 views
2

我使用框架來覆蓋父窗體上的幾個對象。該框架包含一個進度條,一個標籤和一個按鈕。當我激活框架時,只渲染進度條。標籤和按鈕保持不可見狀態。在顯示框架時,在代碼中將.enable + .visible設置爲true也不起作用。我可以在IDE中看到完美的對象。它們只在運行時消失。德爾福7:框架上的對象不呈現(bug?)

我讀了這個線程,似乎有是在Delphi 7中的錯誤可能會導致這種行爲,但我不知道:

http://www.delphigroups.info/2/7/734850.html

是否有某種解決方法獲取德爾福呈現所有框架的對象?

更新:對於幀

object Frame2: TFrame2 
    Left = 0 
    Top = 0 
    Width = 528 
    Height = 116 
    TabOrder = 0 
    object Label1: TLabel 
    Left = 8 
    Top = 8 
    Width = 32 
    Height = 13 
    Caption = 'Label1' 
    end 
    object Button1: TButton 
    Left = 8 
    Top = 72 
    Width = 75 
    Height = 25 
    Caption = 'Button1' 
    TabOrder = 0 
    end 
    object ProgressBar1: TProgressBar 
    Left = 8 
    Top = 32 
    Width = 473 
    Height = 24 
    TabOrder = 1 
    end 
end 
+0

您可以在這裏轉儲框架的* .dfm文件嗎?我已經寫了使用框架(而不是形式)的D7應用程序,並從來沒有得到這個問題... – ComputerSaysNo 2012-04-24 10:02:12

+0

按鈕是一個TSpeedButton或從TGraphicControl派生的東西? – 2012-04-24 10:19:31

+0

您正在使用框架*覆蓋*其他控件?但是,你說你*激活*框架 - 這是什麼意思?然後你說*顯示*框架,但是由於框架覆蓋了其他部件,爲什麼顯示框架會使控件消失,這有什麼意外?它們被覆蓋了! – 2012-04-24 13:14:18

回答

1

好吧,我發現了錯誤,我很慚愧,因爲它是一個相當明顯的:

在按鈕單擊框架正在呈現,包括它的所有對象,但該點擊也初始化CPU密集功能。由於這是早期的代碼,我還沒有實現線程化,所以函數凍結了gui渲染,從而阻止了一些對象的出現。當我評論這個功能時,這是「固定的」。我也被扔掉了,框架上的進度條不僅出現,而且不斷更新,儘管CPU使用率。

再次感謝大家的回覆。

1

嘗試DFM代碼把你的組件集成到一個面板。

+0

謝謝!我沒有想到這一點!出於同樣的問題,我在下面解釋。 – Zerobinary99 2012-04-24 15:12:37