Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.08.21;
Скачать: CL | DM;

Вниз

Вызов метода родителя родителя класса   Найти похожие ветки 

 
dima74   (2003-08-06 20:13) [0]

Пусть есть некий класс Class1 с методом Metod1. От него порождён Class2 с кучей полезных мне методов и свойств. Там есть и переопределённый Metod1:
Procedure Class2.Metod1;
Begin
Inherited;

Здесь то, что мне абсолютно не нужно

end
Я создаю свой класс Class3 порождённый от Class2 с парой дополнительных методов. А вот результат работы Metod1 мне нужно такой, какой он был в Class1. Как мне этого добиться?


 
HolACost?   (2003-08-06 20:22) [1]

Можно впринципи приведя к типу ээтого класса self, но есть ограничения!


 
Романов Р.В. ©   (2003-08-06 21:10) [2]

Dimka Maslov © (03.12.02 16:36)
type
TFunc = function (Self: TObject): Boolean;

function TSomeClass.Func: Boolean;
var
Func: TFunc;
begin
Func := @TGrandfatherClass.Func;
Result := Func(Self);
end;



 
Alex Konshin ©   (2003-08-07 05:53) [3]

Более корректно будет так:

THackMethod = function ( <arguments> ): <result_type> of object;


var
rMethod : THackMethod;

...

with TMethod(rMethod) do
begin
Data = Self;
( <arguments>)
Более корректно будет так:

THackMethod = function ( <arguments> ): <result_type> of object;


var
rMethod : THackMethod;

...

with TMethod(rMethod) do
begin
Data = Self;
Code = @<grandfather_class>.<method_name>;
end;
rMethod(<arguments>);



Реально этот прием позволяет вызвать любой метод любого класса, нужно лишь суметь достать адрес метода.


 
minva   (2003-08-07 08:46) [4]

А если <method_name> в привате описан?


 
Skier ©   (2003-08-07 08:48) [5]

http://delphi5.times.lv/source/api20.htm


 
Palladin ©   (2003-08-07 10:32) [6]

на какой черт тебе переопределять то что переопределять не надо?



Страницы: 1 вся ветка

Текущий архив: 2003.08.21;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.016 c
3-68174
Tahion2
2003-07-29 15:26
2003.08.21
Как сохранить в файл информацию про отображение таблицы?


3-68191
Magic&Wizard
2003-07-28 14:56
2003.08.21
Сохраняю выборку из базы, используя IBSQL .BatchOutPut/Input


14-68524
Dmitriy O.
2003-08-01 10:04
2003.08.21
Совесть как механизм управления людьми


1-68267
JS
2003-08-06 15:30
2003.08.21
Активизация приложения


1-68405
paxer
2003-08-07 14:04
2003.08.21
RichEdit - как узнать номер позиции последнего символа?