Delphi - 使用TEdit.tagObject指向另一个对象

时间:2018-05-21 08:25:57

标签: delphi firemonkey delphi-10.2-tokyo

我正在使用TEdit的后代并使用TagObject来存储对象。我正在使用Firemonkey。

简而言之,我正在使用另一个对象,并希望将该对象的属性分配给我的TMyEdit,这样每当我加载对象时,文本都会更新,当我更改文本时,对象会更新。

所以我这样做:

Edit1 : TMyEdit;
MyElement:TMyProperty;
...
Edit1.TagObject:=TMyTextProperty(MyElement);

(出于其他原因,必须进行类型转换。我提到它只是为了它是相关的。)

当MyElement不是nil时,代码可以正常工作。如果MyElement为nil,MyEdit会自动创建一个新的TMyTextProperty实例并将其分配给tagObject。

procedure TMyEdit.MyOnChange(Sender : TObject);
begin
  if tagObject=nil then TagObject:=TMyTextProperty.Create('');
  TMyTextProperty(TagObject).value:=text;
end;

我假设因为tagObject是一个指针而我将其指向MyElement,所以myElement也会更新。但它不是。

Edit1.TagObject包含我的值,但MyElement是stil nil。 我需要MyElement作为新创建的对象。

我做错了什么?我怎样才能确保每当创建TagObject时,MyElement指向新对象?

非常感谢

0 个答案:

没有答案