delphi.gif (306 バイト) TCollectionの使い方


TCollectionを使うと動的なオブジェクトの配列を作ることができます。

 

toach.gif (917 バイト) コレクションの要素

TCollectionの要素はTCollectionItemから派生したオブジェクトでなければなりません。

  TDataItem = class(TCollectionItem)
  public
    Value: Variant;  // 値
    Name: string;    // データ名
    ID: Integer;     // データ番号
    procedure Show(cont: TMemo);  // 表示
  end;


 

toach.gif (917 バイト) コレクションの作成

procedure TForm1.FormCreate(Sender: TObject);
var
  cls: TCollectionItemClass;
begin
    // コレクションを作成する
    cls := TDataItem;
    dcol := TCollection.Create(cls);
end;

 

toach.gif (917 バイト) コレクションに要素を追加するには

Addメソッドを使うと既存の要素をコレクションに追加できます。新しく要素を作成したときは、Addを使わなくても要素が追加されます。

procedure TForm1.Button1Click(Sender: TObject);
var
  di: TDataItem;
begin
    di := TDataItem.Create(dcol);
    di.Value := StrToFloat(txtValue.Text);
    di.Name := txtName.Text;
    di.ID := StrToInt(txtID.Text);
end;
 

 

toach.gif (917 バイト) コレクションの要素へアクセスするには

Itemsプロパティを使用するとコレクションの要素をアクセスできます。次の例は前述のTDataItemクラスのShowメソッドを使って要素を表示するものです。

{ コレクションを表示する }
procedure TForm1.cmdShowClick(Sender: TObject);
var
  i : Integer;
  d: TDataItem;
begin
    for i := 1 to dcol.Count do
    begin
        d := TDataItem(dcol.Items[i-1]);
        d.Show(Memo1);
    end;
end;

{ データを表示する }
procedure TDataItem.Show(cont: TMemo);
var
   str: string;
begin
    str := ' Name = ' + Name;
    str := str + ' ID   = ' + IntToStr(ID);
    str := str + ' Value = ' + FormatFloat('#####.##', Value);
    cont.Lines.Add(str);
end;