kgz*_*kgz 2 delphi properties firemonkey
(Firemonkey,XE7)我有一个带有TTextControl祖先的组件,引入了SizeConstraints,仅基于VCL版本.设计器不会将Constraint属性保存到.FMX文件中.当我查看"视图形式为文本"时,约束不存在,即使我之前编辑了属性值(是的,我可以在Object Inspector中编辑它,但它没有保存)这段代码有什么问题?
约束定义:
TSizeConstraints = class(TObject)
...
published
...
property MaxHeight: Single index 0 read FMaxHeight write SetConstraints;
property MaxWidth: Single index 1 read FMaxWidth write SetConstraints;
...
end;
Run Code Online (Sandbox Code Playgroud)
组件定义:
...
published
property Constraints : TSizeConstraints read FConstraints write SetConstraints;
...
procedure TMyComponent.SetConstraints(const Value: TSizeConstraints);
begin
FConstraints.Assign(Value);
end;
Run Code Online (Sandbox Code Playgroud)
并且TSizeConstraints.Assign会复制数据:
procedure TSizeConstraints.Assign( const C : TSizeConstraints );
begin
if Assigned( C ) then
begin
FMinHeight := C.FMinHeight;
FMaxHeight := C.FMaxHeight;
FMinWidth := C.FMinWidth;
FMaxWidth := C.FMaxWidth;
Change;
end;
end;
Run Code Online (Sandbox Code Playgroud)
我错过了什么,或者它是IDE错误?
问题是你来自TObject
.从中TComponent
获取此类以获取流功能.或者也许TPersistent
正如@NGLN所暗示的那样.
您还应该更改Assign
方法以覆盖Assign
引入的虚拟TPersistent
.
归档时间: |
|
查看次数: |
561 次 |
最近记录: |