TSMH’s blog

多趣味人間のメモ

一気に大量のオブジェクトを処理する

どんなアプリでも多分大量のオブジェクトが入っていると思います
テキストでも、ボタンでも
機能は別々のボタンだったら、もちろん一つずつ設置しなきゃいけないですが
もし機能が一緒の大量のオブジェクトを作りたい場合はどうすればいいですか?
Delphiで大量のオブジェクトを一気に処理するのをメモしたいと思います

目次

 

生成

最初はもちろん大量のオブジェクトを作ります
(ここ以下は オブジェクトーLabel を使って説明したいと思います

Label1
Label2
Label3
Label4
Label5

出来れば名前があるルールがあった方がいいです
(代入しやすいため

次は Label の配列を宣言します
(private publicどっちでも大丈夫です

ObLabel : Array[0..4] of TLabel ;

こういう感じですね

代入

準備が整えたら、代入に入りまーす

FormCreateのとここの処理を入れます

for i := 0 to Length(ObLabel) -1 do
    begin
      ObLabel[i] := TLabel(FindComponent('Label' + IntToStr(i+1)));
    end;

そう、最初作った大量のテキストを配列の中に入れて宣言した配列を使ったら
一気に処理できるっていうことです

もしオブジェクトの名前はルールがない場合は、一つ一つ代入すればいいっすね
(めんどくさいけどw

処理

次はもう簡単だと思いますね
メソッドを用意して、呼べばいいってことですね

FormShowのとこ処理を入れてみます

for i := 0 to Length(ObLabel) -1 do
    begin
        if ObLabel[i] = TLabel(Sender) 
            begin
                ObLabel[i].Text := 'テキスト' + IntToStr(i+1);
            end;
    end;

こんな感じです

まとめ

オブジェクトを作る
配列を宣言する
オブジェクトを配列の中に代入する
処理を入れる