クラスの型の変数を変更し、利用する方法

解決


たき  2009-03-19 10:36:04  No: 33711  IP: 192.*.*.*

初心者です、教えてください。
例えば
EX1 : TDefault; 
EX2 : TDefault; 
EX3 : TDefault; 
EX4 : TDefault;

と変数宣言があります。
ボタンを押したときにEX1のStatusを変更したい場合、
ボタンONイベント→  EX1.Status  :=  1;
などと変更していますが、4つ変更したい場合は
EX1.Status  :=  1;
EX2.Status  :=  1;
EX3.Status  :=  1;
EX4.Status  :=  1;
としなければいけないのでしょうか(実際は30個ある)
ループとかでまわして、
EX○.Status :=  1;
と○の中を書き換えていきすべてのStatusを1に変えるということ
は可能でしょうか。
可能であればやり方を教えてください。
よろしくお願いします。

編集 削除
pekesuke  2009-03-19 11:21:45  No: 33712  IP: 192.*.*.*

配列を使われてはいかがでしょうか。

var
  EX: array of Tdefault;
  I: integer;
begin
  SetLength(EX, 10);
  for I := Low(EX) to High(EX) do
  begin
    EX[I] := TDefault.Create;
    EX[I].Status := 1;
  end;

編集 削除
たき  2009-03-19 13:52:39  No: 33713  IP: 192.*.*.*

回答ありがとうございます。
わからないので再度お願いします。(ちょっと説明が足りませんでした)
EX1、EX2、EX3、・・・、EX30はそれぞれボタンです。
EX1ボタンを押すとEX1のStatusが1になるようなボタンです。

ALL Status Changeみたいなボタンを新たに作って、そのボタンを押したときにEX1〜EX30のそれぞれのStatusの値が1に変わるようにしたいです。

実際に
ALL Status Changeを押すイベント→
EX1.Status  :=  1;
EX2.Status  :=  1;
EX3.Status  :=  1;
    ・
    ・
    ・
EX30.Status :=  1;
と全て書けば済むことですが、きれいな形ではないです。
配列はうまくできませんでした。

編集 削除
tono  2009-03-19 15:19:24  No: 33714  IP: 192.*.*.*

FindComponentを使えば出来るのではないでしょうか。

編集 削除
たき  2009-03-19 16:03:06  No: 33715  IP: 192.*.*.*

tonoさん、pekesukeさん
解決できました。
便利な機能があったんですね。

ありがとうございます。

編集 削除