掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
TEdgeBrowserへの移行について(参考になれば) (ID:150210)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
「あ」 さんが「実際のところ、このコンポーネントはもっと局所的な、限定的な使途を想定しているのかもしれませんが…」と書いているように、 少なくとも、私がDelphiの中でWebBrowserを使用するのは、限定的でかつ必要にかられた場合だけです。 Htmlを表示するだけ、あるいは外部のUrlを表示するだけならば、ShellExecuteでも使って、ChromeやEdgeに渡して表示する方が簡単です。実際に迷わずそうします。 それでも、これからもTEdgeBrowseを使用するのは、「ユーザーがBrowserで何を行ったか」を判定して、次の処理に移るような場合です。 具体的な例として、"地図を表示して、クリックした位置の座標を取り込む"ような場合です。 地図を表示するのは、Pascalでは難しく、Htmlを書くことになります。 地図を表示するだけならば、Delphi側でHtmlをShellExecuteでChromeなどに渡して表示すれば済みますが、 クリックした位置の経度を取り込むには、プログラムでコントロールできる範囲にBrowseを置く必要がありTEdgeBrowseを利用するのが便利だと思います。 移行作業で経験したのは、従来のIEベースのTWebBrowserでは、「webBrowser1.Document as IHTMLDocument2」の解析で、ある程度のユーザーが行ったBrowser上の立ち振る舞いの結果が読み取れたのが、 TEdgeBrowseの.innerHTMLあるいは.outerHTMLあるいは.innerTextでは判定できない等の場面があり、Htmlを書き換えててinnerHTMLで確認がとれるようにするなどの見直しが必要でした。 また、先に書いたようにTEdgeBrowseがプログラムとは独立したスレッドで動くため、どのタイミングで.innerTextを確認すればよいのかを、ApplicationEventsでトリガーを拾うということが出来ず、 Timerで1秒おきに.innerTextを確認する方法に代替して、ほかにもっとうまい方法がありそうだと思いながらも実用的にはユーザーストレスも発生せずに済んでいます。 「あ」 さんへの回答になっていないと思いますが、自作のBrowswerを作るのも面白そうではありますが、実用的にはChromeやEdgeで十分なので深く調べたことはなく、私の知識ではご期待に沿えません。 「mam」さんのページも、移行作業の途中で拝見させていただきました。 ありがとうございました。
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.