私は自分のUIに「接続」したいビジネスオブジェクトを持っています。私は、オブジェクトをデータに対応させるための部分的なソリューションをいくつか見てきましたが、それらはすべて抽象レイヤーを追加するなど、ビジネスオブジェクトに大きな変更を加えました。RTTIを使用してオブジェクトを意識したコントロールを作成するためにプロパティ書き込みメソッドをプログラムで変更することはできますか?
私は、Delphiの新しいバージョンで改善されたRTTIを検討しています。非常に面白くて便利です。私はそれをプログラムですべてのプロパティの新しい書き込みメソッドを挿入するために使用できるかどうか疑問に思っています。
この方法は、フォームの作成時にTEditの子孫がオブジェクトプロパティへの参照を渡すことで動作します。 TEditは、そのプロパティの属性に自身への参照を挿入します(もちろん、デストラクタまたは別の参照が与えられている場合は削除されます)。 TEditは、プロパティの書き込みメソッドが、元の書き込みメソッドを呼び出した後にTEditに変更を通知するものに置き換えられることも保証します。
これは実現可能ですか?大きなショーストッパーは、新しい書き込みメソッドを注入することは不可能なので、この質問のタイトルです。
派生プロパティにも潜在的な問題がありますが、その解決策を見つけることは可能であるはずです。
おそらくhttp://docwiki.embarcadero.com/CodeSamples/en/TVirtualMethodInterceptor_(Delphi)とhttp://blog.barrkel.com/2010/09/virtual-method-interception.htmlは始める場所ですか? – ComputerSaysNo
ビンディングのような音! TEditの子孫の最小限のプロトタイプを提供できますか? – menjaraz
'control'認識のビジネスオブジェクトや'ビジネスオブジェクト '認識コントロール(VCLのc.fデータ認識コントロール)が本当に必要なのは何ですか?私の意見では、ビジネスオブジェクトはUIコントロールを知らなくてはなりません。 – menjaraz