Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 6 544

/ вопрос решён /

Здравствуйте! Как закрыть окно MediaPlayer?

MediaPlayer1.Destroy; {Debugger Exception Notification:
Project Project1.exe raised exception class EAccessViolation with message 'Access violation at address 004532DC in module 'Project1.exe'. Write of address 000002E8'. Process stopped. Use Step or Run to continue.}

//MediaPlayer1.Close;//не закрывает окно

//MediaPlayer1.Open; // прекрасно закрывает проигрыватель

К вопросу прикреплён файл. Загрузить » (срок хранения: 60 дней с момента отправки вопроса)

Приложение:
  1. Unit1.pas https://www.delphi-int.ru/code/731E206A
  2. Unit1.dfm https://www.delphi-int.ru/code/67C7B1CA


zvygin1964 Вопрос решён, но можно продолжить его обсуждение в мини-форуме

Вопрос задал: zvygin1964 (статус: Посетитель)
Вопрос отправлен: 13 июля 2014, 20:35
Состояние вопроса: решён, ответов: 0.


Мини-форум вопроса

Всего сообщений: 25; последнее сообщение — 21 июля 2014, 17:55; участников в обсуждении: 3.

Страницы: [« Предыдущая] [1] [2]

min@y™

min@y™ (статус: Доктор наук), 16 июля 2014, 09:00 [#21]:

Цитата (zvygin1964):

этот вопрос не понимаю я

Вот когда начнёшь понимать, тогда заходи.
Советую прочитать хотя бы одну книжку про ООП, чтобы знать хотя бы термины. Вот, не поверишь: TMediaPlayer и TPanel - тоже классы!
Ну, и прочитай в справке про нужные методы TMediaPlayer, это ж так просто.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
Егор

Егор (статус: 10-ый класс), 17 июля 2014, 09:39 [#22]:

Цитата (zvygin1964):

Хочу получить: на мониторе ПК появляется изображение уважаемого min@y™, сообщает о своих пожеланиях и исчезает с экрана. На мониторе появляется Form, на ней несколько Button с ответами, один из которых правильный.

ну дык, тогда проще сделать так: медиа-плеер установить в выделенную форму. показывать эту форму, запускать медиаплеер, останавливать, прятать форму с медиаплеером и показывать форму с кнопками.
Опасайтесь багов в приведенном выше коде; я только доказал корректность, но не запускал его.
— Donald E. Knuth.
Егор

Егор (статус: 10-ый класс), 17 июля 2014, 09:40 [#23]:

а destroy вообще не трогай, т.к. у тебя уровень ещё не тот, чтобы понимать, когда нужно вызывать этот метод. в данном случае - ни в коем разе не нужно.
Опасайтесь багов в приведенном выше коде; я только доказал корректность, но не запускал его.
— Donald E. Knuth.
Егор

Егор (статус: 10-ый класс), 19 июля 2014, 07:55 [#24]:

о том, как узнать, что воспроизведение видео закончилось:
...
   Notify := true; // или установить это свойство в инспекторе объектов
                   // теперь при изменении статуса медиаплеера будет вызываться
                   // обработчик onNotify, в котором надо будет прочитать статус
                   // и, если этот статус = mpStopped, то значит, видео закончилось
 
...
 
// также нужно определить обработчик onNotify:
procedure TForm1.MediaPlayer1Notify(Sender: TObject);
begin
   // состояние
   if mediaplayer1.Mode = mpStopped then
   begin
     ....
   end;
end;

вот тут выдают практически такой же код.

а вообще, свойство Mode может принимать значения:

- mpNotReady - не готово;
- mpStopped - остановлено;
- mpPlaying - воспроизводит информацию;
- mpRecording - записывает информацию;
- mpSeeking - перемещает носитель информации;
- mpPaused - приостановлено;
- mpOpen - открыто.
Опасайтесь багов в приведенном выше коде; я только доказал корректность, но не запускал его.
— Donald E. Knuth.
zvygin1964

zvygin1964 (статус: Посетитель), 21 июля 2014, 17:55 [#25]:

Егор:
Куда перечислить вознаграждение? Спасибо! Работает прекрасно:
 unit Unit1;
 
interface
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, MPlayer, ExtCtrls;
 
type
  TForm1 = class(TForm)
    Button1: TButton;
    MediaPlayer1: TMediaPlayer;
    CheckBox1: TCheckBox;
    procedure Button1Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure MediaPlayer1Notify(Sender: TObject);
 
    private
    { Private declarations }
    public
    { Public declarations }
  end;
var
  Form1: TForm1;
 // Notify: boolean;
implementation
uses Unit2;
 
{$R *.dfm}
 
procedure TForm1.Button1Click(Sender: TObject);
begin
Form2.Visible:=True;
CheckBox1.Checked:=False;
MediaPlayer1.DeviceType:=dtAutoSelect; MediaPlayer1.FileName:= 'C:\delete\videoDelphi\Masha and bear. fragment 1.avi';
MediaPlayer1.Open;
MediaPlayer1.Play;
end;
 
procedure TForm1.FormCreate(Sender: TObject);
begin
 MediaPlayer1.Notify:= True;
end;
 
procedure TForm1.MediaPlayer1Notify(Sender: TObject);
begin         
 if mediaplayer1.Mode = mpStopped  then  
begin         
 CheckBox1.Checked := MediaPlayer1.Notify;
 Form2.Visible:=False;
 end;
end;
 
end.

21 июля 2014, 17:56: Статус вопроса изменён на решённый (изменил автор вопроса — zvygin1964): Вопрос решен Егором. Спасибо ему и создателям сайта!

21 июля 2014, 18:02: Вопрос вновь открыт (изменение состояния произвёл автор вопроса — zvygin1964): Не присвоились баллы Егору.

21 июля 2014, 18:04: Статус вопроса изменён на решённый (изменил автор вопроса — zvygin1964): Вопрос решен Егором на 5 баллов !

Страницы: [« Предыдущая] [1] [2]

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 25 апреля 2026, 20:36
Выполнено за 0.03 сек.