- 簡単な FireMonkey Mobile アプリを作成します。
- 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;