2015-09-05 25 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中的事件。

相关问题