|
Вопрос # 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 дней с момента отправки вопроса)
Приложение: Переключить в обычный режим- Unit1.pas https://www.delphi-int.ru/code/731E206A
- Unit1.dfm https://www.delphi-int.ru/code/67C7B1CA
 |
Вопрос задал: zvygin1964 (статус: Посетитель)
Вопрос отправлен: 13 июля 2014, 20:35
Состояние вопроса: решён, ответов: 0.
|
Мини-форум вопроса
Всего сообщений: 25; последнее сообщение — 21 июля 2014, 17:55; участников в обсуждении: 3.
Страницы: [« Предыдущая] [1] [2]
|
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 (статус: Посетитель), 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]
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|