禁用TWebBrowser的滚动可能性

时间:2018-03-16 09:38:43

标签: delphi firemonkey delphi-10.1-berlin

有谁知道,如何禁用Firemonkey iOS / Android应用程序中TWebBrowser控件的滚动可能性?我的目标是获得绝对不会对触摸产生反应的静态元素等等。

1 个答案:

答案 0 :(得分:1)

没有单一的设置或操作可以禁用Fmx.TWebBrowser的所有用户操作。但是有一个功能可以用于您的目的。

我引用的功能是Fmx.WebBrowser.TCustomWebBrowser.CaptureBitmap documented here

  

<强>描述

     

将当前可见的网页捕获为位图。

     

此方法返回一个TBitmap对象,允许您创建,   操作和存储图像在内存中或作为磁盘上的文件。该   使用这种方法的场景如下:   1.调用此方法将可见网页捕获为位图。   2.隐藏TWebBrowser控件。   3.显示位图并覆盖位图顶部的其他组件(如按钮或弹出窗口)。

在您的情况下,您只需隐藏WB并显示位图。

使用以下代码进行测试:

type
  TForm25 = class(TForm)
    Button1: TButton;
    WebBrowser1: TWebBrowser;
    Edit1: TEdit;
    Image1: TImage;
    Timer1: TTimer;
    procedure Button1Click(Sender: TObject);
    procedure WebBrowser1DidFinishLoad(ASender: TObject);
    procedure Timer1Timer(Sender: TObject);
  private
    { Private declarations }
    bmp: TBitmap;
  public
    { Public declarations }
  end;

implementation


procedure TForm25.Button1Click(Sender: TObject);
begin
  WebBrowser1.URL := Edit1.Text;
end;

procedure TForm25.Timer1Timer(Sender: TObject);
begin
  bmp := WebBrowser1.CaptureBitmap;
  Image1.Bitmap := bmp;
end;

procedure TForm25.WebBrowser1DidFinishLoad(ASender: TObject);
begin
  Timer1.Enabled := True;
end;

enter image description here

隐藏WB时,无法操作。

我添加的计时器(1000毫秒)是因为我试图捕获已在OnDidFinishLoad()事件中的图像没有成功。