0

私は数週間前に論理的な説明がないように見える問題に遭遇しました。AlphaControlsとフォームに配置されたWebBrowserコンポーネントを使用して、Delphi2007でアプリケーションを構築しています。TWebBrowserWebからバナーをフェッチし、UIに表示します。悪いことに、バナー付きのフォームが表示されるとすぐに、ブラウザがフォームの外側のデスクトップの左上隅に表示されているときに、「OLEコントロールウィンドウハンドルを取得できませんでした」というメッセージが表示されます。

私は基本的にそれを理解するために何かを試みてきましたが、デバッガーは何が起こっているかについてあまり多くの情報を提供しません(それが私が得るすべてです:$770C4B32での最初のチャンス例外。EOleErrorメッセージ付きの例外クラス'OLEコントロールウィンドウハンドルを取得できませんでした'。project1.exe(3700)を処理します)。面白いことTWebBrowserに、新しいプロジェクトのForm1でも同じことが問題なく機能します。

それについての考えは大歓迎です。

4

2 に答える 2

0

html フォームが閉じられていることが原因です。ベンダーのフォーラムには、問題を解決するコードがいくつか掲載されています。 http://www.bsalsa.com/forum/showthread.php?t=255

OnWindowClosing イベントで Cancel を True に設定し、メインの Web ブラウザーの場合は空のページに移動します。Web ブラウザがポップアップ ウィンドウの場合、EWB がオンになっているフォームを閉じることができます。

procedure TForm2.EmbeddedWB1WindowClosing(ASender: TObject; IsChildWindow: WordBool; var Cancel: WordBool);
begin
  Cancel := True;
  (ASender as TEmbeddedWB).GoAboutBlank;
end;
于 2012-12-05T21:32:47.097 に答える