Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.08.14;
Скачать: CL | DM;

Вниз

Наследование интерфейсов   Найти похожие ветки 

 
Ш-К   (2005-07-27 17:09) [0]

Вот такой код:
 
 IDefault1 = interface(IInterface)
   ["{EB8F0FE2-D799-458C-91E1-65F9927F3BA3}"]
   procedure NewMethod1;
 end;

 IDefault2 = interface(IDefault1)
   ["{49D546E5-94C2-495B-B7B7-91D6218030D3}"]
   procedure NewMethod2;
 end;

 TDefault = class(TComponent, IDefault2)
 public
   procedure NewMethod1;
   procedure NewMethod2;
 end;

...

procedure TDefault.NewMethod1;
begin
 ShowMessage("NewMethod1");
end;

procedure TDefault.NewMethod2;
begin
 ShowMessage("NewMethod2");
end;

procedure TForm1.Button1Click(Sender: TObject);
var
 Def: TDefault;
 IDef1: IDefault1;
 IDef2: IDefault2;
begin
 Def := TDefault.Create(nil);
 try
   if Def.GetInterface(IDefault1, IDef1) then
     ShowMessage("Support IDefault1");
   if Def.GetInterface(IDefault2, IDef2) then
     ShowMessage("Support IDefault2");
 finally
   FreeAndNil(Def);
 end;
end;


Как достучаться к IDefault1?


 
Ш-К   (2005-07-27 17:11) [1]

Да. Собст-но, ShowMessage("Support IDefault1") не вызавается.


 
jack128 ©   (2005-07-27 17:17) [2]

Ш-К   (27.07.05 17:09)
Как достучаться к IDefault1?


TDefault = class(TComponent, IDefault1, IDefault2)

то что ты поддерживаешь наследника не означает, что ты поддерживаешь предка. Это надо явно указывать..


 
Ш-К   (2005-07-27 17:28) [3]

А какой смысл тогда в синтаксической конструкции наследования интерфейсов друг от друга?


 
DiamondShark ©   (2005-07-27 17:35) [4]


> Ш-К   (27.07.05 17:28) [3]
> А какой смысл тогда в синтаксической конструкции наследования
> интерфейсов друг от друга?

В наследовании.
В гарантированном воспроизведении порядка методов предка.

Кстати, итерфейс можно просто приводить к предку.


 
Ш-К   (2005-07-27 17:39) [5]

Что такое "порядок методов предка"?


 
DiamondShark ©   (2005-07-27 19:21) [6]


> Ш-К   (27.07.05 17:39) [5]
> Что такое "порядок методов предка"?

То, как они расположены.



Страницы: 1 вся ветка

Текущий архив: 2005.08.14;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.282 c
14-1122290680
Копир
2005-07-25 15:24
2005.08.14
Хорошая новость.


1-1122531474
Demidoff
2005-07-28 10:17
2005.08.14
Как добавить в memo строки из файла?


1-1122377695
Term
2005-07-26 15:34
2005.08.14
Как отобразить не главные окна своей программы в панели задач Win


4-1118753597
elf-eluna-alina
2005-06-14 16:53
2005.08.14
IO ERROR 105 - мистификации


4-1118505430
Adham
2005-06-11 19:57
2005.08.14
Font in Caption of the Forms