169 похожих чатов

Привет всем, Есть дельфи и в нем TObj1 = class

procedure ObjCommon; virtual;
end;

TObj2 = class(TObj1)
procedure ObjCommon; override;
end;

хочу имея объект TObj2 добраться до базового TObj1.ObjCommon
делаю так:
var obj := TObj2.Create;
(obj as TObj1).ObjCommon;

но нет, не выходит. Как вызвать только TObj1.ObjCommon ?

6 ответов

14 просмотров

в контексте TObj2 можно написать inherited ObjCommon

Андрей-Руфин Автор вопроса
Igor
в контексте TObj2 можно написать inherited ObjComm...

у меня есть obj типа TObj2. и совершенно в другом месте, не внутри классов, хочется вызвать только базовый TObj1.ObjCommon. понятно что внутри классов я могу Inherited дернуть....

Андрей Руфин
у меня есть obj типа TObj2. и совершенно в другом ...

Вы можете такое сделать, только если у вас будут отличаться параметры. К примеру вот так   TObj1 = class     procedure ObjCommon; overload; virtual;   end;   TObj2 = class(TObj1)     procedure ObjCommon(I: Integer); reintroduce; overload; virtual;   end;

O2: TObj2; ObjCommon: procedure of object; begin O2 := TObj2.Create; TMethod(ObjCommon).Code := @TObj1.ObjCommon; TMethod(ObjCommon).Data := O2; ObjCommon;

Андрей-Руфин Автор вопроса
Александр (Rouse_) Багель
O2: TObj2; ObjCommon: procedure of object; beg...

вот, монстры подтянулись 😊 похоже именно этого ответа я и ожидал. ушел пробовать

Андрей-Руфин Автор вопроса
Александр (Rouse_) Багель
O2: TObj2; ObjCommon: procedure of object; beg...

Все сработало. пришлось объявить новый тип для procedure of object но это мелочи. главное не пришлось эти TObj1 TObj2 править... Всем спасибо за идеи!

Похожие вопросы

Обсуждают сегодня

Какой-то там пердун в 90-х решил, что есть какая-то разная типизация. Кого вообще это волнует?
КТ315
49
void terminal_scroll() { memmove(terminal_buffer, terminal_buffer + VGA_WIDTH, buffer_size - VGA_WIDTH); memset(terminal_buffer + buffer_size - VGA_WIDTH, 0, VGA_WIDTH); ...
Егор
47
Всем привет! Подскажите, пожалуйста, в чем ошибка? Настраиваю подключение к MySQL. Либы лежат рядом с exe. Все как по "учебнику"
Евгений
16
А можете как-то проверить меня по знаниям по ассемблеру?
A A
132
Здравствуйте! У меня появилась возможность купить книгу "Изучай Haskell во имя добра!". Но я где-то слышал, что эта книга устарела. Насколько это правда??
E
22
Здравствуйте! Я вот на stepic решаю задачи на хаскеле https://stepik.org/lesson/8443/step/8?unit=1578 мой код import Data.List (isInfixOf) removing :: String -> [String] ->...
E
10
Камрады, кто тесно работал с vtv, хотел уточнить. Ширина column задаётся жёстко на этапе создания дерева или можно в рантайме ее менять программно (не мышкой)?
Ed Doc
10
да ладно ... что там неочевидного ? глянуть в исх-ки датасета и/или кверика чтобы понять в каком месте и как выполняется обращения к св-вам blablaSQL - минутное дело, даже е...
Сергей
7
Здесь для arm кто-нибудь кодит ?
Nothing
52
Всем привет, у меня есть сервер принимающий входящие HTTP подключения, как проверить, что подключение было через прокси или нет, есть какие то поля в заголовках по которым мо...
DS
8
Карта сайта