2015-09-05 3 views
0

им специалист в Java я использовал переопределить методы объектов в Java при объявлении его как ниже:Можно ли изменить тело метода в delphi (переопределить метод объекта)?

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

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

    } 

в Дельфах есть способ для доступа к методам (функция & процедуры) и переопределить их основной код между начать конец. это может выглядеть так:

 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

Я думал, что видел, как вы говорите, что вы новичок в Delphi. Вы уже выяснили, как добавить код в обработчик события (например, обработчик при нажатии кнопки) с помощью Object Inspector? – MartynA

+0

@TLama в java это слишком полезно, так как вы можете изменить только для одного объекта конкретным методом, не делая все нового класса и наследования, есть также аннотация бета-аннотации. –

ответ

0

В Delphi нет подобной функции. Вы должны явно вывести подкласс и переопределить метод там. Вы не можете сделать это в соответствии с тем, как вы демонстрируете на Java. И даже тогда вы можете только переопределить методы, которые были объявлены как virtual или dynamic.

Но если вы хотите объявить обработчик событий, вам не нужно подкласс. Объявите обработчик события в форме и прикрепите его к событию. Самый простой способ сделать это - дважды щелкнуть событие в Object Inspector.

Смежные вопросы