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

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

Зачем в классу при обявлении интерфейса нужна реализация IUnknown [D5, Win95/98, WinME, Win2k, WinXP]


Erik1 ©   (2004-06-10 11:03:00) 

Вобщем хочу я к наследнику от TThread приделать интерфейс IAttribut, для использования внутри Delphi. А мне компилятор выдает ошибку Undeclared identifier: 'QueryInterface' и тд. Что реализацию придется писать?


Romkin   (2004-06-10 11:49:00) [1]

Не хочется - реализуй три метода IUnknown. Подсмотреть можно в TInterfacedObject.
Примечание: Сразу говорю: передавать интерфейсы между потоками просто так нельзя, сразу получишь катастрофическую ошибку.


Erik1   (2004-06-10 11:27:00) [2]

Вобщето я так описал:
 IAttribut = interface
   ['{5236A8EF-F36F-4E5B-876F-1640311F2099}']
   function  GetID: Integer;
   function  GetDescription: String;
   function  GetGrupp: Integer;
 end;

TCustomThread = class(TThread,  IAttribut)
private
...
   function  GetID: Integer;
   function  GetDescription: String;
   function  GetGrupp: Integer;
emd;
Нехочется наследоватся от TInterfacedObject.


Digitman   (2004-06-10 11:13:00) [3]


> Вобщем хочу я к наследнику от TThread приделать интерфейс
> IAttribut


добавлю - "..и еще хочу заработать себе впоследствии геморрой с такой реализацией"

IAttribut = interface;

TMyClass = class(TInterfacedObject, IAttribut)
..
FThread: TMyThread;
..
end;


Clickmaker   (2004-06-10 11:05:00) [4]

type
 IAttribut = interface(IUnknown);


Наверх

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