|
Вопрос # 6 666/ вопрос решён / |
|
Приветствую, уважаемые эксперты!
Допустим, есть структура классов, представленная в листинге. Есть ли какой-либо способ вызвать из t3.show родительский метод t1.show в обход вызова t2.show?
type
t1 = class
public
procedure show; virtual;
end;
t2 = class(t1)
public
procedure show; override;
end;
t3 = class(t2)
public
procedure show; override;
end;
{ t1 }
procedure t1.show;
begin
ShowMessage('1');
end;
{ t2 }
procedure t2.show;
begin
ShowMessage('2');
end;
{ t3 }
procedure t3.show;
begin
inherited show; // как вызвать show предка t1 ?
end;
|
Вопрос задал: dmistand (статус: 1-ый класс)
Вопрос отправлен: 30 июня 2017, 12:05
Состояние вопроса: решён, ответов: 1.
|
Ответ #1. Отвечает эксперт: DNK
Здравствуйте, dmistand!
Вопрос разбирался на форуме здесь.
Приложение: Переключить в обычный режим- type
- TGranny = class
- public
- procedure X; virtual;
- end;
-
- TDaddy = class (TGranny)
- public
- procedure X; override;
- end;
-
- TMe = class (TGranny)
- public
- procedure X; override;
- end;
-
- procedure TForm14.Button1Click(Sender: TObject);
- begin
- TMe.Create.X;
- end;
-
- { TGranny }
-
- procedure TGranny.X;
- begin
- ShowMessage ('Granny');
- end;
-
- { TDaddy }
-
- procedure TDaddy.X;
- begin
- ShowMessage ('Daddy');
- end;
-
- { TMe }
-
- type
- TX = procedure of object;
-
- procedure TMe.X;
- var
- GrannyX: TX;
- M: TMethod absolute GrannyX;
- begin
- ShowMessage ('Me, Lovely');
- M.Code := @TGranny.X;
- M.Data := Self;
- GrannyX;
- end;
-
-
-
- procedure TMe.X;
- type
- TX = procedure(ASelf: TGranny);
- begin
- ShowMessage ('Me, Lovely');
- TX(@TGranny.X) (Self);
- end;
|
Ответ отправил: DNK (статус: Студент)
Время отправки: 30 июня 2017, 12:52
Оценка за ответ: 5
Комментарий к оценке: ответил быстро, по существу и без издевательских шуточек, которые можно часто встретить на различных форумах
|
Мини-форум вопроса
Всего сообщений: 2; последнее сообщение — 30 июня 2017, 13:17; участников в обсуждении: 2.
|
DNK (статус: Студент), 30 июня 2017, 12:54 [#1]:
dmistand: Ты никак решил мажорный номер вопроса застолбить?
"Digital Networked Knight"
|
30 июня 2017, 13:14: Статус вопроса изменён на решённый (изменил автор вопроса — dmistand)
|
dmistand (статус: 1-ый класс), 30 июня 2017, 13:17 [#2]:
DNK: нет, так само получилось, честно. Я сюда заходил последний раз пару лет назад, но в попытке переопределить Paint у TImage и внутри вызвать метод "деда", столкнулся с проблемой
|
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|