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

Delphi Sources



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

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 18.01.2007, 21:37
Аватар для Zimir
Zimir Zimir вне форума
Прохожий
 
Регистрация: 18.01.2007
Сообщения: 20
Репутация: 10
Восклицание Ресурсы внутри .ЕХЕ Как их показать на Форме?

Помогите, пожалуйста !!!
(Исходник не мой) *(
Как видно ниже в ЕХЕ внедрены Файлы 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  
Старый 19.01.2007, 05:39
Аватар для Aristarh Dark
Aristarh Dark Aristarh Dark вне форума
Модератор
 
Регистрация: 07.10.2005
Адрес: Москва
Сообщения: 2,906
Версия Delphi: Delphi XE
Репутация: выкл
По умолчанию

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  
Старый 19.01.2007, 05:40
Аватар для Aristarh Dark
Aristarh Dark Aristarh Dark вне форума
Модератор
 
Регистрация: 07.10.2005
Адрес: Москва
Сообщения: 2,906
Версия Delphi: Delphi XE
Репутация: выкл
По умолчанию

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  
Старый 20.01.2007, 15:20
Аватар для Zimir
Zimir Zimir вне форума
Прохожий
 
Регистрация: 18.01.2007
Сообщения: 20
Репутация: 10
Смех СПС

Сечас оценю !!! СПС СПС
Ответить с цитированием
  #5  
Старый 20.01.2007, 15:31
Аватар для Zimir
Zimir Zimir вне форума
Прохожий
 
Регистрация: 18.01.2007
Сообщения: 20
Репутация: 10
Восклицание СПС х 2

Все работает прилесно
Задам еще 1 вопрос !!!
А как из ресурса в ЕХЕ - (Картинки в данном случае) поставить на рабочий стол?
Зарание благодарен.
Ответить с цитированием
  #6  
Старый 21.01.2007, 02:32
Аватар для Decoding
Decoding Decoding вне форума
Местный
 
Регистрация: 03.06.2006
Адрес: Почту найдете на моем сайте
Сообщения: 576
Версия Delphi: D10.2
Репутация: 214
По умолчанию

Сохрани картинку куда-нибудь, а потом http://decoding.narod.ru/faq/windows...ws004.html#006
Ответить с цитированием
  #7  
Старый 22.01.2007, 19:07
Аватар для Zimir
Zimir Zimir вне форума
Прохожий
 
Регистрация: 18.01.2007
Сообщения: 20
Репутация: 10
Смех СПС . НО так не интересно :)

Вообщето я хотел сделать прожку которая чисто из ЕХЕ
все ресурсы Выгребает !!!! Ну уж пускай будет так !!!
Чтото со стандартными картинками замучу ЫЫЫЫЫ
Ответить с цитированием
Ответ


Delphi Sources

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

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

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

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


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


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

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

ВКонтакте   Facebook   Twitter