いつも参考にさせております。
今回TWebbrowserコントロールについて質問させてください。
環境はwindows8.1 Delphi 6 Personalです。
最近このTWebBrowser(Microsoft Internet Controls Version1.1)を
使った自作アプリでGoogleMapサイトなどで
「対応していないIEです」と警告され表示できないサイトがあります。
C#の記事ですが デフォルトの状態では
WebBrowserコントロールはInternet Explorer 7として動作します。
とあります。
http://www.ipentec.com/document/document.aspx?page=csharp-change-webbrower-control-internet-explorer-version
いろいろなIEのバージョンをセレクションできるのを初めて知りました。Delphiはどうなんでしょうか。
しかしこれはアプリ側を改善したことにならないと思いますが。
わたくしのdelphiは古いのだから致し方ありませんが、
新しいIEのバージョンで作動するようにできるのでしょうか。
Delphi側で解決方法がありましたら教えていただけませんか。
同一マシンの TWebBrowserとInternet Explorer 8のレンダリングに違いは出るものなのでしょうか?|freeml byGMO
http://www.freeml.com/delphi-users/908/
07_IE コンポーネントのレンダリングの互換モードを変更
http://mrxray.on.coocan.jp/Delphi/plSamples/944_plGooleSearch.htm#07
通りすがり さんお返事ありがとうございます。
>同一マシンの TWebBrowserとInternet Explorer 8のレンダリングに違いは出るものなのでしょうか?
例えばリンクを張ったイメージをIEで横5列にたくさん張ってあるようなとき
TWebBrowserでは4列だったり1列だったりします。
(でもfirefoxでは6列だったりします。IEと違う場合もあります)
>07_IE コンポーネントのレンダリングの互換モードを変更
はC#の例のDelphi版でしょうか。
説明不足でしたが、この質問では、
自分のpcを修正して正しく表示したいのではなく
そのアプリを他人に配布した先で新しいヴァージョンで表示できる
アプリの改善方法がないかを知りたいのですが、
多分この件で参考サイトを見たことがないので、
みなさん気にもしないか、使っていないか、新しいDelphiでは問題ないか
だと思っていました。
多分ためでしょうね。お手数かけました。
ありがとうございました。
解決とさせていただきます。
?プログラムを実行対象のPCのレジストリに登録すればいいのでは?
たとえばインストーラでとか、プログラム自身で実行時の最初でとか。それで描画の互換性が得られるのかどうかまではわかりませんが…。
2008/3/18 - IE8 の WebBrowser コントロールのレンダリング モード
https://msdn.microsoft.com/ja-jp/ie/cc787976.aspx
を見る限りでは、TWebBrowser内で動作するIEのレンダリングモードはレジストリ経由で指定しろ、というのがMSの説明ですよね。
あと捨て台詞みたいな書き込みは止めたほうがいいと思います。
通りすがりさん申し訳ありません。本日訪問したら返事があったのでみました。
そのようなつもりはありませんでした、大変失礼しました。
じつはこの件について何か月も悩んでいました。
そして解決できない自分が腹立たしく思っていました。
話題にもならないので、皆さんどうしているのかなというのが
正直な気持ちでした。
(なにかプロパティがあって切り替えると簡単に解決できるのではとか)
正直この質問をすることが恥ずかしいと考えていました。
拙作のアプリを使用中の友人たちは古いpc、新しいpc、windows 10にグレードアップするかたもいる
必ずしもそのOSに対応する最新のIEではないものを
インストしていたりしているものですから
個々に自分でレジストリ設定してくれとは言えません。
やはり
OSやIEを分析しながらプログラムでレジストリを設定するほかないのかなと
考えていました。
そろそろ自分もwindows10にアップグレードしなくてはと思いもしますが
はたしてこのコントロールは従来道理動くのでしょうか。IEはなくなったと
聞いているし。そんなこんなで
そのまえに思い切って聞いてみようと思った次第です。
そのようなわけでやはりそれしかないのかとおもった気持ちで返事をしました。
捨て台詞のつもりは毛頭ありませんが、気分を害されたのは事実
お詫びいたします。
今後ともご指導をよろしくお願いいたします。
すみませんでした。では。
特に気分を害したわけではないので…ただたった一人がてきとーなことを書いただけで勝手に納得して
話を打ち切ってしまうのもどうかと思っただけです。
Windows側もOS毎にサポートすべきIEのバージョンを1つだけに限定しましたから、実行時にレジストリに
エントリがなければOSから推定されるIEのバージョンを書き込んでユーザにプログラムの再起動を促す、
ということでよいのではないでしょうか(実際にはVistaだけIE9で残りはIE11というだけです)。
Windows 10でもEdgeはまだ使い物にはならないようですし、互換性のことを考えてもWindows 7/8.1の
サポート終了まではプログラムに組み込むwebブラウザとしてはIE11が当面使われていくのでしょう。
通りすがりさんすみませんしばらく見ていませんでした。
貴重な情報ありがとうございました。
Win10にアップグレードするメリットが自分にあるか検証中です。
>Edgeはまだ使い物にはならないようですし・・・小生の愚痴↓
ええっTWebBrowserはどうなるんでしょうか
最近のMSさんどうかしたんではないですか?
「互換モード??無効化??をどうとか??」
普通のユーザーが語彙が解るのかな?理解できないのは自分だけ?
サイトを追加したり削除したり、イントラネットサイトを互換表示で表示
Microsoft互換性リストの使用・・・
意味が解らないので何十年来はじめてIE以外のWebブラウザに乗り換えました。
ありがとうございました。では。
ツイート | ![]() |