2010-05-04 33 views
0

我正在創建一個使用面板集合和集合項的組件。在設計時工作但不是運行時的組件屬性

我似乎無法讓顏色在運行時工作,但他們似乎在設計時很好地工作。

你可以在這裏下載該組件的源代碼:

http://www.shaneholmes.net/pasfiles/

有一個控制檯(Tcollection)屬性,狀態顏色屬性,和編輯模式屬性

每個控制檯(TCollectionItem)有更改狀態屬性時,控制檯屬性將根據組件的StatusColors屬性進行更改。

當組件EditMode屬性設置爲true時,可以在運行時移動面板。

問:爲什麼顏色只能在設計時運行,而不能運行。

感謝

+0

你可以寫一個測試項目來顯示問題嗎?最好不要求安裝你的組件 - 不要緊,因爲問題發生在運行時。 – 2010-05-04 18:31:26

回答

1

我沒有看過你的代碼,但「板」 +「顏色不工作」聽起來好像你忘了設置ParentBackground爲False。

我想這些顏色可能在設計時有效,因爲您使用XPMan啓用了主題,而不是通過選中項目選項中的「啓用運行時主題」複選框。 (如果你有D2007或更高版本,第二個選項只對你有用。)

+0

不,我沒有啓用Theming ....我嘗試設置ParentBackground = false,但它沒有改變結果 – JakeSays 2010-05-04 16:49:44

+0

我剛剛在D2006中構建了一個小應用程序,並且如果該應用程序不是主題,那麼將獲得彩色TConsole。只要我將XPMan添加到項目中,創建的控制檯就是灰色的。將'ParentBackGround:= False'添加到'TConsoleControl.Create'修復此問題。所以我不同意你的評論。 :-) – 2010-05-04 18:54:02

+0

不知道TConsoleControl是什麼,但我認爲你指的是TConsolePanel。在我發佈這個問題之前,我添加了ParentBackground = False,但我回去再試一次,以確保我沒有犯一些錯誤。我還沒有拿到彩色面板。我沒有使用D2006,我正在使用Delphi 2010. 構造函數TConsolePanel.Create(AOwner:TComponent); 開始 繼承創建(AOwner); ParentBackground:= False; ... end; – JakeSays 2010-05-04 20:19:52

相關問題