Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Интерфейсы и 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;


Наверх

Титульная страница Поиск, карта сайта Написать письмо