程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> Delphi >> 基礎實例:DELPHI8操作符重載

基礎實例:DELPHI8操作符重載

編輯:Delphi

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;

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved