[英]Delphi XE2: How to make properties settable at design time?
我有一个简单的组件
type
TTimedScrollBox = class(TScrollBox)
private
procedure WMVScroll(var Message: TWMVScroll); message WM_VSCROLL;
protected
FSkipTime: Cardinal;
FEndTimeout: Cardinal;
FSkipScrollTimer: TTimer;
FEndScrollTimer: TTimer;
FLastMessage: TWMVScroll;
FWaiting: boolean;
FLastMessageValid: boolean;
FLog: TStrings;
FSkipCount: integer;
procedure SkipTimerEvent(Sender: TObject);
procedure EndTimerEvent(Sender: TObject);
public
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
property Log: TStrings read FLog;
published
property ScrollSkipTime: Cardinal read FSkipTime write FSkipTime default 100;
property ScrollEndTimeout: Cardinal read FEndTimeout write FEndTimeout default 200;
end;
我希望能够在设计时为 ScrollSkipTime 和 ScrollEndTimeout 指定值。 我的印象是我需要做的就是编写如图所示的代码,但是
我错过了什么/做错了什么?
您在属性声明中提供的默认值仅由流框架和 IDE 使用。 例如,如果该值等于默认值,则不会流式传输该属性。 默认值还用于允许 IDE 以粗体突出显示已从默认值修改的值。
您的代码中缺少的是您需要在组件的构造函数中设置支持字段的值。 我们看不到那个代码,但我很确定那是缺少的东西。
文档中涵盖了此问题:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.