掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
TWebBrowserとTDBGrid (ID:44759)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
テストしていただき、ありがとうございます。 結論から言いますと、 Delphi XE2以降の場合、FirstTimeNaviComp2メソッドのパラメータ、var URL: OleVariant の部分を、 const URL: OleVariant のように、var を const に書き換えてください。 ※なお、いま試案中の方法ではOnNavigateComplete2を使わず、このメソッドも不要になる…はず。 以下はチラシの裏です。 ----------------------------------------------------------------------------------------- >パラメータが足りないとエラーが出ます。 悩みました。考えても分からないので、XE4 トライアル版をインストールしてみました \(^o^)/ すると…コンパイルエラーが1個発生。 >[dcc32 エラー] Unit2.pas(50): E2009 型に互換性がありません : パラメータリストが異なります よくよくOnNavigateComplete2のイベントハンドラ(TWebBrowserNavigateComplete2)を見比べますと… ■Delphi 6 Personal(SHDocVw_TLB.pas) procedure TForm1.WebBrowser1NavigateComplete2(Sender: TObject; const pDisp: IDispatch; var URL: OleVariant); ■Delphi XE4(SHDocVw.dcu) procedure TForm1.WebBrowser1NavigateComplete2(ASender: TObject; const pDisp: IDispatch; const URL: OleVariant); パラメータが微妙に、var → const に変わってる。 ひどすぎるよ、こんなのってないよ! そこで、いつから変わったのか調べました。 SHDocVw.TWebBrowserNavigateComplete2 - XE オンラインヘルプ http://docwiki.embarcadero.com/VCL/XE/ja/SHDocVw.TWebBrowserNavigateComplete2 >C++ typedef void __fastcall (__closure *TWebBrowserNavigateComplete2)(System::TObject* ASender, const _di_IDispatch pDisp, System::OleVariant &URL); SHDocVw.TWebBrowserNavigateComplete2 - XE2 オンラインヘルプ http://docwiki.embarcadero.com/Libraries/XE2/ja/SHDocVw.TWebBrowserNavigateComplete2 >C++ typedef void __fastcall (__closure *TWebBrowserNavigateComplete2)(System::TObject* ASender, const _di_IDispatch pDisp, const System::OleVariant &URL) ※Delphiのコードはなぜか記載なし。 C++のコードはほとんど理解してませんが、XE2から const が付いたのでそこから変更ではないかと。 D2009以前はどれも var であることを確認、D2010はヘルプが変なので不明ですが、やはり var でしょう。 http://docs.embarcadero.com/products/rad_studio/delphiAndcpp2009/HelpUpdate2/EN/html/delphivclwin32/SHDocVw_TWebBrowserNavigateComplete2.html http://docwiki.embarcadero.com/VCL/2010/ja/SHDocVw.TWebBrowserNavigateComplete2 もしや…と思ってOnBeforeNavigate2も調べると、やはり const に変わってる。 procedure TForm1.WebBrowser1BeforeNavigate2(ASender: TObject; const pDisp: IDispatch; const URL, Flags, TargetFrameName, PostData, Headers: OleVariant; var Cancel: WordBool); これじゃURLが書き換えられない…リダイレクトさせたい場合はどうすれば…? ヘルプの記述「この値を変更すると…」とも矛盾するし、一体全体どうなっているんでしょうね??
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.