Frei nach dem Beispiel von Pit aus dem Forum der RAD-Seiten:
//---------------------------------------------------------------------------
// Funktion LoadHtmlFromStream() lädt den HTML-Code aus dem MemoryStream
// direkt in den TCppWebBrowser-Steuerelement.
//---------------------------------------------------------------------------
// Übergabeparameter:
//
// TCppWebBrowser* pCppWebBrowser -> Zeiger auf die zu verwendende
// TCppWebBrowser-Komponente
// TMemoryStream* pMemStream -> Stream mit dem HTML-Code
//---------------------------------------------------------------------------
void LoadHtmlFromStream(TCppWebBrowser* pCppWebBrowser,
TMemoryStream* pMemStream)
{
if(pMemStream && pCppWebBrowser)
{
IPersistStreamInit* pPSI;
pMemStream->Seek(0, 0);
if(!pCppWebBrowser->Document)
{
pCppWebBrowser->Navigate(WideString("about:blank"));
while(!pCppWebBrowser->Document)
Application->ProcessMessages();
}
TStreamAdapter* pStreamAdapter = new TStreamAdapter(
pMemStream, soReference);
if(SUCCEEDED(pCppWebBrowser->Document->QueryInterface(
IID_IPersistStreamInit, (LPVOID*)&pPSI)))
pPSI->Load(*pStreamAdapter);
}
}
//---------------------------------------------------------------------------
// Anwendungsbeispiel (Eventhandler für das OnKlick-Ereignis des Buttons
// "Html-Code aus der Memo im TCppWebBrowser-Steuerelement anzeigen")
//---------------------------------------------------------------------------
void __fastcall TfrmMain::BtnLoadCodeClick(TObject *Sender)
{
// MemoHtmlSource => TMemo mit dem Quellcode
// TMemoryStream-Instanz erzeugen:
TMemoryStream* pStream = new TMemoryStream();
// Html-Code aus der Memo in den Stream schreiben:
MemoHtmlSource->Lines->SaveToStream(pStream);
// Html-Code im TCppWebBrowser anzeigen:
LoadHtmlFromStream(CppWebBrowser, pStream);
// Aufräumen:
if(pStream) delete pStream;
}
//---------------------------------------------------------------------------
|