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

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

Необходимо обработать исключительную ситуацию [D7]


Настя ©   (2008-06-14 11:24:00) 

Моя программа проигрывает фоновую музыку. Музыка поставлена на повтор с помощью таймера. Мне необходимо обработать исключительную ситуацию, возникающую при отсутствии аудио кодеков или ошибки открытия устройства MCI. Являюсь начинающим программистом и прошу проявить понимание.Код программы приведен ниже:
procedure TForm3.FormCreate(Sender: TObject);
begin
MediaPlayer1 := TMediaPlayer.Create(self);
MediaPlayer1.ParentWindow := Form1.Handle;
MediaPlayer1.Visible := False;
Form3.MediaPlayer1.FileName := ExtractFilePath(Application.ExeName) + 'Музыка/Unknown - WinXP.wma';
try
MediaPlayer1.Open;
except
on EMCIDeviceError do
begin
MediaPlayer1.Close;
end;
end;
try
MediaPlayer1.Play;
except
on EMCIDeviceError do;
end;
end;


Настя   (2008-06-15 02:39:00) [1]

Спасибо:)Я же писала,что начинающий программист:)


{RASkov}   (2008-06-14 14:01:00) [2]

> Код программы приведен ниже:

Это не код.... это ужас какой-то....
После вида такого "кода" даже и незнаешь с чего начинать советы :(

> MediaPlayer1:= TMediaPlayer.Create(self);

Случаем не компонент брошенный на форму с палитры компонентов? :)

На счет кодеков... Ну тыж "почти" сделал(а) обработку исключения....
Вот например общая обработка:
procedure TForm1.Button1Click(Sender: TObject);
begin
 with TOpenDialog.Create(Self) do try
  if Execute then begin
   try
    MediaPlayer1.FileName:=FileName;
    MediaPlayer1.Open;
    MediaPlayer1.Play;
   except
    ShowMessage('Не могу играть '+FileName);
   end;
  end;
 finally
  Free;
 end;
end;

В данном примере TOpenDialog как раз отсутствует на форме, и создается в рантайм....
Надеюсь ты в курсе, что из под отладчика на исключениях происходит остановка, если не снята галка, которая по умолчанию установлена и это верно :)
Галка: в опциях дебагера - Stop on Delphi Exception.
Лучше ее(галку) не трогать(не снимать), а "такие" моменты можно проверять запуском программы из проводника... Ну на крайняк, можно ее на время отключить, а потом не забыть ее назад установить)


Наверх

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