DelphiではTListの要素に添え字でアクセスできるため、TListを動的配列のように使うことができます。
Genericsを使うと更にシンプルに記述することができます。Genericsを使った記述方法は
こちらの記事を参照してください。
コード例
procedure TForm1.Button6Click(Sender: TObject);
var
data:TList;
i:integer;
v:pinteger;
begin
data:=TList.Create;
new(v);
v^:=10;
data.Add(v);
new(v);
v^:=4;
data.Add(v);
new(v);
v^:=2;
data.Add(v);
new(v);
v^:=1;
data.Add(v);
new(v);
v^:=0;
data.Add(v);
for i:=0 to data.Count-1 do begin
Memo1.Lines.Add(IntToStr(Integer(data[i]^)));
end;
end;
解説
var節の
data:TList;
でTListを定義します。
data:=TList.Create;
でTListのインスタンスを作成します。
new(v);
TListに挿入する変数のメモリを確保します。TListは型のついた変数の配列ではなくポインタの配列であるため、挿入する実体の変数を用意する必要があります。
v^:=10;
変数に値を代入します。
data.Add(v);
TListに変数を追加します。
TListから値を取り出す場合は
data[i]
で要素にアクセスできますが、要素はポインタですので、
Integer(data[i]^)
上記のように^をつけ実体を参照し明示的にキャストする必要があります。
著者
iPentecのメインプログラマー
C#, ASP.NET の開発がメイン、少し前まではDelphiを愛用
最終更新日: 2017-09-12
作成日: 2010-12-31