本文整理自网络,侵删。

代码文件:unit Unit1;
interface
uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;
type TForm1 = class(TForm) Memo1: TMemo; Button1: TButton; Button2: TButton; Button3: TButton; Button4: TButton; Button5: TButton; procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure Button3Click(Sender: TObject); procedure Button4Click(Sender: TObject); procedure Button5Click(Sender: TObject); end;
var Form1: TForm1;
implementation
{$R *.dfm}
type TArr<T> = array[0..9] of T; {定义一个泛型数组} {虽然大家习惯用 T 来泛指其他类型, 但使用其他合法的标识符也是可以的}
{用作 Integer}procedure TForm1.Button1Click(Sender: TObject);var Arr: TArr<Integer>; i: Integer;begin for i := Low(Arr) to High(Arr) do Arr[i] := i * i;
Memo1.Clear; for i := Low(Arr) to High(Arr) do Memo1.Lines.Add(Format('Arr[%d] = %d', [i, Arr[i]]));end;
{用作 string}procedure TForm1.Button2Click(Sender: TObject);var Arr: TArr<string>; i: Integer;begin for i := Low(Arr) to High(Arr) do Arr[i] := StringOfChar(Char(i+97), 3);
Memo1.Clear; for i := Low(Arr) to High(Arr) do Memo1.Lines.Add(Format('Arr[%d] = %s', [i, Arr[i]]));end;
{用作 Single}procedure TForm1.Button3Click(Sender: TObject);var Arr: TArr<Single>; i: Integer;begin for i := Low(Arr) to High(Arr) do Arr[i] := 100 / (i+1);
Memo1.Clear; for i := Low(Arr) to High(Arr) do Memo1.Lines.Add(Format('Arr[%d] = %f', [i, Arr[i]]));end;
{用作记录 TPoint}procedure TForm1.Button4Click(Sender: TObject);var Arr: TArr<TPoint>; i: Integer;begin for i := Low(Arr) to High(Arr) do Arr[i] := Point(i, i*2);
Memo1.Clear; for i := Low(Arr) to High(Arr) do Memo1.Lines.Add(Format('Arr[%d] = (%d,%d)', [i, Arr[i].X, Arr[i].Y]));end;
{用作类 TButton}procedure TForm1.Button5Click(Sender: TObject);var Arr: TArr<TButton>; i: Integer;begin for i := Low(Arr) to High(Arr) do begin Arr[i] := TButton.Create(Self); Arr[i].Name := Concat('Btn', IntToStr(i+1)); end;
Memo1.Clear; for i := Low(Arr) to High(Arr) do Memo1.Lines.Add(Format('Arr[%d] is %s', [i, Arr[i].Name]));
for i := Low(Arr) to High(Arr) do Arr[i].Free;end;
end.
相关阅读 >>
Delphi xe 7 mediaplayer 在安卓里放不出声音
Delphi messagebox 和 messagedlg用法
扩展 Delphi 线程 使之传递参数.(给匿名线程增加参数)
更多相关阅读请进入《Delphi》频道 >>