Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Разное
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 29.07.2008, 02:18
Booo Booo вне форума
Новичок
 
Регистрация: 03.07.2008
Сообщения: 93
Репутация: 10
По умолчанию Формы и музыка

Обьясните как мне с помощью кнопки можно переходить на другую форму?.
Есть еще один вопрос...Допустим я открыл форму и мне нужно что бы плеер заиграл песню..что то вроде фоновой музыки,если я форму сменю ,другая песня...кто может обьяснить как такое сделать ?
Ответить с цитированием
  #2  
Старый 29.07.2008, 03:36
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,015
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Менять формы (не менять, а открывать следующую, предыдушую, если она не является главной можно закрыть) можно с помощью вызова Show или ShowModal экземпляра соотв. класса (формы: Form1, Form2 и т.д.).

Для воспроизведения музыки в таком режиме тебе надо TMediaPlayer разместить на главной форме, а управлять им с других форм (например, написав процку PlayMelody(AMelodyFileName : String) и вызывая ее из каждой формы, а эта процка должна загрузить указанный файл в медиаплеер и запустить его на проигрывание).
Ответить с цитированием
  #3  
Старый 29.07.2008, 11:26
Ama Ama вне форума
Активный
 
Регистрация: 15.07.2008
Сообщения: 260
Репутация: 23
По умолчанию

А можно переходами между формами воспользоваться ShowModal, и на каждую форму поставить TMediaPlayer со своими файлами воспроизведения, тогда переходя на другую форму должна играть другая мелодия, а первая приостановиться, и если вернуться на первую форму то она должна продолжиться.
Ответить с цитированием
  #4  
Старый 30.07.2008, 04:52
Booo Booo вне форума
Новичок
 
Регистрация: 03.07.2008
Сообщения: 93
Репутация: 10
По умолчанию

Извините за настойчеость ,только вот я нуб полный и еще только учусь ...Допустим создал форму кинул туда MediaPLayer,сохранил проект в папку ,в эту же папку кинул песню,на событие OnFormCreate ,пишу в var MediaPlayer1 : TMediaPlayer;
Далее в begin пишу PlayMelody ...и дальше как сказали ...компилирую проект..мне ошибки вроде неизвестный индетификатор PlayMelody и про другие точно так же...Не можете поподробнее обьяснить?)
Ответить с цитированием
  #5  
Старый 30.07.2008, 05:21
Booo Booo вне форума
Новичок
 
Регистрация: 03.07.2008
Сообщения: 93
Репутация: 10
По умолчанию

А не....как связать формы я додумался...
Вот теперь не понятно про музыку....куда что кидать и так далее.где чего прописыатть..обьясните плиз)
Ответить с цитированием
  #6  
Старый 30.07.2008, 10:29
Аватар для friz
friz friz вне форума
Местный
 
Регистрация: 04.04.2008
Адрес: Минск
Сообщения: 596
Версия Delphi: 2007 & JAVA EE
Репутация: 10670
По умолчанию

Booo, с музыкой все очень просто. А "PlayMelody(AMelodyFileName : String)" это невстроенная процедура, а самописанная которая должна быть примерно такая:
Цитата:
PlayMelody(MelodyFileName:string;
begin
//сперва можно было конечно проверить играет ли плеер, но я это опустил
Form1.mediaplayer1.stop;
Form1.mediaplayer1.filename:=MelodyFileName;
Form1.mediaplayer1.play;
end;

И теперь при событии OnCreate вызываешь процедуру PlayMelody(filename), где переменная filename содержит полный путь к песенке для данной формы. Вот и все
Ответить с цитированием
  #7  
Старый 30.07.2008, 15:49
Booo Booo вне форума
Новичок
 
Регистрация: 03.07.2008
Сообщения: 93
Репутация: 10
По умолчанию

Блин теперь с формами запутался...Если я перехожу на новую форму ,то старая весит у меня на заднем плане,а как мне сделать что бы старая что то вроде исчезла..пробывал close и visible в false ставить...что тос не получилось ,просто я на эту форму не могу теперь переключиться,посредством щелчка по ней,что мне сделать что бы форма не висела на заднем плане?
Ответить с цитированием
  #8  
Старый 30.07.2008, 16:56
Аватар для moo2k
moo2k moo2k вне форума
Активный
 
Регистрация: 05.12.2006
Адрес: где-то там...
Сообщения: 321
Репутация: 35
По умолчанию

Используй вместо ShowModal просто Show.
__________________
Программирование - это искусство и наш смысл жизни.
Ответить с цитированием
  #9  
Старый 02.08.2008, 00:53
Booo Booo вне форума
Новичок
 
Регистрация: 03.07.2008
Сообщения: 93
Репутация: 10
По умолчанию

Цитата:
Сообщение от moo2k
Используй вместо ShowModal просто Show.
Так делал тоже все равно форма висит на заднем плане((правда ее закрыть нельзя и сделать активной то же пока не закрыть все что понакрывал другое (все что исходит от этой формы)
Ответить с цитированием
  #10  
Старый 02.08.2008, 00:53
Booo Booo вне форума
Новичок
 
Регистрация: 03.07.2008
Сообщения: 93
Репутация: 10
По умолчанию

Цитата:
Сообщение от moo2k
Используй вместо ShowModal просто Show.
Так делал тоже все равно форма висит на заднем плане((правда ее закрыть нельзя и сделать активной то же пока не закрыть все что понакрывал другое (все что исходит от этой формы)
Ответить с цитированием
  #11  
Старый 02.08.2008, 10:19
Аватар для Thrasher
Thrasher Thrasher вне форума
Illuminati
 
Регистрация: 06.03.2008
Адрес: Крым, г. Симферополь
Сообщения: 348
Репутация: 8808
По умолчанию

Код:
procedure TForm1.Button1Click(Sender: TObject);
begin
 Hide; // Прячем главную форму
 Form2.ShowModal; // Показываем вторую
 Show; // Показываем главную
end;
__________________
Хорошо написанная программа не требует документации
ICQ 9-184-668.
Ответить с цитированием
Ответ


Delphi Sources

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

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 15:31.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter