Announcement

Collapse
No announcement yet.

TWebBrowser: OnNavigateComplete überschreiben

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • TWebBrowser: OnNavigateComplete überschreiben

    Ich möchte eine TWebbrowser-Komponente mit zusätzlichen Funktionen ausstatten und daher das NavigateComplete-Ereignis überschreiben - doch die Komponente weigert sich standhaft. Wenn ich folgenden Code einbaue:

    procedure NavigateComplete2(Sender: TObject;
    const pDisp: IDispatch; var URL: OleVariant); override;

    dann meldet Delphi, dass der "NavigateComplete2" nicht in der Basisklasse gefunden habe - das kann aber doch eigentlich nicht sein. Was mache ich falsch?

  • #2
    Hallo,

    hinter TWebbrowser steckt nur eine VCL-Wrapperkomponenten für das native COM-Objekt des Internet Explorers. Somit ist NavigateComplete eine <b>Interface-Methode</b> des COM-Objekts. Die VCL-Wrapperkomponente schaltet sich über <b>FindConnectionPoint</b> auf die Connection Points des COM-Objekts auf und implementiert nur die Interface-Methoden (die Methoden werden nur im Interface des Sink-Objekts des Explorers deklariert).
    &#10

    Comment


    • #3
      ... was ich leider überhaupt nicht verstehe. Aber, sei's drum: Im Klartext bedeutet das doch, dass man die Methode nicht überschreiben kann - oder gibt's doch eine Möglichkeit, sich in einer abgeleiteten Komponente an NavigateComplete dranzuhängen

      Comment


      • #4
        Hallo Herr Kosch,

        es geht wieder mal alles ganz einfach - ich hab's durch herumprobieren herausgefunden:

        man deklariert im protected-Abschnitt irgendeine Funktion XYNavigateComplete mit den entsprechenden Parametern und fügt im Create-Abschnitt die Zeile hinzu:

        OnNavigateComplete2 := XYNavigateComplete

        das war's - und schon lässt sich die neue Funktion XY... wundervoll mit eigenen Routinen "überschreiben&quot

        Comment

        Working...
        X