Announcement

Collapse
No announcement yet.

Link in Page erkennen

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

  • Link in Page erkennen

    Hallo zusammen,

    gibt es eine Möglichkeit, in einem eigenen Browser in einer geledenen Seite einen Link zu erkennen, so dass man diesen in einem neuen Fenster öffnen kann ?

    Vielen danke für Tips und Ratschläge

    John

  • #2
    Hallo,

    wenn im eigenen Programm eine <b>TWebBrowser</b>-Instanz diese HTML-Seite anzeigt, kann man folgendes machen, um alle Links in dieser Seite zu ermitteln und anzuzeigen:
    <pre>
    uses ActiveX, MSHTML_TLB;
    procedure TForm1.ToolButtonLinksClick(Sender: TObject);
    var
    aHTMLDoc : IHTMLDocument2;
    iCount : Integer;
    aHTMLLink : IHTMLElement;
    begin
    if not VarIsEmpty(WebBrowser1.Document) then
    begin
    aHTMLDoc := WebBrowser1.Document as IHTMlDocument2;
    for iCount := 0 to aHTMLDoc.Links.Length - 1 do
    begin
    aHTMLLink := aHTMLDoc.Links.Item(iCount, 0) as IHTMLElement;
    Memo1.Lines.Append(aHTMLLink.ToString);
    end;
    end;
    end;
    </pre&gt

    Comment


    • #3
      Hallo,

      sorry habe nicht erwähnt, dass ich noch D3 P benutze.
      Sehe ich das richtig, das dort die TWebBrowser-Instanz nicht vorhanden ist ?
      Wie geht das unter Delphi 3 P ?
      Danke
      Joh

      Comment


      • #4
        Hallo John,

        ich bin mir nicht mehr sicher, ob in D3 die ActiveX einbindung schon vorhanden ist, aber ich hoffe mal. wenn ja, kannst du einfach die webbrowser komponente in der activex bibliothek einbinden und sie dann einfach auf dein formular setzen. dort hast du dann alle events die du brauchst. der nachteil ist nur, dass die komponente halt IMMER installiert sein muss, d.h. also auch immer der inet-explorer installiert sein muss. wenn du nur normaler webseiten anzeigen willst und ein wenig geld für eine komponente ausgeben willst, die eben solche sachen nicht erfordert schau mal auf www.turbopower.com oder www.pbear.com, die haben nämlich browser komponenten, die keine solchen installationen erfordern.

        falls du noch fragen hast schreib's bitte auch per mail, weil ich nicht so oft in dieses forum schaue.

        Gruß, marti

        Comment


        • #5
          Hallo,

          ich bekomme etliche Fhlermeldungen, wenn ich die Unit MSHTML_TLB einbinde.
          Delphi erkennt dort einiges nicht.
          Woran liegt das ?
          Bei mir ist IE5.5 installiert.

          Danke
          Joh

          Comment


          • #6
            Das ist _fast_ normal, ich habe das Spiel schon durch (damals mit IE4). In der generierten Unit waren soviele Vorwärtsreferenzen (Verweise auf Typen, die erst weiter unten deklariert werden), daß ich einen Tag brauchte, nur um sie kompilieren zu können.<p>

            Gruß Nic

            Comment

            Working...
            X