|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
||||
|
||||
Ресурсы внутри .ЕХЕ Как их показать на Форме?
Помогите, пожалуйста !!!
(Исходник не мой) *( Как видно ниже в ЕХЕ внедрены Файлы Jpg и Wav Вопрос !!! Как эту картинку показать в Форме в TImege? А Музычку проиграть в TMadiaPlayer или какомто внешнем проигрывателе типа WinAmp? unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, JPEG, MMSystem, StdCtrls; type TForm1 = class(TForm) Button1: TButton; Button2: TButton; procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} {$R MyPicture.res} {$R MyWave.res} function LoadJPEGfromEXE( Number: integer ): TJPEGImage; var ResStream: TResourceStream; begin Result := TJPEGImage.Create; ResStream := TResourceStream.CreateFromID( HInstance, Number, RT_RCDATA ); Result.LoadFromStream( ResStream ); ResStream.Free; end; {--------------------------} procedure RetrieveMyWave; var WaveHandle: THandle; WavePointer: Pointer; begin WaveHandle := FindResource( hInstance, 'MyWave', RT_RCDATA ); if WaveHandle <> 0 then begin WaveHandle := LoadResource( hInstance, WaveHandle ); if WaveHandle <> 0 then begin WavePointer := LockResource( WaveHandle ); sndPlaySound( WavePointer, SND_MEMORY or SND_ASYNC ); UnlockResource( WaveHandle ); FreeResource( WaveHandle ); end; end; end; procedure TForm1.Button1Click(Sender: TObject); var ResStream: TResourceStream; begin ResStream := TResourceStream.Create( HInstance, 'MyPicture', RT_RCDATA ); ResStream.SaveToFile( 'Milkiway.jpg' ); ResStream.Free; end; procedure TForm1.Button2Click(Sender: TObject); var ResStream: TResourceStream; begin ResStream := TResourceStream.Create( HInstance, 'MyWave', RT_RCDATA ); ResStream.SaveToFile( 'ir_end.wav' ); ResStream.Free; end; |
#2
|
||||
|
||||
WAV (взято из DRKB)
Код:
var FindHandle, ResHandle: THandle; ResPtr: Pointer; begin FindHandle := FindResource(HInstance, 'Name of your resource', 'WAVE'); if FindHandle <> 0 then begin ResHandle := LoadResource(HInstance, FindHandle); if ResHandle <> 0 then begin ResPtr := LockResource(ResHandle); if ResPtr <> nil then SndPlaySound(PChar(ResPtr), snd_ASync or snd_Memory); UnlockResource(ResHandle); end; FreeResource(FindHandle); end; end; |
#3
|
||||
|
||||
JPEG (тоже из DRKB)
Код:
Грузим ресурс} {$R FOO.RES} uses Jpeg; 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.Button1Click(Sender: TObject); begin LoadJPEGFromRes('MYJPEG', Image1.Picture); end; |
#4
|
||||
|
||||
СПС
Сечас оценю !!! СПС СПС
|
#5
|
||||
|
||||
СПС х 2
Все работает прилесно
Задам еще 1 вопрос !!! А как из ресурса в ЕХЕ - (Картинки в данном случае) поставить на рабочий стол? Зарание благодарен. |
#6
|
||||
|
||||
Сохрани картинку куда-нибудь, а потом http://decoding.narod.ru/faq/windows...ws004.html#006
|
#7
|
||||
|
||||
СПС . НО так не интересно :)
Вообщето я хотел сделать прожку которая чисто из ЕХЕ
все ресурсы Выгребает !!!! Ну уж пускай будет так !!! Чтото со стандартными картинками замучу ЫЫЫЫЫ |