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);
beginend;
end.
3.运行效果