代码文件: -------------------------------------------------------------------------------- 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. -------------------------------------------------------------------------------- 窗体文件: -------------------------------------------------------------------------------- object Form1: TForm1 Left = 0 Top = 0 Caption = 'Form1' ClientHeight = 158 ClientWidth = 232 Color = clBtnFace Font.Charset = DEFAULT_CHARSET Font.Color = clWindowText Font.Height = -11 Font.Name = 'Tahoma' Font.Style = [] OldCreateOrder = False PixelsPerInch = 96 TextHeight = 13 object Button1: TButton Left = 136 Top = 6 Width = 75 Height = 25 Caption = 'Button1' TabOrder = 0 OnClick = Button1Click end object Memo1: TMemo Left = 0 Top = 0 Width = 113 Height = 158 Align = alLeft Lines.Strings = ( 'Memo1') ScrollBars = ssVertical TabOrder = 1 ExplicitHeight = 167 end object Button2: TButton Left = 136 Top = 36 Width = 75 Height = 25 Caption = 'Button2' TabOrder = 2 OnClick = Button2Click end object Button3: TButton Left = 136 Top = 66 Width = 75 Height = 25 Caption = 'Button3' TabOrder = 3 OnClick = Button3Click end object Button4: TButton Left = 136 Top = 96 Width = 75 Height = 25 Caption = 'Button4' TabOrder = 4 OnClick = Button4Click end object Button5: TButton Left = 136 Top = 126 Width = 75 Height = 25 Caption = 'Button5' TabOrder = 5 OnClick = Button5Click end end
源代码下载:http://www.rayfile.com/files/f5fd6dde-1621-11df-a3e2-0015c55db73d/
|
请发表评论