掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
動的にバグを回避する (ID:19148)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
にしのさん、ありがとうございます。 >TTabSheetを継承して、property Browser: TWebBrowserを追加したものを使用。 クラスの継承等、色々調べてみたのですが、わからなくて色々悩んでいたのですが、上記のActivePageを参考に以下のように書き換えてなんとか解決しました。 procedure TForm1.MsgHandler(var Msg: TMsg; var Handled: Boolean); var iOIPAO: IOleInPlaceActiveObject; Dispatch: IDispatch; twb:TWebBrowser; begin twb := TWebBrowser(Form1.PageControl1.ActivePage.Controls[0]); if twb = nil then begin Handled := False; Exit; end; Handled := (IsDialogMessage(twb.Handle, Msg) = True); if (Handled) and (not twb.Busy) then begin Dispatch := twb.Application; if Dispatch <> nil then begin Dispatch.QueryInterface(IOleInPlaceActiveObject, iOIPAO); if iOIPAO <> nil then begin FOleInPlaceActiveObject := iOIPAO; end; end; if FOleInPlaceActiveObject <> nil then begin if ((Msg.message = WM_KEYDOWN) or (Msg.message = WM_KEYUP)) and ((Msg.wParam = VK_BACK) or (Msg.wParam = VK_LEFT) or (Msg.wParam = VK_RIGHT)) then else FOleInPlaceActiveObject.TranslateAccelerator(Msg); end; end; end; 下位オブジェクトに対するキャストの方法を知らなかったので、にしのさんのソースが大変参考になりました。 せっかく提示いただいたソースを使う事ができなくて申し訳ありませんでした。。
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.