Форум: "Основная";
Текущий архив: 2003.08.21;
Скачать: [xml.tar.bz2];
ВнизВызов метода родителя родителя класса Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.007 c