Delphi 使用泛型类在项目中的的使用

1.创建应用

在窗体中放置3个按钮

 

2.编写代码

unit Unit2;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls;

type

   TKeyValue<T> = class
  private
    FKey: string;
    FValue: T;
    procedure SetKey(const Value: string);
    procedure SetValue(const Value: T);
  published
      property Key : string read FKey write SetKey;
      property Value :T read FValue write SetValue;

   end;

  TForm2 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure FormClick(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form2: TForm2;

implementation

{$R *.dfm}

{ TKeyValue<T> }

procedure TKeyValue<T>.SetKey(const Value: string);
begin
  FKey := Value;
end;

procedure TKeyValue<T>.SetValue(const Value: T);
begin
  FValue := Value;
end;

procedure TForm2.Button1Click(Sender: TObject);
var
    kv: TKeyValue <tform>;

begin
     kv:=TKeyValue<tform>.create;
     try
         kv .key:='我的窗体';
         kv.Value:=self;
         showmessage(kv.Key+'_'+kv.value.caption);
     finally
         kv.Free;
     end;
end;

procedure TForm2.Button2Click(Sender: TObject);
var
    kv: TKeyValue <TButton>;

begin
     kv:=TKeyValue<tButton>.create;
     try
         kv .key:='我的按钮';
         kv.Value:=sender as tbutton;
         showmessage(kv.Key+'_'+kv.value.caption);
     finally
         kv.Free;
     end;
end;

procedure TForm2.Button3Click(Sender: TObject);
var
    kv: TKeyValue <Integer>;

begin
     kv:=TKeyValue<Integer>.create;
     try
         kv .key:='integer';
         kv.Value:=100;
         showmessage(kv.Key+'_'+kv.value.ToString);
     finally
         kv.Free;
     end;

end;

procedure TForm2.FormClick(Sender: TObject);
var
    kv: TKeyValue <Integer>;

begin
     kv:=TKeyValue<Integer>.create;
     try
         kv .key:='integer';
         kv.Value:=100;
         showmessage(kv.Key+'_'+kv.value.ToString);
     finally
         kv.Free;
     end;

end;

procedure TForm2.FormCreate(Sender: TObject);
begin

end;

end.
 

3.运行效果

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值