在Delphi FireMonkey FMX中检测屏幕分辨率变化可以通过以下步骤实现:
以下是一个示例代码:
unit Unit1;
interface
uses
System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants,
FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs, FMX.Controls.Presentation, FMX.StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
procedure FormCreate(Sender: TObject);
procedure FormResize(Sender: TObject);
private
{ Private declarations }
FMonitor: TMonitor;
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.fmx}
procedure TForm1.FormCreate(Sender: TObject);
begin
FMonitor := Screen.PrimaryMonitor;
end;
procedure TForm1.FormResize(Sender: TObject);
var
Monitor: TMonitor;
begin
for Monitor in Screen.Monitors do
begin
if not Monitor.BoundsRect.Equals(FMonitor.BoundsRect) then
begin
// 屏幕分辨率发生变化
ShowMessage('屏幕分辨率已变化');
// 执行其他操作...
FMonitor := Monitor;
Break;
end;
end;
end;
end.
在上述示例中,我们通过比较当前主显示器的Bounds属性与之前保存的TMonitor对象的Bounds属性来判断屏幕分辨率是否发生变化。如果发生变化,我们可以在ShowMessage语句后执行其他操作。
腾讯云相关产品和产品介绍链接地址:
领取专属 10元无门槛券
手把手带您无忧上云