Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Динамическое создание и загрузка хтмл-странички

18K
01 апреля 2007 года
#pragma
16 / / 03.03.2007
Здраствуйте, товарищи программёры!

Суть: Прога читает FAT логического диска в массив. Нужно представить этот процесс на экране. Думаю сделать поток - генератор кода html и загонять его в CppWebBrowser в реальном времени в процессе перевода массива в хтмл-таблицу.

Вопрос: Как динамически подгружать в борландовский браузер только что сформированный код (без создания временного html-файла и без отдельного консольного процесса CGI)?? :confused: Вообще, такое возможно средствами билдера?
4.6K
01 апреля 2007 года
Tokolist
268 / / 22.03.2007
[QUOTE=#pragma]борландовский браузер[/QUOTE]
Ну во-первых, не "борландовский браузер", а Мелкософтский АктивЕкс :)

Во-вторых, смотри свойство Document и интерфейс IHTMLDocument2
246
01 апреля 2007 года
GIZMO
1.8K / / 30.07.2004
Цитата: #pragma
Здраствуйте, товарищи программёры!

Суть: Прога читает FAT логического диска в массив. Нужно представить этот процесс на экране. Думаю сделать поток - генератор кода html и загонять его в CppWebBrowser в реальном времени в процессе перевода массива в хтмл-таблицу.

Вопрос: Как динамически подгружать в борландовский браузер только что сформированный код (без создания временного html-файла и без отдельного консольного процесса CGI)?? :confused: Вообще, такое возможно средствами билдера?


FAQ, 26. Как в компонент TWebBrowser загрузить HTML код из строки?
http://forum.codenet.ru/showthread.php?t=26390&page=2

18K
01 апреля 2007 года
#pragma
16 / / 03.03.2007
2Tokolist: Спасибо за поправку! Теперь буду знать! :)

2GIZMO: Товарищ GIZMO, какая-то непонятая бодяга у меня получается вот здесь

 
Код:
LPDISPATCH DocDispatch = CppWebBrowser1->ControlInterface->get_Document();
   [COLOR="Red"]if (!DocDispatch)[/COLOR]
   {
     return;
   }


При проверке условия уходит на return! :( Я в хтмл-ках совсем не хорошо шарю, что не так, а?
246
02 апреля 2007 года
GIZMO
1.8K / / 30.07.2004
Цитата: #pragma
2Tokolist: Спасибо за поправку! Теперь буду знать! :)

2GIZMO: Товарищ GIZMO, какая-то непонятая бодяга у меня получается вот здесь

 
Код:
LPDISPATCH DocDispatch = CppWebBrowser1->ControlInterface->get_Document();
   [COLOR="Red"]if (!DocDispatch)[/COLOR]
   {
     return;
   }


При проверке условия уходит на return! :( Я в хтмл-ках совсем не хорошо шарю, что не так, а?



Не так то, что у товарища #pragma НЕТ ДОКУМЕНТА. Его надо создать переходом (метод Navigate) на какую-либо страницу (изначально никакого документа нет и return у тебя работает совершенно правильно), например "about :blank" и дождаться ее полной загрузки (событие OnDocumentComplete - пример есть в справке Билдера). Т.е. где-то в конструкторе формы нужно:
WB->Navigate(WideString("about :blank"));
// можно и так, но лучше ловить OnDocumentComplete
while( WB->Busy )
Application->ProcessMessages();

11K
04 апреля 2007 года
Joe Black
49 / / 29.10.2006
Подскажите пожалуйста, почему при нажатии на кнопку повторно
в CppWebBro вместо желаемой строки появляется белый лист.
Как это исправить?

код такой:
Код:
AnsiString as = Memo1->Text;
   CppWebBrowser1->Navigate(WideString("about :blank"));
   TStringStream *str = new TStringStream("");
   str->WriteString(as);

   LPDISPATCH DocDispatch = CppWebBrowser1->ControlInterface->get_Document();
   if (!DocDispatch)
   {
     return;
   }

   IHTMLDocument2 *docInterface;
   HRESULT hr = S_OK;
   hr = DocDispatch->QueryInterface(IID_IHTMLDocument2, (LPVOID*)&docInterface);
   if (!SUCCEEDED(hr))
   {
     return;
   }

   VARIANT *param;
   SAFEARRAY *sfArray;

   sfArray = SafeArrayCreateVector(VT_VARIANT, 0, 1);

   if (sfArray)
   {
     SafeArrayAccessData(sfArray, (LPVOID*) &param);
     param->vt = VT_BSTR;
     param->bstrVal = WideString(str->DataString);
     SafeArrayUnaccessData(sfArray);
     docInterface->write(sfArray);
     SafeArrayDestroy(sfArray);
   }
   delete str;
246
04 апреля 2007 года
GIZMO
1.8K / / 30.07.2004
Цитата: Joe Black
Подскажите пожалуйста, почему при нажатии на кнопку повторно
в CppWebBro вместо желаемой строки появляется белый лист.
Как это исправить?


 
Код:
CppWebBrowser1->Navigate2(&TVariant("about :blank"));

   while( CppWebBrowser1->ReadyState != Shdocvw_tlb::READYSTATE_COMPLETE )
        Application->ProcessMessages();

   AnsiString as = Memo1->Text;
   TStringStream *str = new TStringStream("");
   ...
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог