Java 是否可以在delphi中更改方法体(重写对象方法)?
我是java专家,在声明java对象时,我常常覆盖java对象的方法,如下所示:Java 是否可以在delphi中更改方法体(重写对象方法)?,java,delphi,overriding,Java,Delphi,Overriding,我是java专家,在声明java对象时,我常常覆盖java对象的方法,如下所示: public void main(String[] args){ ... JTextField jtf=new JTextField(){ @override public boolean isEditable(){ return false;
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?我试着搜索,但我幸运地找到了关键字,Delphi中没有类似的功能。您需要显式派生一个子类并重写其中的方法。您不能像在Java中演示的那样内联完成它。即使如此,您也只能覆盖已声明为
virtual
或dynamic
的方法
但如果您想声明一个事件处理程序,则不需要创建子类。在表单中声明事件处理程序并将其附加到事件。最简单的方法是双击对象检查器中的事件 您正在谈论如何在运行时分配事件方法吗?你的例子对我来说没有多大意义。我想我看到你说你是德尔福的新手。您是否已经了解了如何在事件处理程序(例如,单击按钮时的处理程序)中添加代码是否使用对象检查器?@TLama in java这太有用了,因为您可以只为一个对象更改一个特定的方法,而不必创建所有新的类和继承。还有beta注释。@MartynA还没有。我正在尝试从java迁移到delphi。我现在就做,谢谢。