![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Интерфейсы и reinroduce [D7]
mfender © (2006-10-10 15:42:00)Есть два класса:
TmfXMLLogMemo = class(TCustomMemo, ImfXMLLogMemo)
public
procedure Log(Data: string); virtual;
end;
TmfXMLExtLog = class(TmfXMLLogMemo, ImfXMLExtLog)
public
procedure Log(Data: string; RecType: string); reintroduce;
end;
И их интерфейсы:
ImfXMLLogMemo = interface(IInterface)
['{985E3293-E06B-41EA-B28D-091FEA31804F}']
procedure Log(Data: string);
end;
ImfXMLExtLog = interface(ImfXMLLogMemo)
['{07656F85-3E51-48E6-A4E8-6B5F0238B047}']
procedure Log(Data: string; RecType: string);
end;
Как сделать так, чтобы компилятор не ругался "Declaration of 'Log' differs from declaration in interface 'ImfXMLExtLog'"? Объявить метод в интерфейсе (reintroduce) так же как в реализации пытался. В ответ получил "Unknown dirrective 'reintroduce'"... Что я опять не правильно делаю?
mfender (2006-10-10 16:18:00) [1]
> guav © (10.10.06 16:05) [2]
Классно! Спасибо! Даже не знал, что такое чудо можно в Delphi провернуть.
guav (2006-10-10 16:05:00) [2]
TmfXMLExtLog = class(TmfXMLLogMemo, ImfXMLExtLog)
public
procedure ImfXMLExtLog.Log = ExtLog;
procedure ExtLog(Data: string; RecType: string);
end;
mfender (2006-10-10 16:04:00) [3]Ларчик просто открывался:
TmfXMLExtLog = class(TmfXMLLogMemo, ImfXMLExtLog)
public
procedure Log(Data: string; RecType: string); overload;
end;