TCppWebBrowser zu laufteit erstellen und Event zuweisen



  • hi,

    ich hab in der FAQ gesehen, wie man komponenten zur laufzeit erstellt, und dann events zuweist.

    das wollte ich mit einem CppWebBrowser machen, doch das problem ist, dass ich immer eine fehlermeldung bekomme, wenn ich ein event für OnDocumentComplete zuweise.

    mein quelltext sieht so aus:

    mCppWebBrowser[0]->OnDocumentComplete = DocumentComplete;
    
    ...
    
    void __fastcall TForm1::DocumentComplete(TObject *Sender)
    {
       //bla bla bla
    }
    

    aber ich bekomme immer denhier:

    [C++ Fehler] Unit1.cpp(119): E2034 Konvertierung von 'void (_fastcall * (_closure )(TObject *))(TObject *)' nach 'void (_fastcall * (_closure )(TObject *,IDispatch *,TVariant *))(TObject *,IDispatch *,TVariant *)' nicht möglich
    

    wie kann ich das ganze zum laufen bringen?



  • Hallo

    weil du für deine Funktion die Signatur des TNotifyEvents verwendest. du brauchst aber die Signatur des TCppWebBrowserDocumentComplete :

    typedef void __fastcall (__closure *TCppWebBrowserDocumentComplete)(TObject* Sender, LPDISPATCH pDisp, TVariant *URL);
    

    das heißt deine Funktion sollte so aussehen :

    void __fastcall TForm1::DocumentComplete(TObject* Sender, LPDISPATCH pDisp, TVariant *URL)
    {
       //bla bla bla
    }
    

    Schau dir die benötgen Events mit dem Objektinspektor und der BCB-Hilfe genau an.

    bis bald
    akari


Anmelden zum Antworten