我有與布爾屬性一個簡單的組件類:類默認屬性給出了運行時錯誤
TmyClass = class(TComponent)
private
fSomeProperty: boolean;
published
property SomeProperty: boolean
read fSomeProperty
write fSomeProperty
default true;
end;
我把它放在我的形式,其設置爲true(SomeProperty設置爲false,爲什麼?),但是當我試圖從運行時訪問SomeProperty它給我錯誤。爲什麼?
+1;除了在Object Inspector中,當你將一些屬性的值從默認值改變爲默認值時,我沒有發現對default屬性有用的東西,它用粗體字突出顯示;如果您將其更改回「默認」,則刪除粗體樣式。 – 2011-08-04 16:15:09
正如@ain所說,請閱讀幫助或DocWiki的存儲說明符部分。這說:'注意:屬性值不會自動初始化爲默認值。也就是說,只有當屬性值被保存到表單文件時,缺省指令纔會控制,而不是在新創建的實例上屬性的初始值。' –
所以要修復它,添加構造函數代碼'FSomeProperty:= true' –