LPDISPATCH DocDispatch = CppWebBrowser1->ControlInterface->get_Document();
[COLOR="Red"]if (!DocDispatch)[/COLOR]
{
return;
}
Динамическое создание и загрузка хтмл-странички
Суть: Прога читает FAT логического диска в массив. Нужно представить этот процесс на экране. Думаю сделать поток - генератор кода html и загонять его в CppWebBrowser в реальном времени в процессе перевода массива в хтмл-таблицу.
Вопрос: Как динамически подгружать в борландовский браузер только что сформированный код (без создания временного html-файла и без отдельного консольного процесса CGI)?? :confused: Вообще, такое возможно средствами билдера?
Ну во-первых, не "борландовский браузер", а Мелкософтский АктивЕкс :)
Во-вторых, смотри свойство Document и интерфейс IHTMLDocument2
Цитата: #pragma
Здраствуйте, товарищи программёры!
Суть: Прога читает FAT логического диска в массив. Нужно представить этот процесс на экране. Думаю сделать поток - генератор кода html и загонять его в CppWebBrowser в реальном времени в процессе перевода массива в хтмл-таблицу.
Вопрос: Как динамически подгружать в борландовский браузер только что сформированный код (без создания временного html-файла и без отдельного консольного процесса CGI)?? :confused: Вообще, такое возможно средствами билдера?
Суть: Прога читает FAT логического диска в массив. Нужно представить этот процесс на экране. Думаю сделать поток - генератор кода html и загонять его в CppWebBrowser в реальном времени в процессе перевода массива в хтмл-таблицу.
Вопрос: Как динамически подгружать в борландовский браузер только что сформированный код (без создания временного html-файла и без отдельного консольного процесса CGI)?? :confused: Вообще, такое возможно средствами билдера?
FAQ, 26. Как в компонент TWebBrowser загрузить HTML код из строки?
http://forum.codenet.ru/showthread.php?t=26390&page=2
2GIZMO: Товарищ GIZMO, какая-то непонятая бодяга у меня получается вот здесь
Код:
При проверке условия уходит на return! :( Я в хтмл-ках совсем не хорошо шарю, что не так, а?
Цитата: #pragma
2Tokolist: Спасибо за поправку! Теперь буду знать! :)
2GIZMO: Товарищ GIZMO, какая-то непонятая бодяга у меня получается вот здесь
При проверке условия уходит на return! :( Я в хтмл-ках совсем не хорошо шарю, что не так, а?
2GIZMO: Товарищ GIZMO, какая-то непонятая бодяга у меня получается вот здесь
Код:
LPDISPATCH DocDispatch = CppWebBrowser1->ControlInterface->get_Document();
[COLOR="Red"]if (!DocDispatch)[/COLOR]
{
return;
}
[COLOR="Red"]if (!DocDispatch)[/COLOR]
{
return;
}
При проверке условия уходит на return! :( Я в хтмл-ках совсем не хорошо шарю, что не так, а?
Не так то, что у товарища #pragma НЕТ ДОКУМЕНТА. Его надо создать переходом (метод Navigate) на какую-либо страницу (изначально никакого документа нет и return у тебя работает совершенно правильно), например "about :blank" и дождаться ее полной загрузки (событие OnDocumentComplete - пример есть в справке Билдера). Т.е. где-то в конструкторе формы нужно:
WB->Navigate(WideString("about :blank"));
// можно и так, но лучше ловить OnDocumentComplete
while( WB->Busy )
Application->ProcessMessages();
в 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*) ¶m);
param->vt = VT_BSTR;
param->bstrVal = WideString(str->DataString);
SafeArrayUnaccessData(sfArray);
docInterface->write(sfArray);
SafeArrayDestroy(sfArray);
}
delete str;
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*) ¶m);
param->vt = VT_BSTR;
param->bstrVal = WideString(str->DataString);
SafeArrayUnaccessData(sfArray);
docInterface->write(sfArray);
SafeArrayDestroy(sfArray);
}
delete str;
Цитата: Joe Black
Подскажите пожалуйста, почему при нажатии на кнопку повторно
в CppWebBro вместо желаемой строки появляется белый лист.
Как это исправить?
в CppWebBro вместо желаемой строки появляется белый лист.
Как это исправить?
Код:
CppWebBrowser1->Navigate2(&TVariant("about :blank"));
while( CppWebBrowser1->ReadyState != Shdocvw_tlb::READYSTATE_COMPLETE )
Application->ProcessMessages();
AnsiString as = Memo1->Text;
TStringStream *str = new TStringStream("");
...
while( CppWebBrowser1->ReadyState != Shdocvw_tlb::READYSTATE_COMPLETE )
Application->ProcessMessages();
AnsiString as = Memo1->Text;
TStringStream *str = new TStringStream("");
...