zoukankan      html  css  js  c++  java
  • 一、Delphi 2009 中的泛型

    代码文件:

    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..9of 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
  • 相关阅读:
    BZOJ 1576 树剖+LCT
    CF1051D Bicolorings 递推
    CF938D Buy a Ticket dijkstra
    记一次创建svc代理失败
    K8S中Service
    K8S中的Job和CronJob
    K8S中DaemonSet
    Linux expect介绍和用法
    Java根据余弦定理计算文本相似度
    Python和Sublime的整合
  • 原文地址:https://www.cnblogs.com/jxgxy/p/1595046.html
Copyright © 2011-2022 走看看