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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 15.01.2011, 16:25   #1
cosmic_call
Пользователь
 
Аватар для cosmic_call
 
Регистрация: 15.01.2011
Сообщений: 18
Вопрос abstract error в классе

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

Код:
function SoundPlay(...)
var WaveFormatex: TWAVEFORMATEX;
    WaveEvent: THandle;
    WaveHandle: HWAVEOUT;
...
//заполняю WaveFormatex и тд
...
WaveEvent:=CreateEvent(nil, false, false, nil);
WaveOutOpen(@WaveHandle, 0, @WaveFormatex, WaveEvent, 0, CALLBACK_EVENT);
..
//ну и дальше воспроизведение и так далее
все это работало отлично. затем я попробовал создать отдельный класс потока для процесса воспроизведения
Код:
TPlayThread = class(TThread)
    private
...
      WaveFormatex: TWAVEFORMATEX;
      WaveEvent: THandle;
      WaveHandle: HWAVEOUT;
      WaveHeader: array of TWAVEHDR;
      WaveBuffer: array of PAnsiChar;
...
дальше я там описываю create для этого класса в котором заполняю WaveFormatex и пишу отдельную функцию:
Код:
function TPlayThread.Play(BegPos, EndPos:longint):smallint;
...
begin
  WaveEvent:=CreateEvent(nil, false, false, nil);
  WaveOutOpen(@WaveHandle, DevID, @WaveFormatex, WaveEvent, 0, CALLBACK_EVENT);
все тоже самое но на waveoutopen получаю ошибку abstract error. в чем собственно проблема? интуиция мне подсказывает что чтото не так с доступом к переменным класса, потому что драйвер звуковой поправляет поля в WaveHandle. если да то как это органтзовать по другому? или проблема не в этом?
спасибо заранее
cosmic_call вне форума Ответить с цитированием
Старый 15.01.2011, 16:51   #2
veniside
Старожил
 
Регистрация: 03.01.2011
Сообщений: 2,508
По умолчанию

может просто забыли
Код:
procedure Execute; virtual; abstract;
у TPlayThread реализовать?
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
veniside вне форума Ответить с цитированием
Старый 15.01.2011, 17:20   #3
cosmic_call
Пользователь
 
Аватар для cosmic_call
 
Регистрация: 15.01.2011
Сообщений: 18
По умолчанию

да забыл) спасибо
уже поправил но пока что все равно чуть дальше ошибки появились буду разбираться
cosmic_call вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Abstract, Virtual, ... ImmortalAlexSan Общие вопросы Delphi 3 15.08.2010 14:53
abstract methods NieL Общие вопросы Delphi 5 09.01.2009 12:21
Form1.Free; Abstract Error Манжосов Денис :) Общие вопросы Delphi 3 21.08.2008 15:46