いつもお世話になっています。
自作コンポーネントの自作プロパティの作動なのですが、
実行直後にオブジェクトインスベクタに入力した値をフィールドに代入し初期化したいのですが、どこにどのように実装すればいいのでしょうか?
ご教授ねがいます。
とくにコードで書く必要はありません。
りおりお様
お返事ありがとうございます。
プロパティはdefault値を設定していまして、
オブジェクトインスベクタでそのdefault値の
まま実行させた場合にがぎって初期化できないのですが、、、
Createコンストラクタでデフォルト値を設定してやればよろしいかと思います。
にしの様
ありがとうございます。
Createコンストラクタでフィールドに直接デフォルト値を設定すれば
いいのでしょうか?
この場合実行時にCreateコンストラクタではプロパティに対して
readとwriteの両方を実行するのでしょうか?
自作プロパティはオブジェクトの寸法をそのプロパティ値を元に算出
するものです。
プロパパティに対する処理はオブジェクトが生成される前に
行われるのでしょうかそれとも後なのでしょうか?
にしの様
ありがとうございます。
Createコンストラクタでフィールドに直接デフォルト値を設定すれば
いいのでしょうか?
この場合実行時にCreateコンストラクタではプロパティに対して
readとwriteの両方を実行するのでしょうか?
自作プロパティはオブジェクトの寸法をそのプロパティ値を元に算出
するものです。
プロパパティに対する処理はオブジェクトが生成される前に
行われるのでしょうかそれとも後なのでしょうか?
実行時も設計時も基本的には同じですよ。
ポトペタしたときにオブジェクトインスペクタにデフォルト値を反映させるためには
コンストラクタで初期化しておく必要があります。フィールド値に直接設定できます。
その場合、read も write もあるいは設定・取得のためのメソッドは実行されません。
実行させたければ、フィールド値ではなくプロパティーに設定します。
ユーザが設計時にオブジェクトインスペクタでデフォルト値を変更した場合は、
実行時に読み出されて自動的に反映されます。そのために *.dfm ファイルがあるのです。
りおりお様
たびたび申し訳ありません。
プロパティで書き込めばいいのですね。
いろいろ試してはいるのですが、メソッドに問題があるのか?
いだだ不具合を修正できません。
でもプログラムの実行過程は理解できましたので頑張ってみます。
みなさんありがとうございました。
ツイート | ![]() |