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") );
    }
    //---------------------------------------------------------------------------
    

Anmelden zum Antworten