LoginSignup
1
1

More than 5 years have passed since last update.

[C++Builder 10Seatle] TWebBrowserコンポーネントで起きた3つの困ったこと

Last updated at Posted at 2016-09-09

はじめに

 タイトルどおり、めっちゃ困ったことが3つありましたので、困ったこととその対処法を残しておきます

Visible

 TWebBrowserには一応Visibleプロパティがありますが、これは意味がありません。
 もし隠したり表示したりするのであれば、他の手段が必要です。

 → 対策)SetBoundsで画面外に逃がすことにしました。

01.cpp
WebBrowser->SetBounds(-100, -100, 1, 1);

Parent

 Parentプロパティはdi_IDispatch型になっていて普通にTForm型を入れることはできません。
 static_castしてもきっと怒られて終わります

 → 対策)TWinControlでキャストしましょう

02.cpp
static_cast<TWinControl*>(MyForm->WebBrowser)->Parent = SecondForm;

SetBounds(x, y, width, height)

 難関です。なんとこいつ、他のコンポーネントと動きが違います。笑えません。
 どこが違うかというとwidthかheightに0以下を入れて関数を動かしてしまうと、
 動かしたが最後、二度と出てきません。マジかよって思いますよね。マジです。

 もしそんなことないって方教えてください。
 当方の環境は Win10 C++Builder 10Seatleです。

 → 対策)WidthとHeightは1以上の整数にしましょう

03.cpp
WebBrowser->SetBounds(-100, -100, 1, 1);

結論

 TWebBrowserを使うのはやめましょう。
 使ってもTCppの方がいいです。
 それでもスクロールバー消せませんしね。何じゃそりゃ。
 もうこりゃWebKitとかから自力でビルドした方がいいんでしょうね。

追記

 C++Builder XE4でも再現を確認いただきました

1
1
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1