unit WinForm; interface
uses System.Drawing, System.Collections, System.ComponentModel, System.Windows.Forms, System.Data;
type TWinForm = class(System.Windows.Forms.Form) {$REGION 'Designer Managed Code'} strict private /// /// Required designer variable. /// Components: System.ComponentModel.Container; Button1: System.Windows.Forms.Button; /// /// Required method for Designer support - do not modify /// the contents of this method with the code editor. /// procedure InitializeComponent; procedure Button1_Click(sender: System.Object; e: System.EventArgs); {$ENDREGION} strict protected /// /// Clean up any resources being used. /// procedure Dispose(Disposing: Boolean); override; private { Private Declarations } public constructor Create; end;
//写成类也可以,这里我用了记录。由于记录是值类型省去了创建实例的麻烦 TClassTest=record public FA:Integer; //重载了“+”操作符 class operator add(A,B:TClassTest):TClassTest; end;
[assembly: RuntimeRequiredAttribute(TypeOf(TWinForm))]
implementation
{$REGION 'Windows Form Designer generated code'} /// /// Required method for Designer support -- do not modify /// the contents of this method with the code editor. /// procedure TWinForm.InitializeComponent; begin Self.Button1 := System.Windows.Forms.Button.Create; Self.SuspendLayout; // // Button1 // Self.Button1.Location := System.Drawing.Point.Create(96, 88); Self.Button1.Name := 'Button1'; Self.Button1.Size := System.Drawing.Size.Create(392, 112); Self.Button1.TabIndex := 0; Self.Button1.Text := 'Button1'; Include(Self.Button1.Click, Self.Button1_Click); // // TWinForm // Self.AutoScaleBaseSize := System.Drawing.Size.Create(6, 14); Self.ClientSize := System.Drawing.Size.Create(560, 357); Self.Controls.Add(Self.Button1); Self.Name := 'TWinForm'; Self.Text := 'WinForm'; Self.ResumeLayout(False); end; {$ENDREGION}
procedure TWinForm.Dispose(Disposing: Boolean); begin if Disposing then begin if Components <> nil then Components.Dispose(); end; inherited Dispose(Disposing); end;
constructor TWinForm.Create; begin inherited Create; // // Required for Windows Form Designer support // InitializeComponent; // // TODO: Add any constructor code after InitializeComponent call // end;
procedure TWinForm.Button1_Click(sender: System.Object; e: System.EventArgs); var A,B,C:TClassTest; begin A.FA :=1; B.FA :=2; C:=A+B; //两个结构(或者类)用+操作,在DELHI8以前是不可想象的 system.Windows.Forms.MessageBox.Show(System.Convert.ToString(C.FA) ); end;
{ TClassTest }
//重载“+”操作符的实现 class operator TClassTest.add(A, B: TClassTest): TClassTest; begin Result.FA:=A.FA + B.FA; end;
end. |