Модераторы: MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Имитация HTTP сервера, Вывод непосредственно в TWebBrowser 
:(
    Опции темы
azbook
Дата 23.5.2006, 16:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Приложение имитирует Web-сайт. В ответ на действия пользователя генерируется страничка и отображается компонентом TWebBrowser. Дурацкий вопрос - как это сделать? Можно конечно создавать каждый раз файл и на него указать методу Navigate. Можно запустить локально Веб-сервер или встроить веб-сервер в приложение и обращаться по http-протоколу. Есть ли альтернативы? Что то типа вывода непосредственно в браузер, как это делает Http-сервер, но без использования последнего. 
Связанный с этим вопрос - на генерируемой страничке есть ссылки. Как сделать ссылку "на себя?". Т.е.что-то типа
protokol://application.exe?parametrs, чтобы по щелчок по ссылке обрабатывало то же самое приложение. Лично мне ничего умнее в голову не приходит, чем в обработчике OnBeforeNavigate анализировать ссылку, создавать временной файл и туда писать созданную страницу. Т.е. все ссылки имеют вид "temp.html?param1=val1&param2=val2....". Уродливо как-то получается. Просьба имеющим что сказать по данному поводу не стесняться отвечать подробно, на уровне "для полного чайника" (Первую и последню прогу на Делфи писал 10 лет назад, HelloWorld.exe называлась).  
PM MAIL   Вверх
Snowy
Дата 23.5.2006, 16:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

Репутация: 4
Всего: 484



Цитата(azbook @  23.5.2006,  16:45 Найти цитируемый пост)
 Что то типа вывода непосредственно в браузер, как это делает Http-сервер, но без использования последнего. 
В разделе по ActiveX есть примеры загрузки из TMemoryStream.


Цитата(azbook @  23.5.2006,  16:45 Найти цитируемый пост)
Лично мне ничего умнее в голову не приходит, чем в обработчике OnBeforeNavigate анализировать ссылку
Так и делать.

Цитата(azbook @  23.5.2006,  16:45 Найти цитируемый пост)
Т.е. все ссылки имеют вид "temp.html?param1=val1&param2=val2....". Уродливо как-то получается.
Можешь передавать данные через POST запрос. Тогда не видно будет.

Добавлено @ 16:57 
Процедура для загрузки html страницы в TWebBrowser.
Код
procedure LoadHtml(wb: TWebBrowser; html: string);
var ms: TMemoryStream;
begin
  ms:=TMemoryStream.Create;
  ms.Write(html[1], Length(html));
  ms.Position:=0;
  try
    while wb.ReadyState < READYSTATE_INTERACTIVE do
      Application.HandleMessage;
    (wb.Document as IPersistStreamInit).Load(TStreamAdapter.Create(ms));
  finally
    ms.Free;
  end;
end;


Добавлено @ 17:02 
И еще. В FAQ много полезного на эту тему. Пригодится: http://forum.vingrad.ru/index.php?act=modu...amp;section=787 
PM MAIL   Вверх
Демо
Дата 23.5.2006, 19:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



Мда. А  люди все разбрасывают везде по инету свои вопросы... 


--------------------
    
PM MAIL ICQ Skype   Вверх
azbook
Дата 24.5.2006, 16:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Спасибо, это именно то, что нужно. Прошу извинить за невнимательное изучение ФАК)

Добавлено @ 16:20 
Цитата(Демо @ 23.5.2006,  19:25)
Мда. А  люди все разбрасывают везде по инету свои вопросы...

и более того, некоторые успевают везде их читать... smile  
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: ActiveX/СОМ/CORBA"

Rrader
Girder

Запрещено:

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

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


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

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

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


 




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


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

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