如何检索浏览器区域的高度和宽度?
无论手机是否旋转了浏览器视图,我都想始终以横向模式显示一个表单。
如果浏览器处于纵向位置,我想旋转表单(TForm.Angel := 90)。为了强制横向模式。
更新:
这是一张图片,结果应该是这样的:
我找到了一个解决方案,但我对它不是很满意。旋转视图很容易,但是原点不在中心,所以我必须手动纠正它,我不明白为什么需要这种转换。
这是代码:
procedure TForm1.ForceLandscape(aEnabled: Boolean);
var
browserWidth, browserHeight: Integer;
isLandscapeMode: Boolean;
begin
browserHeight := Application.Display.ClientHeight; //BrowserAPI.Window.innerHeight;
browserWidth := Application.Display.ClientWidth; //BrowserAPI.Window.innerWidth;
isLandscapeMode := browserHeight > browserWidth;
if aEnabled and isLandscapeMode then
begin
Angle := 90;
Height := browserWidth;
Width := browserHeight;
end
else
begin
Angle := 0;
Height := browserHeight;
Width := browserWidth;
end;
end;
procedure TForm1.InitializeForm;
begin
inherited;
// this is a good place to initialize components
//Need to put a transform.orign for form rotation (Angle)
var x := trunc(Application.Display.ClientWidth / 2);
var myStyle := TInteger.ToPxStr(x) + ' ' + TInteger.ToPxStr(x);
w3_setStyle(Handle, w3_CSSPrefix('TransformOrigin'), myStyle);
end;