代码文件:
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 .
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
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