delphi - 如何检测 Delphi FireMonkey FMX 中的屏幕分辨率变化
问题描述
如何检测 Delphi FireMonkey / FMX 中的屏幕分辨率变化
这个 VCL 解决方案已经发布了 如何在 Delphi 中检测屏幕分辨率变化?
该解决方案适用于 VCL,但我正在寻找 FireMonkey 的解决方案。
解决方案
试试这个代码。首先将 FMX.Platform 添加到使用中:
function ScreenResolutionChanged(old, new: string): Boolean;
begin
if old <> new then
Result := True
else
Result := False;
end;
function getScreenSize: string;
var
ScreenSvc: IFMXScreenService;
ScreenSize: TSize;
begin
if TPlatformServices.Current.SupportsPlatformService(IFMXScreenService,
IInterface(ScreenSvc)) then
begin
Result := Format('Resolution: %fX%f', [ScreenSvc.GetScreenSize.X,
ScreenSvc.GetScreenSize.Y]);
end;
end;
procedure TForm2.Button1Click(Sender: TObject);
var
oldScreenSize, newScreenSize: string;
begin
oldScreenSize := getScreenSize;
Sleep(10000); // Wait 10 Sec
newScreenSize := getScreenSize;
if ScreenResolutionChanged(newScreenSize, oldScreenSize) then
ShowMessage('Screen Resolution Changed ' + #10#13 + oldScreenSize + #10#13 +
newScreenSize)
else
ShowMessage('Screen Resolution NOT Changed ' + #10#13 + oldScreenSize +
#10#13 + newScreenSize);
end;
推荐阅读
- python - 如何删除每行特殊字符串之后的字符串
- arrays - 如何在C中删除数组中的字符串
- swift - 延迟添加注释直到搜索完成
- c# - 在 C# 中重命名和删除文件夹
- javascript - 在 javascript 中使用 Bootstrap 行和列
- javascript - 在 Angular 中处理外部点击引导模式
- python - Python - 编辑文本文件 - 特定案例
- javascript - Jest - 一个函数模拟多个测试文件的文件
- vba - 如何为列中的每个单元格删除单元格中 8 个数字的前 4 个数字?
- google-apps-script - onSelectionChange 在 Google 表格的另一个选项卡上显示选定单元格引用的值