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;