WebBrowserを使ってWebページを表示させてます。
FormコンポーネントにPanelコンポーネントを貼り付け、その上にWebBrowserコンポーネントを貼り付けています。
Webページは表示されるのですが、Panelコンポーネントの分しか表示(スクロールバーが表示されず)できないので、困っています。
それらしきプロパティが見つからないのですが、どのプロパティをTrueにすればスクロールバーが表示されるのでしょうか?
WebBrowser1.Align := alClient;
もちろんオブジェクトインスペクタ画面(GUI画面)で設定可能です。
monaaさん回答ありがとうございます。
おっしゃるとおりに設定してみたのですが、横方向のスクロールバーは出るのですが、縦方向が出ません。
とにかく新規作成して何も貼り付けずFormCreateに下記コードをコピペして下さい。
XE2で確認しました。
これでスクロールバーが出なければ環境が変です。
usesは適宜変更よろしくです。
unit Unit1;
interface
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.OleCtrls, SHDocVw, Vcl.ExtCtrls;
type
TForm1 = class(TForm)
procedure FormCreate(Sender: TObject);
private
{ Private 宣言 }
public
{ Public 宣言 }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
var
Panel:TPanel;
Browser:TWebBrowser;
begin
Panel := TPanel.Create(Self);
Panel.SetBounds(30,30,130,130);
Panel.Parent := Self;
Browser := TWebBrowser.Create(Self);
Browser.Align := alClient;
TOleControl(Browser).Parent := Panel;
Browser.Navigate('http://google.com');
end;
end.
参考までに、Googleのサイトを表示させた状態で、Formを極端に小さく
したらどうなりますか?(目安として、100px×100pxくらいまで)
自動的にスクロールバーが出てきませんか?
monaaさん、あさん、ありがとうございます。
いろいろ試していたら、うまく表示されるようになりました。
monaaさんのコードで試してみようとしたのですが、
エラー(赤い波線)がいっぱい出てしまって、動くようにする方法が分からなくって...
panelのAlignをalCustomにすることでうまくいったようです。
勘違いでした。
まだ、うまくいっていません。
少し進歩はしたのですが。
WebBrowserの右と下にスクロールバーが表示されるようになりました。
ただ、ウインドウを最大化するとpanel2(この下にWebBrowserがあります)は大きくなりますが、WebBrowserは元の大きさのままです。
ところでレイアウトのAlignと表示のAlignはどう違うのでしょうか?
いろいろと試していたら、今度こそ(たぶん)うまく表示されるようになりました。
どうもありがとうございます。
ツイート | ![]() |