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

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

Вернуться   Форум программистов > Delphi программирование > Мультимедиа в Delphi
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 14.04.2010, 13:00   #1
kotzzz
Пользователь
 
Регистрация: 30.01.2009
Сообщений: 39
Вопрос Ошибка в ходе программы, требуется пояснение...



Данная ошибка происходит при закрытии дочерней формы, в которой воспроизводится видео файл...

код юнита:
Код:
unit Unit11;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, MPlayer, ExtCtrls, StdCtrls;

type
  TForm11 = class(TForm)
    Panel1: TPanel;
    MediaPlayer1: TMediaPlayer;
    Timer1: TTimer;
    Timer2: TTimer;
    procedure NotifyProc(Sender: TObject);
    procedure FormKeyPress(Sender: TObject; var Key: Char);
    procedure Timer1Timer(Sender: TObject);
    procedure FormShow(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form11: TForm11;
  fpatch: string;
implementation

{$R *.dfm}
procedure TForm11.NotifyProc(Sender: TObject);
 begin
   with Sender as TMediaPlayer do
    begin
     case Mode of
       mpStopped: mediaplayer1.Play;
     end;
     //must set to true to enable next-time notification
    Notify := True;
   end;
 end;

procedure TForm11.FormKeyPress(Sender: TObject; var Key: Char);
begin
if (key=#27) or (key=#13) then begin mediaplayer1.Destroy; deletefile('pal.avi'); close; end;
end;


procedure TForm11.Timer1Timer(Sender: TObject);
begin
MediaPlayer1.Notify   := True;
MediaPlayer1.OnNotify := NotifyProc;
end;

procedure TForm11.FormShow(Sender: TObject);
var screenW, screenH:integer;  srt:string;
begin
copyfile('pal.dll','pal.avi',true);
srt:=''+ExtractFilePath(ParamStr(0))+'Pal.avi';
mediaplayer1.FileName:=srt;
mediaplayer1.Open;
mediaplayer1.Play;
MediaPlayer1.Notify   := True;
MediaPlayer1.OnNotify := NotifyProc;
screenW:=Screen.Width;
screenH:=Screen.Height;
form11.Left:=0;
form11.Top:=0;
form11.Width:=screenW;
form11.Height:=screenH;
panel1.Width:=screenW;
panel1.Height:=screenH;
MediaPlayer1.DisplayRect:=Rect(0,0,screenW,screenH);
timer2.Enabled:=false;
end;

end.
в основном коде:
Код:
procedure TForm1.Button1Click(Sender: TObject);
begin
form11.show;
end;
В чем может быть ошибка?! Сообщение выводит при нажатии ESC или ENTER...

Последний раз редактировалось kotzzz; 14.04.2010 в 13:03.
kotzzz вне форума Ответить с цитированием
Старый 14.04.2010, 13:59   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Логично.
При закрытии форма может сама за собой убирать компоненты, а тут ты вмешиваешся, отбирая у нее веник:mediaplayer1.Destroy
А форма при закрытии пытается его грохнуть, а его уже нет - она в ступоре.
Не нужно его самостоятельно разрушать - предоставь это форме.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 14.04.2010, 14:31   #3
kotzzz
Пользователь
 
Регистрация: 30.01.2009
Сообщений: 39
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Логично.
При закрытии форма может сама за собой убирать компоненты, а тут ты вмешиваешся, отбирая у нее веник:mediaplayer1.Destroy
А форма при закрытии пытается его грохнуть, а его уже нет - она в ступоре.
Не нужно его самостоятельно разрушать - предоставь это форме.
+1... Спасибо за совет!!!
kotzzz вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
пояснение программы sllh_111 Помощь студентам 0 19.02.2010 19:44
Пояснение по методу Зейделя. Tonik_A Помощь студентам 0 27.12.2009 13:54
как в цикле создавать массив с одним и тем же именем!?ошибка в ходе выполнения -access violation at addr sleevman Помощь студентам 2 28.10.2009 19:06
Как очистить Bitmap в ходе выполнения програмы SeRhy Помощь студентам 1 06.12.2007 21:47