リンクをクリック


尾崎  2010-11-30 19:47:13  No: 39628  IP: 192.*.*.*

WebBrowserで表示したHTMLのリンク文字を指定してクリックをさせたいのですが方法をおしえていただけますでしょうか?
VBではlink.InnerTextという便利なものがあるのですがDelphiではどのようにすればよいでしょうか?
Delphi2010

編集 削除
monaa  2010-12-01 11:05:26  No: 39629  IP: 192.*.*.*

そういった内容はMSHTML.pas内にあります。

procedure TForm1.Button4Click(Sender: TObject);
//uses MSHTML
var
  i:Integer;
  HTMLDoc:DispHTMLDocument;
  HTMLCollection:IHTMLElementCollection;
  HTMLElement:IHTMLElement;
begin
  HTMLDoc:= WebBrowser1.Document as DispHTMLDocument;
  HTMLCollection := HTMLDoc.links;
  for i := 0 to (HTMLCollection.length -1) do
  begin
    HTMLElement := HTMLCollection.item(i, 0) as IHTMLElement;
    Memo1.Lines.Add(HTMLElement.InnerText);
  end;
end;

編集 削除
尾崎  2010-12-01 16:44:10  No: 39630  IP: 192.*.*.*

monaa様さっそくのご返信ありがとうございます。
当方でそのまま設置してみた所、
HTMLCollection := HTMLDoc.links;
の部分でエラーがでました
HTMLDoc.linksで検索して他のソースなども見てみましたが
HTMLDoc.links部分でエラーになってしまいます、理解が足りないのは重々承知の上でこの解決方法をお聞きしたく思います。

編集 削除
 2010-12-01 17:10:25  No: 39631  IP: 192.*.*.*

>当方でそのまま設置してみた所、
>HTMLCollection := HTMLDoc.links;
>の部分でエラーがでました
適切な状況で実行すればエラーは出ないので、
自分の実行状況のどこに問題があるのかを自分で確認すべきでしょう。

編集 削除
尾崎  2010-12-01 17:14:51  No: 39632  IP: 192.*.*.*

スイマセン、自己解決しました、コンテンツ表示までに処理を行ってしまいエラーがでていたようです、ページの読み込みを終わらせてから処理を行うようにしました、このソースはどの部分でリンク対象文をしていするのでしょうか?

編集 削除
Kenny  2010-12-01 17:19:15  No: 39633  IP: 192.*.*.*

エラーは具体的にどのように出ますか?
コンパイルできますか?
実行時にエラーになりますか?

編集 削除
Kenny  2010-12-01 17:37:44  No: 39634  IP: 192.*.*.*

重なりましたね。

Memo1.Lines.Add(HTMLElement.innerText);を
Memo1.Lines.Add(HTMLElement.toString);に

変えてみてください。Memo1のWordWrapをFalseにすると、よく分かると思います。
あとは必要なURLをMemo1.Lines()で読み出して、Webbrowser1.Navigete()すればOK。

編集 削除