C++ Builder Snippets  

ActiveX-Komponente TCppWebBrowser in eigenen Projekten verwenden:
 
Auf den meisten Windows-Systemen ist heutzutage der Internet Explorer von Microsoft installiert. Diesen können Sie als ActiveX-Steuerelement in Ihren Programmen einsetzen. Seit der C++ Builder Version 5.0 ist der TCppWebBrowser in der Komponentenpalette (Register "Internet") zu finden und ist sogar in der Borland-Hilfe teilweise dokumentiert. Bei den älteren BCB-Versionen musste das Steuerelement mit Hilfe der Menüpunkte "Komponente" -> "ActiveX-Steuerelement importieren" manuell in die Komponentenpalette aufgenommen werden.

Die Implementierung der Browser-Basisfunktionalität gestaltet sich sehr einfach. Die Komponente wird auf einem Formular plaziert und ausgerichtet.

Mit Hilfe der Navigate()-Methode kann eine WWW-Seite oder eine Datei in die Komponente geladen und angezeigt werden:
CppWebBrowser->Navigate(WideString(ComboBoxUrl->Text));
Die Standard-Navigationsfunktionalitäten lassen sich mit Hilfe folgender selbsterklärender Methoden mit jeweils einer Zeile Code implementieren:
//---------------------------------------------------------------------------
// Navigation
//---------------------------------------------------------------------------
CppWebBrowser->GoBack();
CppWebBrowser->GoForward();
CppWebBrowser->Stop();
CppWebBrowser->Refresh();
CppWebBrowser->GoHome();

Ereignis "OnCommandStateChange" kann verwendet werden, um die Navigations-Steuerelement abhängig vom Programmzustand zu de-/aktivieren:
//---------------------------------------------------------------------------
// (De-)/Aktivieren der Navigationssteuerelemente
//---------------------------------------------------------------------------
void __fastcall TfrmMain::CppWebBrowserCommandStateChange(TObject *Sender,
      long Command, TOLEBOOL Enable)
{
  switch (Command)
  {
    case CSC_NAVIGATEBACK:
      ToolButtonBack->Enabled = Enable;
      break;
    case CSC_NAVIGATEFORWARD:
      ToolButtonForward->Enabled = Enable;
      break;
    case CSC_UPDATECOMMANDS:
      ToolButtonStop->Enabled =CppWebBrowser->Busy;
      break;
  }
}

Eine Download-Fortschrittsanzeige kann mit Hilfe des Ereignisses "OnProgressChange" realisiert werden:
//---------------------------------------------------------------------------
// Eventhandler für das OnProgressChange-Ereignis
//---------------------------------------------------------------------------
void __fastcall TfrmMain::CppWebBrowserProgressChange(TObject *Sender,
      long Progress, long ProgressMax)
{
  if(Progress > -1 && ProgressMax > 0)
    lblProgress->Caption = FloatToStrF(Progress * 100.0/ProgressMax,
      ffFixed,15,1) + " % fertig";
  else lblProgress->Caption = "Download beendet";
}
Die Eigenschaft "Busy" gibt an, ob das WebBrowser-Steuerelement gerade eine Lade- oder Navigationsoperation durchführt.

Eigenschaften "LocationURL" und "LocationName" liefern den kompletten Pfad, bzw. den Kurznamen des Angezeigten Dokuments.


Das MSIE-Dialogfeld "Eigenschaften der Seite" kann mit Hilfe folgender Anweisungen angezeigt werden:
TVariant vIn, vOut;
CppWebBrowser->ControlInterface->ExecWB(Shdocvw_tlb::OLECMDID_PROPERTIES,
  Shdocvw_tlb::OLECMDEXECOPT_DODEFAULT, &vIn, &vOut);

Ebenfalls mit Hilfe der ControlInterface->ExecWB()-Methode kann der gesamte Inhalt der Seite markiert werden:
TVariant vIn, vOut;
CppWebBrowser->ControlInterface->ExecWB(Shdocvw_tlb::OLECMDID_SELECTALL,
  Shdocvw_tlb::OLECMDEXECOPT_DODEFAULT, &vIn, &vOut);

Folgende Anweisung hebt die Auswahl wieder auf:
TVariant vIn, vOut;
CppWebBrowser->ControlInterface->ExecWB(Shdocvw_tlb::OLECMDID_CLEARSELECTION,
  Shdocvw_tlb::OLECMDEXECOPT_DODEFAULT, &vIn, &vOut);



Screenshot des Beispielprogramms
Screenshot des Beispielprogramms


  Download BCB6
Projekt-Quellcode
Download
Demo-Exe

© '99-2002 by S. Kreutzmann