プロパティを実行させるには?

解決


こたつ  2005-01-26 05:58:37  No: 12865

いつもお世話になっています。
自作コンポーネントの自作プロパティの作動なのですが、
実行直後にオブジェクトインスベクタに入力した値をフィールドに代入し初期化したいのですが、どこにどのように実装すればいいのでしょうか?
ご教授ねがいます。


りおりお  2005-01-26 06:21:59  No: 12866

とくにコードで書く必要はありません。


こたつ  2005-01-26 06:41:56  No: 12867

りおりお様
お返事ありがとうございます。

プロパティはdefault値を設定していまして、
オブジェクトインスベクタでそのdefault値の
まま実行させた場合にがぎって初期化できないのですが、、、


にしの  2005-01-26 07:18:00  No: 12868

Createコンストラクタでデフォルト値を設定してやればよろしいかと思います。


こたつ  2005-01-26 07:54:10  No: 12869

にしの様
ありがとうございます。

Createコンストラクタでフィールドに直接デフォルト値を設定すれば
いいのでしょうか?

この場合実行時にCreateコンストラクタではプロパティに対して
readとwriteの両方を実行するのでしょうか?

自作プロパティはオブジェクトの寸法をそのプロパティ値を元に算出
するものです。
プロパパティに対する処理はオブジェクトが生成される前に
行われるのでしょうかそれとも後なのでしょうか?


こたつ  2005-01-26 07:54:36  No: 12870

にしの様
ありがとうございます。

Createコンストラクタでフィールドに直接デフォルト値を設定すれば
いいのでしょうか?

この場合実行時にCreateコンストラクタではプロパティに対して
readとwriteの両方を実行するのでしょうか?

自作プロパティはオブジェクトの寸法をそのプロパティ値を元に算出
するものです。
プロパパティに対する処理はオブジェクトが生成される前に
行われるのでしょうかそれとも後なのでしょうか?


りおりお  2005-01-26 08:35:18  No: 12871

実行時も設計時も基本的には同じですよ。
ポトペタしたときにオブジェクトインスペクタにデフォルト値を反映させるためには
コンストラクタで初期化しておく必要があります。フィールド値に直接設定できます。
その場合、read も write もあるいは設定・取得のためのメソッドは実行されません。
実行させたければ、フィールド値ではなくプロパティーに設定します。
ユーザが設計時にオブジェクトインスペクタでデフォルト値を変更した場合は、
実行時に読み出されて自動的に反映されます。そのために *.dfm ファイルがあるのです。


こたつ  2005-01-26 09:14:03  No: 12872

りおりお様
たびたび申し訳ありません。

プロパティで書き込めばいいのですね。
いろいろ試してはいるのですが、メソッドに問題があるのか?
いだだ不具合を修正できません。

でもプログラムの実行過程は理解できましたので頑張ってみます。
みなさんありがとうございました。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加