Tôi đã có một lớp thành phần đơn giản với tài sản boolean:Lớp bất động sản mặc định của bộ boolean true cho sai về thời gian chạy
TmyClass = class(TComponent)
private
fSomeProperty: boolean;
published
property SomeProperty: boolean
read fSomeProperty
write fSomeProperty
default true;
end;
tôi đặt nó vào mẫu của tôi, thiết lập nó là true (SomeProperty được đặt thành false, tại sao?), Nhưng khi tôi đang cố gắng truy cập SomeProperty từ thời gian chạy, nó cho tôi sai. Tại sao vậy?
+1; Tôi đã không tìm thấy bất cứ điều gì hữu ích về 'mặc định' specifier ngoại trừ trong Object Inspector khi bạn thay đổi giá trị của một số tài sản từ' mặc định' một, nó được đánh dấu bằng chữ đậm; nếu bạn thay đổi nó về 'mặc định' thì kiểu đậm sẽ bị xóa. –
Như @ain đã nói, hãy đọc phần Bộ lưu trữ của trình trợ giúp hoặc DocWiki. Điều này nói: 'Lưu ý: Giá trị thuộc tính không được tự động khởi tạo thành giá trị mặc định. Nghĩa là, chỉ thị mặc định chỉ điều khiển khi các giá trị thuộc tính được lưu vào tệp biểu mẫu, nhưng không phải giá trị ban đầu của thuộc tính trên một cá thể mới được tạo.' –
Vì vậy, để khắc phục nó, hãy thêm mã hàm xây dựng 'FSomeProperty: = true' –