Главная страница
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.48 MB
Время: 0.05 c
14-1122133454
lookin
2005-07-23 19:44
2005.08.14
Во что бы вы оценили эту работу?


1-1122397415
vrem
2005-07-26 21:03
2005.08.14
Richedit или Memo c фоном из рисунка


4-1118495702
пользовател ь
2005-06-11 17:15
2005.08.14
ярлыки к *.doc файлам


14-1122293244
zamik
2005-07-25 16:07
2005.08.14
Жарко, душно, работать не хочется.


14-1121884467
Ломброзо
2005-07-20 22:34
2005.08.14
Кто в автокаде рубит...