Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.12.2011, 21:43   #1
bibika
Пользователь
 
Регистрация: 11.10.2011
Сообщений: 18
По умолчанию Компонент TWebBrowser в Delphi и работа с ресурами

Проблема в том что не могу разобраться с использованием ресурсов. В TWebBrowser отображаются страницы с папки на диске, этих страниц много, все они между собой связанные ссылками. Очень не хотелось бы давать пользователям доступ к html страничкам, поэтому засунуть их в rc файлы как мне кажется было бы хорошим решением. Как их засунуть понятно, но как их отобразить совсем не понятно. Подскажите уважаемые что делать, желательно с простыми примерами.

Спасибо
bibika вне форума Ответить с цитированием
Старый 11.12.2011, 22:23   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Очень не хотелось бы давать пользователям доступ к html страничкам
Тоесть? А закрыть папку с ХТМЛшками безопасностью операционки (я так дела раньше) не хочешь? Да и потом я не понимаю как пользователь допрет откуда ХТМЛшки загружаются? ты что ему показываешь путь или они тупо лежат рядом с прогой?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 11.12.2011, 22:29   #3
bibika
Пользователь
 
Регистрация: 11.10.2011
Сообщений: 18
По умолчанию

Цитата:
ты что ему показываешь путь или они тупо лежат рядом с прогой?
Файлы тупо лежат в отдельной папке.
То есть такая структура:
program_name.exe
/sources/index.html и тд
Цитата:
А закрыть папку с ХТМЛшками безопасностью операционки
А как я закрою папку на чужом компе?
bibika вне форума Ответить с цитированием
Старый 11.12.2011, 22:36   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
А как я закрою папку на чужом компе?
А-а-а. Вот это уже совсем другое дело.
Были примеры вытаскивания из ресурсов типа
Код:
var res:TResourceStream;
begin
 try
   res:=TResourceStream.Create(HInstance,'Страница такая-то',RT_RCDATA);
    res.SaveToFile(uf);
   res.Free;
   WebBrowser.nafigate(uf);
 except

 end;
end;
Не ручаюсь за мегаправильность, но я именно так из ресурсов вытаскиваю.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 11.12.2011, 22:56   #5
bibika
Пользователь
 
Регистрация: 11.10.2011
Сообщений: 18
По умолчанию

Код:
Были примеры вытаскивания из ресурсов типа
Спасибо поищу примеры на сайте.

Я тут подумал, а есть возможность засунуть все в один exe файл, что б не плодить кучу rc файлов ? На просторах интернета встречал программу что-то типа Web Exe которая все пихает в 1 файл. Полученый файл определяется как проект Дельфи.

Последний раз редактировалось bibika; 11.12.2011 в 23:50.
bibika вне форума Ответить с цитированием
Старый 12.12.2011, 08:21   #6
bibika
Пользователь
 
Регистрация: 11.10.2011
Сообщений: 18
По умолчанию

Я тут подумал, а есть возможность засунуть все в один exe файл, что б не плодить кучу rc файлов ? На просторах интернета встречал программу что-то типа Web Exe которая все пихает в 1 файл. Полученый файл определяется как проект Дельфи.
bibika вне форума Ответить с цитированием
Старый 12.12.2011, 08:49   #7
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Ну да. Засунуть в ресурсы можно что угодно, но подумай сам - вся эта клоака будет загружаться в память полностью. Прикинь теперь у тебя мегасайт на 2000 страниц где-то под 100Мб общим весом - и вся эта океания польется в память.
Так никто не делает. Уж лучше кинуть в BLOB поля базы данной и загружать из нее.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 12.12.2011, 09:23   #8
bibika
Пользователь
 
Регистрация: 11.10.2011
Сообщений: 18
По умолчанию

Да Вы правы. Будем думать.
bibika вне форума Ответить с цитированием
Старый 13.12.2011, 12:47   #9
bibika
Пользователь
 
Регистрация: 11.10.2011
Сообщений: 18
По умолчанию

Уважаемые, продолжаю спрашивать помогите советом. Хочу подключить файл ресурсов по этой инструкции:
Цитата:
Вопрос: Как можно использовать протокол "res:"?

Ответ: Протокол "res:" позволяет просмотреть HTML файл, сохранённый как ресурс. Более подробная информация доступна на Microsoft site:

procedure TForm1.LoadHTMLResource;
var
Flags, TargetFrameName, PostData, Headers: OleVariant;
begin
WebBrowser1.Navigate('res://' + Application.ExeName + '/myhtml',
Flags, TargetFrameName, PostData, Headers)
end;

Создайте файл ресурса (*.rc) со следующими строками и откомпилируйте его при помощи brcc32.exe:

MYHTML 23 ".\html\myhtml.htm"

MOREHTML 23 ".\html\morehtml.htm"

Отредактируйте файл проекта, чтобы он выглядел примерно так:

{$R *.RES}
{$R HTML.RES} //где html.rc будет скомпилирован в html.res

Не могу понять что такое Application.ExeName, и вот это Flags, TargetFrameName, PostData, Headers.

Создал файл res. Вот его структура:
Код:
1HTML 23 ".\source\1.htm"
2HTML 23 ".\source\2.htm"
и в коде прописываю так
Код:
procedure TForm1.btn1Click(Sender: TObject);
var
Flags, TargetFrameName, PostData, Headers: OleVariant;

begin
WebBrowser.Navigate(('res://' + 'Project2' + '/1HTML',
                               Flags, TargetFrameName, PostData, Headers)
);
end;
Компилятор бросается ошибками:
Цитата:
[Error] test2.pas(86): ')' expected but ',' found
[Error] test2.pas(87): There is no overloaded version of 'Navigate' that can be called with these arguments
подскажите что не так сделано, где моя ошибка.

Спасибо
bibika вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Компонент-аналог TWebBrowser kettanaito Компоненты Delphi 9 09.11.2011 23:44
[Поиск] Компонент локализации строковых ресурсов и сторонних компонент delphi Человек_Борща Компоненты Delphi 3 23.08.2011 10:44
Где скачать компонент TWebBrowser? Rock'n'rolla Компоненты Delphi 4 26.01.2010 13:23
Автоматическая авторизация если присуствует компонент TWebBrowser eldar Работа с сетью в Delphi 8 28.09.2008 22:04
Работа с Twebbrowser PUH Помощь студентам 8 16.04.2008 20:41