Модераторы: Snowy, MetalFan, bems, Poseidon
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Ресурсы в память, извлечь ресурсы и обращаться к ним 
V
    Опции темы
Coobick
Дата 4.12.2011, 14:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 37
Регистрация: 16.8.2010
Где: Владимир

Репутация: нет
Всего: 1



Как извлечь ресурсы в память и потом с этими файлами работать?
В ресурсах у меня HTML страничка...  Она "спецефична"..и простое обращение к ней напрямуй в ресурсы не подходит.
Пока сделал простое извлечение на жесткий во временную папку винды..
Код

Res:= TResourceStream.Create(MainInstance, 'PL', 'DATA');
FileName:= PathTMP + 'play.html';
Res.SaveToFile(FileName); 
Form1.WebBrowser1.Navigate( FileName );

Суть такова, что бы все файлы были в одном месте..так как и на диске,но в памяти.
PM MAIL   Вверх
northener
Дата 5.12.2011, 00:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1361
Регистрация: 2.9.2010

Репутация: 12
Всего: 20



Цитата(Coobick @  4.12.2011,  14:35 Найти цитируемый пост)
Суть такова, что бы все файлы были в одном месте..так как и на диске,но в памяти. 

А зачем?



--------------------
Но только лошади летают вдохновенно.
Иначе лошади разбились бы мгновенно!
PM MAIL   Вверх
Coobick
Дата 5.12.2011, 06:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 37
Регистрация: 16.8.2010
Где: Владимир

Репутация: нет
Всего: 1



Цитата(northener @ 5.12.2011,  01:07)
А зачем?

Ну как.. там же HTML страница..и ЕЁ файлы... Вот поэтому файлы и должны быть вместе,ну как бы в одной папке. 
Повторюсь, в странице код специфичен и просто ссылки на ресурсы вставить не получиться.
PM MAIL   Вверх
northener
Дата 5.12.2011, 23:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1361
Регистрация: 2.9.2010

Репутация: 12
Всего: 20



Цитата(Coobick @  5.12.2011,  06:49 Найти цитируемый пост)
Ну как.. там же 

Не я спросил зачем нужно "так как и на диске, но в памяти".


--------------------
Но только лошади летают вдохновенно.
Иначе лошади разбились бы мгновенно!
PM MAIL   Вверх
Coobick
Дата 6.12.2011, 12:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 37
Регистрация: 16.8.2010
Где: Владимир

Репутация: нет
Всего: 1



Цитата(northener @ 6.12.2011,  00:27)
Не я спросил зачем нужно "так как и на диске, но в памяти".

аааа  smile 
Ну что бы "без мусора" было.. можно конечно удалять при закрытии,дело не в этом.. Программа один файл и этот "хлам" лишний.. к тому же один файл (html) относительно часто перезаписываеться (в программе вносяться изменения,сохраняеться и опять открывается..) 
PM MAIL   Вверх
Akella
Дата 6.12.2011, 13:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 8
Всего: 329



Открой для себя временную папку в Windows smile
PM MAIL   Вверх
500mhz
Дата 6.12.2011, 13:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


шайтан
***


Профиль
Группа: Завсегдатай
Сообщений: 1017
Регистрация: 5.5.2008
Где: Киев / Italy

Репутация: нет
Всего: 14



ну какойнить рам диск придумать


--------------------

PM MAIL ICQ   Вверх
MetalFan
Дата 6.12.2011, 14:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Аццкий Сотона
****


Профиль
Группа: Комодератор
Сообщений: 3815
Регистрация: 2.10.2006
Где: Moscow

Репутация: 22
Всего: 128



и еще один вариант: простенький http сервер на TIdHTTPServer сделать) а он уже будет отдавать все напрямую из памяти.


--------------------
There are always someone smarter than you...
PM MAIL   Вверх
Coobick
Дата 7.12.2011, 14:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 37
Регистрация: 16.8.2010
Где: Владимир

Репутация: нет
Всего: 1



Открой для себя временную папку в Windows smile
Первый пост... Пока сделал простое извлечение на жесткий во временную папку винды..

ну какойнить рам диск придумать 
Тут вроде как без написания драйвера не обойтись.. не?

и еще один вариант: простенький http сервер на TIdHTTPServer сделать)
А чуть подробней можно? 

В общем что в ресурсах..надо ранее наверно сразу описать было)
В ресурсах как бы флещ плеер..
Плеер,страничка и картинка..
black.jpg //BACK
play.html //HTM
player.swf //PLAY

Для полноценной работы нужно что бы это всё "лежало рядом" другу с другом..
Хотя я может просто не в курсе и можно плеер грузить прямо из ресурса как и картинку.. ???
 
Например картинка.. Грузим..
<img src="/DATA/BACK" width="430"height="240">

При открытии браузером страницу.. Картинка на месте..
WebBrowser1.Navigate('res://'+ ExtractFileName(paramstr(0)) +'/DATA/HTM' );

А вот плеер так уже не прокатывает.. :(
<embed src="/DATA/PLAY" width="430" height="240"  </embed>
<embed src="player.swf" width="430" height="240"  </embed>



Это сообщение отредактировал(а) Coobick - 7.12.2011, 14:36
PM MAIL   Вверх
MetalFan
Дата 7.12.2011, 21:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Аццкий Сотона
****


Профиль
Группа: Комодератор
Сообщений: 3815
Регистрация: 2.10.2006
Где: Moscow

Репутация: 22
Всего: 128



Цитата(Coobick @  7.12.2011,  14:36 Найти цитируемый пост)
А чуть подробней можно? 

Легко! в двух словах: кидаешь на форму TIdHTTPServer, назначаешь OnCommandGet, в обработчике анализируешь ARequestInfo, и отсылаешь нужный, загруженный из ресурсов stream ( ResponseInfo.ContentStream := ...; ResponseInfo.WriteContent();)


--------------------
There are always someone smarter than you...
PM MAIL   Вверх
Coobick
Дата 8.12.2011, 16:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 37
Регистрация: 16.8.2010
Где: Владимир

Репутация: нет
Всего: 1



Цитата(MetalFan @ 7.12.2011,  22:38)
Легко!....

Почти понятно), спасибо).. 
Но сейчас уже необходимость пока отпала,не подходит этот вариант воспроизведения..
PM MAIL   Вверх
Dik0n
Дата 8.12.2011, 17:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 153
Регистрация: 11.5.2011

Репутация: нет
Всего: 10



Загрузка html кода в браузер.

Код

uses MSHTML;

procedure Browse(const Value: string);
var
  v: Variant;
  HTMLDocument: IHTMLDocument2;
begin
  HTMLDocument := WebBrowser1.Document as IHTMLDocument2;
  v := VarArrayCreate([0, 0], varVariant);
  v[0] := Value; 
  HTMLDocument.Write(PSafeArray(TVarData(v).VArray));
  HTMLDocument.Close;
end;

procedure Use;
begin
  Browse('<b>Hello, World</b>');
end;



Это сообщение отредактировал(а) Dik0n - 8.12.2011, 17:25
--------------------
▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ ◄◄◄ Сотри монеткой защитный слой
PM MAIL WWW   Вверх
MetalFan
Дата 8.12.2011, 17:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Аццкий Сотона
****


Профиль
Группа: Комодератор
Сообщений: 3815
Регистрация: 2.10.2006
Где: Moscow

Репутация: 22
Всего: 128



Dik0n, 
Цитата(Coobick @  7.12.2011,  14:36 Найти цитируемый пост)
В общем что в ресурсах..надо ранее наверно сразу описать было)
В ресурсах как бы флещ плеер..
Плеер,страничка и картинка..

ы? как этим способом загрузить ресурсы, которые понадобятся странице?



--------------------
There are always someone smarter than you...
PM MAIL   Вверх
Dik0n
Дата 8.12.2011, 20:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 153
Регистрация: 11.5.2011

Репутация: нет
Всего: 10



Цитата(MetalFan @  8.12.2011,  17:50 Найти цитируемый пост)
ы? как этим способом загрузить ресурсы, которые понадобятся странице?

хз... smile просто так привел, мало ли пригодится...
А вообще, наверное через протокол res:// должно работать. В справке можно посмотреть, там есть несколько вариантов.
--------------------
▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ ◄◄◄ Сотри монеткой защитный слой
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Для новичков"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0624 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.