Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2005.08.14;
Скачать: [xml.tar.bz2];

Вниз

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

 
Ш-К   (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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.021 c
14-1122048405
PlayBoy
2005-07-22 20:06
2005.08.14
Отличие между поверкой и проверкой?


14-1122270636
Ega23
2005-07-25 09:50
2005.08.14
С днем рождения! 25 июля


3-1120461930
Draught
2005-07-04 11:25
2005.08.14
suser_id()


14-1122232341
Начинающий админ
2005-07-24 23:12
2005.08.14
Вот поступило мне предложение...


9-1114345447
Yegorchic
2005-04-24 16:24
2005.08.14
Как определить виден ли объект на сцене через определённую камеру





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский