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

[Delphi Q & A 掲示板] [過去ログの一覧]


たき 2009/03/19(木) 10:36:04 <初心者>
初心者です、教えてください。
例えば
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
配列を使われてはいかがでしょうか。

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
回答ありがとうございます。
わからないので再度お願いします。(ちょっと説明が足りませんでした)
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
FindComponentを使えば出来るのではないでしょうか。

たき 2009/03/19(木) 16:03:06
[[解決]]

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

ありがとうございます。

毎週金曜日はポイント最大3倍!さらに4倍のチャンスも!

Programming Library