Einzelnen Beitrag anzeigen

marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#6

Re: Link einer Seite anklicken

  Alt 19. Jan 2006, 18:23
Sorry, aber in meinem vorigen posting war ich wohl nicht ganz bei mir. Hier hast du Code, der funktioniert. Ich habe eine WebBrowser-Komponente auf eine Form gezogen und lade über ein Edit-Feld einen URL mit Frames.

Delphi-Quellcode:
// uses MSHTML;

procedure TWebForm.LoadButtonClick(Sender: TObject);
begin
  with WebBrowser do
    Navigate(Edit.Text);
end;

procedure ShowLinks(ec: IHTMLElementCollection);
var
  v: OleVariant;
  u: IUnknown;
  anchor: IHTMLAnchorElement;
  s: TStrings;
begin
  s := TStringList.Create;
  v := 0;
  while v < ec.length do
  begin
    u := ec.item(v, null);
    if u.QueryInterface(IHTMLAnchorElement, anchor) = 0 then
      s.Add(anchor.href);
    v := v + 1;
// so kommst du übrigens an die Click-Methode:
// with anchor as IHTMLElement do click;
  end;
  ShowMessage(s.Text);
  s.Free;
end;

procedure ShowFrames(fc: IHTMLFramesCollection2);
var
  v: OleVariant;
  win: IHTMLWindow2;
  u: IUnknown;
begin
  v := 0;
  while v < fc.length do
  begin
    u := fc.item(v);
    if u.QueryInterface(IHTMLWindow2, win) = 0 then
      ShowLinks(win.document.links);
    v := v + 1;
  end;
end;

procedure TWebForm.DemoButtonClick(Sender: TObject);
var
  doc: IHTMLDocument2;
begin
  doc := WebBrowser.Document as IHTMLDocument2;
  ShowFrames(doc.frames);
end;
Viel Spaß damit.

marabu
  Mit Zitat antworten Zitat