2015-09-05 89 views
0

IM專家的Java I像波紋管聲明時,它用於覆蓋在Java對象的方法:是否可以在delphi中更改方法體(重寫對象方法)?

public void main(String[] args){ 
      ... 
     JTextField jtf=new JTextField(){ 

       @override 
       public boolean isEditable(){ 
         return false; 
       } 
      } 

    } 

在Delphi有訪問的方法(函數&過程)並覆蓋之間的開始他們的主代碼的方式結束。它可能看起來像這樣:

 type 
      TForm1 = class(TForm) 
      Button1: TButton; 
      Timer1: TTimer; 
      SpinEdit1: TSpinEdit; 

      procedure number(Sender: Tobject); 
    . 
    . 
    . 

    procedure number(Sender: Tobject); 
    begin 
      SpinEdit1.Button.OnDownClick; 
      begin 
        SpinEdit1.Increment:=SpinEdit1.Value*2; 
      end; 

      SpinEdit1.Button.OnUpClick; 
      begin 
        SpinEdit1.Increment:=SpinEdit1.Value div 2; 
      end;   
    end; 

有沒有辦法來重寫OnUpClick和OnDownClick?我試圖搜索,但我運氣的關鍵字找到它

+0

您是否在談論如何在運行時分配事件方法?你的例子對我沒有多大意義。 – TLama

+0

我以爲我看到你說你是新來的德爾福。您是否已經發現如何使用Object Inspector在事件處理程序中添加代碼(例如,單擊按鈕時的處理程序)? – MartynA

+0

@TLama在java中這太有幫助了,因爲你可以只爲一個對象改變一個特定的方法,而不用創建所有的新類和繼承,這裏還有beta註釋。 –

回答

0

德爾福沒有類似的功能。你需要明確派生一個子類並覆蓋那裏的方法。你不能用你在Java中演示的方式進行內聯。即使如此,您也只能覆蓋已聲明爲virtualdynamic的方法。

但是,如果你想聲明一個事件處理程序,你不需要子類。在窗體中聲明一個事件處理程序並將其附加到事件中。最簡單的方法是雙擊Object Inspector中的事件。