Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2004.08.08;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.035 c
14-1082821552
VEG
2004-04-24 19:45
2004.08.08
OGG


3-1089880727
Алексей
2004-07-15 12:38
2004.08.08
Смерть ADO. Как восстановить?


14-1089947765
Думкин
2004-07-16 07:16
2004.08.08
Пятничные задачки (прошу не судить строго)


1-1090651888
Fagot
2004-07-24 10:51
2004.08.08
Где можно достать иконки и картинки для приложения


8-1085256428
Strimer
2004-05-23 00:07
2004.08.08
OpenGL. "Мигание" области отрисовки





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский