delphi的泛型演示代码
2010-02-15 14:12
267 查看
代码文件:
--------------------------------------------------------------------------------
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/
相关文章推荐
- delphi加载驱动的代码演示
- delphi 一个线程和主界面的交互的演示代码
- 泛型的基本用法和代码演示
- delphi加载驱动的代码演示
- delphi TThread类的简单演示代码
- discuz 模板输出php 文件有演示代码
- Delphi压缩图片代码
- IOS中归档和反归档操作<代码演示>
- RandomAccessFile类的简单介绍,以及代码演示
- Delphi 灵活运用接口(interface), 隐藏核心代码, 设计低耦合程序.
- 避免代码冗余,使用接口和泛型重构Java代码
- 用于演示mssql 注入的漏洞代码
- java 队列、优先级队列、双向队列示例演示代码
- Java下的框架编程(反射,泛型,元数据,CGLib,代码动态生成,AOP,动态语言嵌入)
- 泛型和数组,这个实例体现用泛型,代码重用性!
- 编写高质量代码改善C#程序的157个建议——建议42:使用泛型参数兼容泛型接口的不可变性
- C# 泛型实现链表、代码重用
- Interlocking Tile LOD算法演示(包括部分代码)
- 今天写的一段代码关于泛型的简单使用
- Delphi基本图像处理代码