- 创建一个简单的 FireMonkey 移动应用程序。
- 在表单中添加一个 TEdit 字段。
- 分配 OnApplyStyleLookup 事件
编写以下代码
procedure TForm1.Edit1ApplyStyleLookup(Sender: TObject); var Obj: TFmxObject; begin Obj := Edit1.FindStyleResource('background'); if Obj <> nil then ShowMessage('Obj is not nil') else ShowMessage('Obj is nil'); end;
XE6 中的代码运行良好,XE7 Obj 内部为零。请问,这是什么原因,怎么去Obj?
如下代码,获取Obj与NIL值相同:
TMyEdit = class(TEdit)
protected
procedure ApplyStyle;override;
...
procedure TMyEdit.ApplyStyle;
var
Obj: TFmxObject;
begin
inherited;
Obj := Self.FindStyleResource('background');
...
end;