Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.08.08;
Скачать: CL | DM;

Вниз

Ресурс   Найти похожие ветки 

 
ASoft   (2004-07-22 17:24) [0]

Уважаемые Мастера!
Подскажите пожалуйста, где можно больше
найти информации по вопросам создания и загрузки
ресурсных файлов. Встречал разрозненную информацию
про загрузку в res строку, JPG и что-то еще...
А как, например, скомпилить wav, avi, txt, таблицу и многое
другое, а потом загрузить это в прогу?
Заранее, спасибо.


 
Rem   (2004-07-22 17:41) [1]

brcc32.exe + {$r <filename>}


 
ASoft   (2004-07-23 02:47) [2]

>>brcc32.exe + {$r <filename>}

Пожалуй, я не понятно сформулировал вопрос.
Как правильно сформировать (записать) этот
самый filename в текстовом формате перед компилляцией его
в brcc32.exe. И как правильно вызвать ресурс в
программе?


 
Mental_Ray ©   (2004-07-23 08:43) [3]

Все элементарно, слушай сюда:

Первый шаг. В блокноте ворганишь файл с таким текстом:

1  RCDATA  "MyPic.jpg"

1 - это название твоего ресурса, оно может быть любым, кроме 0.
RCDATA - это тип файла, который ты добавляешь в ресурс, вообщето вместо RCDATA должна стоять цифра, т.е для каждого типа файлов своя цифра (например для html идет цифра 23), а RCDATA это универсальный идентификатор
"MyPic.jpg" - это путь к файлу, он должен записываться именно в кавычках.

В файл можно писать много строчек например:
1  RCDATA  "MyPic1.jpg"
2  RCDATA  "MyPic2.jpg"
3  RCDATA  "MyPic3.jpg"

Второй шаг. Меняешь расширение этого файла на RC (1.rc примеру)

Идешь в командную строку и пишешь BRCC32 1.rc (естественно путь к файлу 1.rc нужно указать) и после этого в той же директории где был 1.rc появится файлик 1.res

Третий шаг.

Кидаешь этот файл res в папку со своим проектом.
В своем проэкте дописываешь после
{$R *.DFM}
{$R 1.RES}

А вот процедура для вытаскивания,например, Jpg из файла EXE:

uses JPEG;

procedure LoadJPEGfromEXE;
var
 MyJPG: TJPEGImage; // Объект - JPEG
 Stream: TResourceStream; // Объект - поток ресурсов
begin
 try
   MyJPG := TJPEGImage.Create;
   Stream := TResourceStream.CreateFromID(HInstance, 1,   RT_RCDATA);
   MyJPG.LoadFromStream(Stream);
   Canvas.Draw(12, 12, MyJPG);
 finally
   MyJPG.Free;
   Stream.Free;
 end;
end;

Я думаю доходчиво объяснил? :))


 
ASoft   (2004-07-23 09:18) [4]

Спасибо, Mental_Ray!
Довольно доходчиво. Но если ты читал первую часть вопроса, то понял, что с JPG, как раз я и встречался.
Что касается других типов файлов: wav, avi, таблица, текст.
Допустим, я научился компилить их в ресурс. Но все ли они одинаково загружаются из ресурса во время выполнения?


 
Mental_Ray ©   (2004-07-23 22:34) [5]

Не знаю насчет всех но Wav грузится так:

{$R MyWave.res}

procedure RetrieveMyWave;
var
 hResource: THandle;
 pData: Pointer;
begin
 hResource := LoadResource(hInstance, FindResource(hInstance, "MyWave",
   RT_RCDATA));
 try
   pData := LockResource(hResource);
   if pData = nil then
     raise Exception.Create("Cannot read MyWave");
   // pData указывает на MyWave
     PlaySound(pData, 0, SND_MEMORY + SND_ASYNC + SND_NOSTOP);
 finally
   FreeResource(hResource);
 end;
end;

Например текст: компилируешь txt а потом грузишь его как JPG:
memo.LoadFromStream(Stream);

По идее через Pointer можно грузить любые файлы, гавное как их потом использовать? :)


 
ASoft   (2004-07-24 12:08) [6]

Mental_Ray спасибо.
Все попробую...



Страницы: 1 вся ветка

Текущий архив: 2004.08.08;
Скачать: CL | DM;

Наверх




Память: 0.46 MB
Время: 0.036 c
3-1089960933
a123
2004-07-16 10:55
2004.08.08
работа с транзакцией


1-1090397987
Igor_thief
2004-07-21 12:19
2004.08.08
Как получить высоту выпавшего PopupMenu?


14-1090503346
AndB
2004-07-22 17:35
2004.08.08
ссылка для начинающих блондинок


1-1090529183
Sergio4
2004-07-23 00:46
2004.08.08
Уникальный код


3-1089350181
Junior
2004-07-09 09:16
2004.08.08
Rave отчет и Graphic





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский