コンポーネントを動的に配置するには?

解決


motti  2002-02-19 01:38:51  No: 589  IP: [192.*.*.*]

フォームに2000個のTEDITを配置しなければならない
のですが、2000個以上になる可能性もあるのです。
逆に実際は1個しか必要としない場合もあります。

プログラム実行時にフォームに配置するコンポーネントを
VisibleをFalseにするというのではなく
動的に増やしたり、減らしたりする事は出来るのでしょうか?
ご存知の方、教えてください。

編集    削除
にしの  2002-02-19 07:36:10  No: 590  IP: [192.*.*.*]

TComponentListなどで、追加・削除することができます。
生成方法は、他のオブジェクトとほぼ同じです。

たとえば、
  Edit := TEdit.Create(Self);
でTEditを生成し、
  Edit.Free;
で解放します。
# 引数が指定してあれば、指定したコンポーネントが破棄されるときに、作成したコンポーネントも破棄されます

細かいプロパティやメソッドなどは、ヘルプをどうぞ。

編集    削除
motti  2002-02-19 08:23:17  No: 591  IP: [192.*.*.*]

できました!
ありがとうございます!!
すいません。HELPにでてました・・・。
見逃してたみたい・・・。
そうですね。TComponentListを使えばよいみたい。

編集    削除
おやじ  2002-03-02 02:22:44  No: 592  IP: [192.*.*.*]

同じ悩みを持っていたので、ここぞと試してみましたが、
上手く行きませんでした。  Edit := TEdit.Create(Self);
でTEditを生成出来たらしいのですが、表示されません。他にまだ何かやる
事が有るのでしょうか?HELPを探しまくったのですが、要領が悪いのか、
なかなか行きつけません。TComponentListをどう使ったら良いのでしょうか。

編集    削除
にしの  2002-03-02 02:34:10  No: 593  IP: [192.*.*.*]

ParentとVisibleを指定すれば表示されます。

編集    削除
おやじ  URL  2002-03-04 18:06:06  No: 594  IP: [192.*.*.*]

にしの様   ありがとうございました。
一件落着です。Parentに気がつきませんでした。

編集    削除