TCollectionの使い方
TCollectionを使うと動的なオブジェクトの配列を作ることができます。
コレクションの要素
TCollectionの要素はTCollectionItemから派生したオブジェクトでなければなりません。
例
TDataItem = class(TCollectionItem) public Value: Variant; // 値 Name: string; // データ名 ID: Integer; // データ番号 procedure Show(cont: TMemo); // 表示 end;
コレクションの作成
例
procedure TForm1.FormCreate(Sender: TObject); var cls: TCollectionItemClass; begin // コレクションを作成する cls := TDataItem; dcol := TCollection.Create(cls); end;
コレクションに要素を追加するには
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;
コレクションの要素へアクセスするには
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;