WebBrowserで表示したHTMLのリンク文字を指定してクリックをさせたいのですが方法をおしえていただけますでしょうか?
VBではlink.InnerTextという便利なものがあるのですがDelphiではどのようにすればよいでしょうか?
Delphi2010
そういった内容は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;
monaa様さっそくのご返信ありがとうございます。
当方でそのまま設置してみた所、
HTMLCollection := HTMLDoc.links;
の部分でエラーがでました
HTMLDoc.linksで検索して他のソースなども見てみましたが
HTMLDoc.links部分でエラーになってしまいます、理解が足りないのは重々承知の上でこの解決方法をお聞きしたく思います。
>当方でそのまま設置してみた所、
>HTMLCollection := HTMLDoc.links;
>の部分でエラーがでました
適切な状況で実行すればエラーは出ないので、
自分の実行状況のどこに問題があるのかを自分で確認すべきでしょう。
スイマセン、自己解決しました、コンテンツ表示までに処理を行ってしまいエラーがでていたようです、ページの読み込みを終わらせてから処理を行うようにしました、このソースはどの部分でリンク対象文をしていするのでしょうか?
エラーは具体的にどのように出ますか?
コンパイルできますか?
実行時にエラーになりますか?
重なりましたね。
Memo1.Lines.Add(HTMLElement.innerText);を
Memo1.Lines.Add(HTMLElement.toString);に
変えてみてください。Memo1のWordWrapをFalseにすると、よく分かると思います。
あとは必要なURLをMemo1.Lines()で読み出して、Webbrowser1.Navigete()すればOK。
ツイート | ![]() |