TCppWebBrowser ableiten
-
Hallo!
Ich versuche die Klasse TCppWebBrowser abzuleiten, um Funktionalität
hinzuzufügen (siehe Codebeispiel).
Der "Navigate"-Aufruf in der "FormShow"-Methode verursacht einen Fehler
(EAccessViolation). Wenn ich das Attribut "Browser" als Typ TCppWebBrowser
deklariere, funktioniert es, bis auf "Browser->Align = alClient", der Browser
navigiert zu "\1:blank", füllt aber das Formular nicht aus.Header-File:
//--------------------------------------------------------------------------- #ifndef MainH #define MainH //--------------------------------------------------------------------------- #include <Classes.hpp> #include <Controls.hpp> #include <StdCtrls.hpp> #include <Forms.hpp> #include <shdocvw_ocx.h> //--------------------------------------------------------------------------- class TIBrowser; class TMainForm : public TForm { __published: // Von der IDE verwaltete Komponenten void __fastcall FormShow(TObject *Sender); private: // Anwender-Deklarationen public: // Anwender-Deklarationen TIBrowser *Browser; __fastcall TMainForm(TComponent* Owner); }; //--------------------------------------------------------------------------- extern PACKAGE TMainForm *MainForm; //--------------------------------------------------------------------------- class TIBrowser : public TCppWebBrowser { public: __fastcall TIBrowser(TComponent* Owner); }; #endif
cpp-File:
//--------------------------------------------------------------------------- #include <vcl.h> #pragma hdrstop #include "Main.h" //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma resource "*.dfm" TMainForm *MainForm; //--------------------------------------------------------------------------- __fastcall TMainForm::TMainForm(TComponent* Owner) : TForm(Owner) { Browser = new TIBrowser(this); Browser->ParentWindow = Handle; Browser->Align = alClient; } //--------------------------------------------------------------------------- __fastcall TIBrowser::TIBrowser(TComponent* Owner) : TCppWebBrowser(Owner) { //TODO: Hier Ihren Quelltext einfügen } //--------------------------------------------------------------------------- void __fastcall TMainForm::FormShow(TObject *Sender) { Browser->Navigate( WideString("about:blank") ); } //---------------------------------------------------------------------------