这是一个在VCL应用程序中托管TWebBrowser
控件的简单程序:
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;
type
TForm1 = class(TForm)
procedure FormCreate(Sender: TObject);
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
var
Browser: TWebBrowser;
begin
Browser := TWebBrowser.Create(Self);
TOleControl(Browser).Parent := Self;
Browser.Align := alClient;
Browser.Navigate('http://www.bbc.co.uk/');
end;
end.
object Form1: TForm1
Left = 0
Top = 0
Caption = 'Form1'
ClientHeight = 587
ClientWidth = 928
Color = clBtnFace
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'MS Sans Serif'
Font.Style = []
OldCreateOrder = False
OnCreate = FormCreate
PixelsPerInch = 96
TextHeight = 13
end
当我运行程序时,我希望能够使用箭头键向上/向下/向左/向右滚动页面。但是,这些键没有任何效果。我可以使用向上翻页和向下翻页,但不能上/下/左/右。
我使用WebBrowser
控件在.net WinForms应用程序中重新创建了等效的应用程序,行为完全相同。这似乎暗示了潜在控制的问题。
我可以做任何事情让这些钥匙工作吗?或者这只是一个失败的原因?
答案 0 :(得分:4)
我相信表单将这些键解释为对话框导航键。所以我更改了控件对@Override
public void onAttach(Activity activity) {
super.onAttach(activity);
mActivity = activity;
}
消息的响应,以请求控件处理这些键:
$scope.pay_holiday_days = (parseInt($scope.reached_holiday_days) + pending_holiday_days) * $scope.daily_base_salary;
这似乎可以解决问题。