Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.02.2011, 20:03   #1
cosmic_call
Пользователь
 
Аватар для cosmic_call
 
Регистрация: 15.01.2011
Сообщений: 18
По умолчанию Реализовать Tthread через interface

использую схему создания классов из dll через интерфейсы. с обычными классами уже все разобрался и получилось. а вот с потоком чтото не выходит

создаю интерфейс:
Код:
  type IPlayThread=interface(IInterface)
и сам класс
Код:
TPlayThread=class(TThread, IPlayThread)
     public
     constructor Create(var Wave: IWave; DevID, BufCount: byte;
                                                    BufSize: longword);
изначально собирался написать
Код:
TPlayThread=class(TThread, TInterfacedObject, IPlayThread)
- не получилось непонятно почему. затем просто попробовал добавить в класс стандартный набор:
Код:
      function QueryInterface(const IID: TGUID; out Obj): HResult; stdcall;
      function _AddRef: Integer; stdcall;
      function _Release: Integer; stdcall;
так вроде все верно но запрашивает саму реализацию этих функций. где их взять? как сделать? помогите может ктото уже делал одобное и есть какие то материалы чтобы разобраться получше а то в инете чтото почти ничего не нашел. может сама схема эта гибельная - и как тогда лучше?
cosmic_call вне форума Ответить с цитированием
Старый 20.02.2011, 20:56   #2
GunSmoker
Старожил
 
Регистрация: 13.08.2009
Сообщений: 2,581
По умолчанию

А посмотреть их реализацию у TInterfacedObject - не судьба?
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
GunSmoker вне форума Ответить с цитированием
Старый 20.02.2011, 21:32   #3
cosmic_call
Пользователь
 
Аватар для cosmic_call
 
Регистрация: 15.01.2011
Сообщений: 18
По умолчанию

ок. я понял.

а почему тогда не прокатывает
Код:
TPlayThread=class(TThread, TInterfacedObject, IPlayThread)
можете объяснить?
cosmic_call вне форума Ответить с цитированием
Старый 20.02.2011, 21:47   #4
GunSmoker
Старожил
 
Регистрация: 13.08.2009
Сообщений: 2,581
По умолчанию

С чего ты взял, что это должно работать?
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
GunSmoker вне форума Ответить с цитированием
Старый 20.02.2011, 22:36   #5
veniside
Старожил
 
Регистрация: 03.01.2011
Сообщений: 2,508
По умолчанию

> а почему тогда не прокатывает

наследовать можно от одного класса и одного или нескольких интерфейсов.
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
veniside вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
External Interface Юлия_utcit JavaScript, Ajax 1 03.01.2011 23:24
Синхронизация работы Tthread и данных в ListView как реализовать? Человек_Борща Общие вопросы Delphi 4 20.12.2010 01:00
Реализовать слежение за процессом в потоке Tthread Человек_Борща Общие вопросы Delphi 4 09.11.2010 21:23
Delphi and Interface crossmark Общие вопросы Delphi 2 20.07.2010 12:32
Реализация interface Syltan Общие вопросы C/C++ 4 15.06.2010 13:19