|
Вопрос # 5 914/ вопрос открыт / |
|
Доброго времени суток, уважаемые эксперты!
Помогите пожалуйста написать код программы.Программа состоит в том, что бы, при открвания окна программы появлялась фотография и сразуже играла музыка с повторениями. И как сделать так, что бы аудио вормат, допустим MP3, был заключён в exe фаил этой программы.
 |
Вопрос задал: Александр1 (статус: Посетитель)
Вопрос отправлен: 28 января 2012, 17:02
Состояние вопроса: открыт, ответов: 0.
|
Мини-форум вопроса
Всего сообщений: 11; последнее сообщение — 30 января 2012, 18:36; участников в обсуждении: 5.
|
min@y™ (статус: Доктор наук), 28 января 2012, 18:02 [#1]:
Я могу всё это сделать. Ответь только на один вопрос: ты перечитывал свой текст, прежде чем тыкнуть батон "отправить"?
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
|
Александр1 (статус: Посетитель), 28 января 2012, 19:11 [#2]:
Доброго времени суток, уважаемые эксперты!
Помогите пожалуйста написать код программы.Программа состоит в том, что бы, при открывания окна программы появлялась фотография и сразу же играла музыка с повторениями. И как сделать так, что бы аудио формат, допустим MP3, был заключён в exe файл.
|
|
min@y™ (статус: Доктор наук), 28 января 2012, 21:17 [#3]:
Ну и?
Где сумма гонорара?
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
|
Александр1 (статус: Посетитель), 29 января 2012, 00:44 [#4]:
Ладно, сам разберусь " годик другой ", хотя я пол программы сам знаю как написать. Большое вам спасибо!!!
|
|
Ерёмин А.А. (статус: *Администратор), 29 января 2012, 12:43 [#5]:
Фотография — TImage, музыка — TMediaPlayer, повторение — событие OnNotifyChange, вшить файл в exe — ресурсы
|
|
eclipse (статус: Посетитель), 29 января 2012, 18:49 [#6]:
1. Создай на рабочем столе папку (например с названием 1)
2. Скопируй муз. файл и картинку в формате JPG (ну как ты указал) в эту папку. С помощью конвертера переконвертируй муз. файл в WAVE (например в Nero)
3. Переименуй его в 1 (получится 1.Wav)
4. Создай текстовый файл в котором запиши одну строку:
SND1 WAVE 1.wav
и сохрани его как Sounddata.rc
5. Скопируй в эту папку файл brcc32.exe из папки с Delphi (например - C:\Program Files\Borland\Delphi7\Bin), там этот самый файл brcc32.exe.
6. Создай текстовый файл и запиши туда строку:
brcc32 Sounddata.rc
и сохрани его как 1.bat
7. Запусти этот файл 1.bat... появится файл Sounddata.RES
8. Затем запусти Delphi (чтобы появилась новая форма Form1, если её нет создай новую форму).
9. Сделай двойной клик по форме...
10. Затем выдели весь код... и замени его на этот:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, jpeg, MMSystem;
type
TForm1 = class(TForm)
procedure FormCreate(Sender: TObject);
procedure imgDblClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
{$R Sounddata.RES}
procedure TForm1.FormCreate(Sender: TObject);
var img: TImage;
begin
Form1.BorderStyle:= bsNone;
img:= TImage.Create(Self);
img.Stretch:= True;
img.OnDblClick:= imgDblClick;
img.Parent:= Form1;
img.Align:= alClient;
img.Picture.LoadFromFile('1.jpg');
PlaySound('SND1', 0, SND_RESOURCE or SND_ASYNC);
end;
procedure TForm1.imgDblClick(Sender: TObject);
begin
Form1.WindowState:= wsMaximized;
end;
end.
Вроде всё распедалил как нельзя проще!
|
|
Толяныч (статус: 4-ый класс), 29 января 2012, 22:21 [#7]:
eclipse}}:
Автор хочет ( а может, не автор, а мне тоже пригодится ), чтобы и картинка была в ресурсе.
|
|
eclipse (статус: Посетитель), 29 января 2012, 23:21 [#8]:
Да в рот кампот! Оставляете всё то же самое, только в файл Sounddata.rc добавляете строку: MYJPEG JPEG 1.JPG.
Потом (ну надеюсь в этой папке приготовлен нужный файл с именем 1 и расширением jpeg (JPG)), т.е. 1.JPG. Затем запускаете 1.bat(описанный выше файл).
Только добавьте в проект следующий код Толяныч:
procedure LoadJPEGFromRes(TheJPEG : string; ThePicture : TPicture);
var
ResHandle : THandle;
MemHandle : THandle;
MemStream : TMemoryStream;
ResPtr : PByte;
ResSize : Longint;
JPEGImage : TJPEGImage;
begin
ResHandle := FindResource(hInstance, PChar(TheJPEG), 'JPEG');
MemHandle := LoadResource(hInstance, ResHandle);
ResPtr := LockResource(MemHandle);
MemStream := TMemoryStream.Create;
JPEGImage := TJPEGImage.Create;
ResSize := SizeOfResource(hInstance, ResHandle);
MemStream.SetSize(ResSize);
MemStream.Write(ResPtr^, ResSize);
FreeResource(MemHandle);
MemStream.Seek(0, 0);
JPEGImage.LoadFromStream(MemStream);
ThePicture.Assign(JPEGImage);
JPEGImage.Free;
MemStream.Free;
end;
и вместо старого кода загрузки изображения замените на: LoadJPEGFromRes('MYJPEG', Img.Picture);
т.е. заменить в старом img.Picture.LoadFromFile('1.jpg'); на LoadJPEGFromRes('MYJPEG', Img.Picture);
Вот полный код:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, jpeg, MMSystem;
type
TForm1 = class(TForm)
procedure FormCreate(Sender: TObject);
procedure imgDblClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
{$R Sounddata.RES}
procedure LoadJPEGFromRes(TheJPEG : string; ThePicture : TPicture);
var
ResHandle : THandle;
MemHandle : THandle;
MemStream : TMemoryStream;
ResPtr : PByte;
ResSize : Longint;
JPEGImage : TJPEGImage;
begin
ResHandle := FindResource(hInstance, PChar(TheJPEG), 'JPEG');
MemHandle := LoadResource(hInstance, ResHandle);
ResPtr := LockResource(MemHandle);
MemStream := TMemoryStream.Create;
JPEGImage := TJPEGImage.Create;
ResSize := SizeOfResource(hInstance, ResHandle);
MemStream.SetSize(ResSize);
MemStream.Write(ResPtr^, ResSize);
FreeResource(MemHandle);
MemStream.Seek(0, 0);
JPEGImage.LoadFromStream(MemStream);
ThePicture.Assign(JPEGImage);
JPEGImage.Free;
MemStream.Free;
end;
procedure TForm1.FormCreate(Sender: TObject);
var img: TImage;
begin
Form1.BorderStyle:= bsNone;
img:= TImage.Create(Self);
img.Stretch:= True;
img.OnDblClick:= imgDblClick;
img.Parent:= Form1;
img.Align:= alClient;
LoadJPEGFromRes('MYJPEG', Img.Picture);
PlaySound('SND1', 0, SND_RESOURCE or SND_ASYNC);
end;
procedure TForm1.imgDblClick(Sender: TObject);
begin
Form1.WindowState:= wsMaximized;
end;
end.
|
|
min@y™ (статус: Доктор наук), 30 января 2012, 09:14 [#9]:
Цитата (eclipse):
С помощью конвертера переконвертируй муз. файл в WAVE
Нахрена конвертировать? Можно проигрывать из ресурса и mp3.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
|
eclipse (статус: Посетитель), 30 января 2012, 11:13 [#10]:
Да хрен знает... я с ресурсами особо не разбирался, просто вспомнил что на винте где-то кусок кода был...
|
|
Толяныч (статус: 4-ый класс), 30 января 2012, 18:36 [#11]:
eclipse:
Спасибо ! У меня давно зрела шизоидная мысля : есть 2 фото, где мы с приятелем сосем Вермут из горла, так загрузить одну фоту, и пот`ом плавно по таймеру одно изображение переходит в другое, а А.Булдаков из известного фильма комментирует : "Ну вы, блин, даете! "
Увы, к сожалению, счас приятелю не до этого 
А из-за отсутствия реальных задач приходится для поддержания себя в форме писать всякую хрень типа статистики как я обыгрываю свой комп в нарды.
Сорри за оффтоп. Больше ни-ни.
|
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|