是否可以在delphi中更改方法体(覆盖对象方法)?

时间:2015-09-05 17:59:24

标签: java delphi override

我是java的专家我曾经在声明它的时候用它来覆盖java中对象的方法:

    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?我试图搜索但运气好的关键字找到它

1 个答案:

答案 0 :(得分:0)

Delphi中没有类似的功能。您需要显式派生一个子类并覆盖那里的方法。你不能像在Java中演示的那样内联它。即使这样,您也只能覆盖已声明为{{1}}或{{1}}的方法。

但是如果你想声明一个事件处理程序,你就不需要子类了。在表单中声明一个事件处理程序并将其附加到事件。最简单的方法是双击Object Inspector中的事件。