首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在Delphi FireMonkey FMX中检测屏幕分辨率变化

在Delphi FireMonkey FMX中检测屏幕分辨率变化可以通过以下步骤实现:

  1. 使用TForm类创建一个新的窗体。
  2. 在窗体的OnCreate事件中,添加一个TMonitor类的全局变量,并将其初始化为当前主显示器的TMonitor对象。
  3. 在窗体的OnResize事件中,使用TScreen类的Instances属性获取当前所有显示器的TMonitor对象列表。
  4. 遍历TScreen.Instances列表,检查每个TMonitor对象的Bounds属性是否与之前保存的TMonitor对象的Bounds属性相同。
  5. 如果Bounds属性不同,则表示屏幕分辨率发生了变化。
  6. 在屏幕分辨率变化时,可以执行相应的操作,例如重新布局界面、重新加载资源等。

以下是一个示例代码:

代码语言:txt
复制
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语句后执行其他操作。

腾讯云相关产品和产品介绍链接地址:

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

【图表组件套件】上海道宁为开发人员提供Steema下载、试用、教程

图片TeeChart是Steema主要产品,Delphi的图表领导者,在业界享有盛誉,是Embarcadero(原Borland)选择捆绑在Delphi、C++和HTML5 Builder RAD Studio...IDE的原生VCL图表工具。...图片02、响应式图表TeeChart将缩放并适合任何屏幕尺寸。如果您正在构建仪表板,您可以在每个仪表板面板上放置多个可调整大小的图表。FireMonkey框架将处理不同平台的大部分变化。...05、使用数据可视化工具构建信息仪表板这个Delphi FireMonkey项目提供了一个包含图表、网格和地图的仪表板报告。...图片三、TeeGrid VCL简介Delphi VCL & FMX 的网格组件为您的 RAD Studio 项目提供了一个非常快速的网格。

3K10

Delphi XE5的新增内容

Delphi XE5的新增内容 Delphi XE5是所有Delphi开发人员的必须备升级,并且是来自Embarcadero的获奖的、多设备应用开发解决方案的最新版本。...X 的时间选择器控件 针对Android、iOS和OS X 的通知中心组件 Android、iOS、Windows和OS X 上内置搜索过滤可用于 TListView 在Android和iOS 上滑动屏幕就可以删除...针对具有多种设备类型、分辨率、和方向的 iOS 用户界面,使用完全可视化设计器。...可视化的 LiveBindings 增强的FireMonkey 样式、音频/视频和 3D Delphi XE2 针对Windows 的64位 Delphi编译器 FireMonkey应用平台 – 利用一个代码库创建多平台...的64位 Delphi编译器 FireMonkey应用平台 – 利用一个代码库创建多平台、多设备的应用 用FireMonkey创建Windows 和Mac OS X 桌面应用 DataSnap移动连接器

2.2K40
  • DELPHI XE5开发WEB服务器及安卓手机客户端

    Xe5开发web服务端和手机客户端 时间:2013-9-18 17:09:45 点击: 6456 Delphi xe5作为最新开发利器,就类似当年的DELPHI,功能强大,快发速度快,把VS2012...的provider ClientDataSet1: delphi的我最喜欢的cds 2、数据库的连接 首先用 FDConnection1 连接sqlserver服务器,在控件上邮件...我们把供手机端调用的web服务完成,接下来实现手机端调用webservices获取数据 1、新建firemonkey mobile application 2、选择blank application...3、这里选择分辨率,我用的手机是三星的p3100,没别的优点 就是大,7寸的屏,我女儿管这个叫平板手机 O(∩_∩)O~ 4、界面布局摆放如下: 5、绑定数据集 xe5使用livebingding...先在clintdataset添加字段 依次添加 code ,name ,py_code 三个字段,然后选中grid,点击 ,然后将dataset拖拉到grid:如图 当然,您要选择clientdataset1

    4.5K40

    DELPHI自适应窗体的实现

    前言 我们知道,屏幕分辨率的设置影响着表单布局,假设你的机器上屏幕分辨率是800*600,而最终 要分发应用的机器分辨率为640*480,或1024*768,这样你原先设计的表单在新机器上势必会 走样。...实现方法 一、根据新的分辨率自动重画表单及控件   先在表单单元的Interface部分定义两个常量,表示设计时的屏幕的宽度和高度(以像素为 单位)。...在表单的Create事件先判断当前分辨率是否与设计分辨率相同,如果不同,调用表 单的SCALE过程重新能调整表单控件的宽度和高度。...二、将机器分辨率更改为设计时的分辨率   这种方法不改变表单本身,而是将屏幕分辨率更改为与表单设计时用到的分辨率相同。...设计时宽度常量 和高度常量的定义方法一。

    1K40

    Win7系统电脑屏幕分辨率无法调节更改的解决方法

    一般重装完系统时,我们都会调整屏幕分辨率,但是有用户反映,自己的Win7系统电脑却无法修改屏幕分辨率这是怎么回事呢?Win7系统电脑屏幕显示模糊却无法修改分辨率该如何解决?...下面请看Win7系统电脑屏幕分辨率不能修改的解决方法。 一:查看电脑分辨率模式是否支持 1、首先要查看屏幕分辨率模式是不是支持。查看方法,先在桌面空白处右键,选择菜单的“屏幕分辨率”。...10、如果之前没有备份,也没有驱动光盘,就只能到网上下载相应的驱动,但是,并不是所有人都懂得如何手动更新,以及如何在网上找到合适的驱动,这时,最好用软件来帮忙。...驱动精灵,从网上下载,并安装到电脑,启动软件后,按“立即检测”。 11、检测完后, 会有很多更新或修复项目,这里只要更新驱动,所以点击“查看所有驱动程序”。...注意事项: 1、若因为内置屏幕与外接显示器最大分辨率不同,可通过“扩展”显示的方式,对两个显示器的分辨率进行单独设置。

    3K40

    利用开源工具TempestSDR实现屏显内容远程窃取

    由于所有电子设备都会向外发射一些无意的射频信号,通过对这些信号的捕捉分析,可以将其中的数据进行恢复显示,可以捕捉电脑显示屏发出的射频信号,进而恢复显示出当前电脑屏幕的显示内容。...(这里,要感谢RTL-SDR.com读者 ‘flatflyfish’向我们提供的如何在Windows系统上实现TempestSDR的安装运行指导)。...要使用该软件,你还应该了解目标显示器的分辨率和刷新率。但是如果你没有方便检测分辨率和帧速率的自相关图,只需点击波峰即可。另外,你还需知道显示器的无意发射频率。...如果这些你都不确定,则可以浏览SDR#寻找决定屏幕图像显示变化的干扰峰值,例如下图中,我们展示了具体的干扰情形。...如果太过偏离,则需重新选择屏幕分辨率进行重置。 我们测试的最理想效果是,利用Airspy窃侦到的有DVI连接的19英寸老式DELL显示器。

    1.9K50

    AI加持的竖屏沉浸播放新体验

    爱奇艺也是在做这样横竖视频播放的拓展,所以如何在竖屏状况下播放现有的存量视频,对内容提供者应该提供什么样的视频,都是需要解决的问题。 ?...在云端有几个主要的工作点,场景的分割、目标检测、显著性检测、人脸检测等,它们主要是做内容分析,分析当前画面的焦点位置。...目标检测,我们现在运用的算法对常见的80类物体敏感,检测当前画面的物体之后,会做一个目标筛选,我们也对此制定了规则,当前目标的物体位置信息是否居中;物体尺寸大小,我们会认为尺寸越大吸引人眼球的可能性就越大...稳像策略,就是平滑相邻帧微小的位移;第二个点就是连续变化,一直在平移的这种做了一个拟合,拟合的目的是为了减小AI焦点文件的数据总量。...在APP真正落地的时候,一定会出现的一种状况是,如果按照当前AI算法计算的焦点不一定是当前用户感兴趣的人物时,用户可以用手势在屏幕滑动,将聚焦位置切换成画面的其他人物。

    59920

    AI加持的竖屏沉浸播放新体验

    爱奇艺也是在做这样横竖视频播放的拓展,所以如何在竖屏状况下播放现有的存量视频,对内容提供者应该提供什么样的视频,都是需要解决的问题。...在云端有几个主要的工作点,场景的分割、目标检测、显著性检测、人脸检测等,它们主要是做内容分析,分析当前画面的焦点位置。...目标检测,我们现在运用的算法对常见的80类物体敏感,检测当前画面的物体之后,会做一个目标筛选,我们也对此制定了规则,当前目标的物体位置信息是否居中;物体尺寸大小,我们会认为尺寸越大吸引人眼球的可能性就越大...稳像策略,就是平滑相邻帧微小的位移;第二个点就是连续变化,一直在平移的这种做了一个拟合,拟合的目的是为了减小AI焦点文件的数据总量。...在APP真正落地的时候,一定会出现的一种状况是,如果按照当前AI算法计算的焦点不一定是当前用户感兴趣的人物时,用户可以用手势在屏幕滑动,将聚焦位置切换成画面的其他人物。

    82660

    浅淡HTML5移动Web开发

    - device-height 设备屏幕的高度 - orientation 检测屏幕处于横屏还是竖屏 - aspect-ratio 基于视口的宽高比例 - device-aspect-ratio 基于设备屏幕的宽高比...- color 颜色的位数,min-color:32 匹配设备是否有32位或以上的颜色 - color-index 设备的颜色索引表的颜色数 - monochrome 检测单色振缓冲区每像素使用的位数...为非负数,monochrome:3 - resolution 检测屏幕或打印机的分辨率min-resolution:300dpi(dpi后面会介绍),也可以是每厘米像素点的度量值,min-resolution...讲了这么多,有人可能会疑惑为什么这些都不是用在CSS的?别急,慢慢来,现在就介绍如何在样式运用,按照上述屏幕分辨率的四种划分,我们可以看到基本可以舍弃ldpi了。 /* 中分辨率屏幕 */ ?.../*高分辨率屏幕*/ ? /*超高分辨率屏幕(传说中的Retina屏)*/ ? 上面就是在css的用法,把我们需要的css代码包含在大括号中就能用了,是不是很方便的样子%>_<%。

    2.4K50

    你的 App 为何在 iPhone 12 上显示异常,而别人的不会?

    我以为只是宽高变化会导致字号、间距的变化,然而更严重的问题是我们判断是否是刘海屏使用了如下代码(这种写法是不完善的,但我相信很多 App 里都是这么写的); self.is_iphonex = (SCREEN_MAX_LENGTH...在新 iPhone 12 系列屏幕高度分别为: Device Retina 屏幕点(pt) 物理像素 (px) iPhone 12 Pro Max 6.7″ 3X 926 x 428 2778 x...回想几年前当 iPhone X 出现时,旧的 App 是如何在 iPhone X 上表现的—— App 运行在屏幕的中间,上下部分都留有黑边,表现如我找到网络图: ? 这里引出所谓的兼容模式。...真实 iPhone 11 Pro 的顶部安全距离是 44,底部安全距离是 34;而 iPhone 11 Pro Max 运行在放大显示(Display Zoom)下,虽然屏幕分辨率和 iPhone 11...如从 ViewController.view 获取时,时机太迟了,需要从更早创建的地方获取 keyWindow,: + (CGFloat)topOffset{ if (@available(

    2.4K30

    某查询和短信轰炸样本的分析

    理论基础 1、木马根据分类可以分为: 1.1、远控木马:能够远程控制感染主机,实现远程监控、文件操作、网络攻击等功能; 1.2、密码盗取木马:通过记录用户输入的键盘记录或屏幕截图方式窃取用户的密码或账号信息...3、情报的IOC往往是域名、IP、URL形式(有时也会包括SSL证书、HASH等形式),这种IOC可以推送到不同的安全设备NGFW、IPS、SIEM等,进行检测发现甚至实时阻截。...威胁情报最普遍的使用场景,就是利用IOC情报( Indicators of Compromise)进行日志检测,发现内部被攻陷的主机等重要风险。...通过下图工具查看到,该样本是Delphi语言开发的。相信它是80后才能接触到的开发语言,所以使用这个语言基本是上年纪了,delphi在一些早期发展起来的公司的内部工具或系统还会存在低维开发。...样本的一个服务器ip:124.222.126.226地址,它也是被收录为威胁信息。

    29110

    H5移动端适配原理及方案

    移动端页面需要具备响应式设计,以适应不同大小和分辨率的移动设备屏幕。使用流体网格布局、弹性图片和媒体查询等技术,确保页面在各种设备上都能良好显示。...CSS 中最常用最基础的单位是 px 像素(Pixel),px 是相对于想时期屏幕分辨率而言的。...媒体查询媒体查询可以让我们根据设备显示器的特性(视口宽度、屏幕比例、设备方向:横向或纵向)为其设定 CSS 样式,媒体查询由媒体类型和一个或多个检测媒体特性的条件表达式组成。...媒体查询可用于检测的媒体特性有 width 、 height 和 color (等)。使用媒体查询,可以在不改变页面内容的情况下,为特定的一些输出设备定制显示效果。...同样的,对于屏幕设备同样可以使用 min/max 对应参数, min-device-width 或者 max-device-width,例如:<!

    33310

    为什么小程序能适配不同机型?因为微信做了这个

    这就意味着,小程序会在不同的设备上运行,但不同设备的分辨率会有差异。 在小程序,如何在分辨率不同的设备上保证视觉元素的正常显示?这就需要名为 rpx 的动态尺寸单位。...这个单位通过对不同屏幕分辨率进行调整和适配,保证相同元素在不同屏幕上的展示是正常的。...动态单位与 px 换算的基本概念是:选择一个分辨率作为基准,在基准分辨率,一个像素点显示有多长,在其他屏幕上会显示同样长度。...没错,如果将微信小程序放到平板电脑上运行,屏幕的宽度 px 值有可能会变化(横竖屏、分屏模式等等)。这时候,再以宽度为基准,就会出现元素显示不正确的问题。...dp 是以屏幕分辨率为基准的动态单位,而 rpx 是以长度为基准的动态单位。

    3.3K40

    基于QoE的实时视频编码优化:低功耗,低延时,高质量

    那么其根本原因何在?...但在现实条件下,不稳定的网络使得在网络传输流程易出现带宽变化、延时抖动、网络丢包等不良状况:即使我们有带宽预测的算法,但带宽变化的不可预知性仍然是困扰我们的一大难题;延时抖动更是任何一个网络或多或少都会发生的状况...总而言之,根据视频的不同内容场景自适应调整帧率与分辨率,是一种有用的实时编码前处理优化策略。 2.2 编解码 1)区域检测及ROI编码 区域检测及ROI编码属于前处理且与Codec相结合。...区域检测可用于前景与背景检测、画质增强、美颜特效等;而落实到Codec层面则用于ROI编码。...其中,平衡画面清晰度与视频流畅度是我们努力实现平衡的两项指标,而质量平稳度是指在变化的网络带宽下保证视频质量在一定可接受的范围内波动,而非大幅度的质量突跃或陡降;观测条件则是一项受多重因素影响的指标,终端屏幕质量

    1.4K20

    提示大屏幕和折叠屏: 让您的 Android 游戏登上更大的舞台

    这些年我们亲历了诸多移动硬件的演进, 3D 显示器和高分辨率屏幕等,也因为这些演进,让我们在应用商店中看到越来越多新颖的游戏出现,让玩家们在更沉浸的画面和游戏体验中流连忘返。...系统在检测到设备配置的变动后,会自动重启您的 Activity 并在这个过程调用适配新设备配置的游戏资源,从而确保您的游戏在该配置下达到理想的效果。...如此一来,您就可以定制化地处理任何变化了。例如,您可以缩放 OpenGL 内容以匹配新的分辨率或宽高比,防止 UI 元素被画面裁切。...Display.getRotation() 复制代码 △ 屏幕方向的数值可能会在不同的设备上互换,具体取决于该硬件默认的设备方向值,请一定要在测试中考虑到这一点 设备分辨率 在解决了上面两个问题后,您还需要考虑用户设备的分辨率...Android 平台标准的屏幕尺寸变化事件。

    1.5K30

    响应式布局简说

    简单说呢就针对不同的屏幕分辨率应用不同的CSS样式。比如在电脑、Pad设备上,屏幕比较宽,就可以一行放2个Div。 到了手机上,或者Pad竖着拿的的时候,一行就只放1个Div。...这里有2个关键点: 一是如何在不修改Dom结构的前提下调整布局。 二是如何判断屏幕分辨率并应用对应的CSS。 以上两点都应该不依赖与JS。 实现第一点依靠的是流式布局。...从而实现不修改Dom实现布局变化。 ? 那么如何不使用JS而实现动态调整CSS样式就是第二个关键点。...HTML5提供了一种新的CSS语法——@media,学名是Media Query,可以为不同的分辨率设定不同的样式。...不过自从Retina这妖艳的屏幕推出,分辨率已经不能代表世界的真相了。小小的Note3的分辨率比一些17“显示的分辨率还高。

    1.1K60

    屏幕和折叠屏: 让您的 Android 游戏登上更大的舞台

    这些年我们亲历了诸多移动硬件的演进, 3D 显示器和高分辨率屏幕等,也因为这些演进,让我们在应用商店中看到越来越多新颖的游戏出现,让玩家们在更沉浸的画面和游戏体验中流连忘返。...系统在检测到设备配置的变动后,会自动重启您的 Activity 并在这个过程调用适配新设备配置的游戏资源,从而确保您的游戏在该配置下达到理想的效果。...如此一来,您就可以定制化地处理任何变化了。例如,您可以缩放 OpenGL 内容以匹配新的分辨率或宽高比,防止 UI 元素被画面裁切。...这样,Google Play 就会为游戏所在的设备提供正确的资源——例如,为较小屏幕的设备略去超高分辨率素材。...Fold 这样的设备处理特殊事件或 API,因为这个过程就是 Android 平台标准的屏幕尺寸变化事件。

    1.3K20

    机器视觉工业缺陷检测(光源,相机,镜头,算法)

    表面缺陷检测主要是物体表面局部物理或者化学性质不均匀的区域,比较常见的有金属或者塑料制品表面的划痕(:手机壳/屏幕表面的划痕)、斑点和孔洞(:PCB板漏了焊点或者表面多了焊点),纸张表面的色差、脏污点...金属、玻璃等光洁表面的划痕和瑕疵检测,芯片和硅片的破损检测、金属件上的冲压字符检测、线路板焊点与符号、集成电路的管脚字符检测等。...红外的穿透能力强,适合检测透光性差的物体,棕色口服液杂质检测。紫外对表面的细微特征敏感,适合检测对比不够明显的地方,食用油瓶上的文字检测。 (b)选择光源的形状和尺寸: 主要分为圆形、方形和条形。...现在相机的分辨率通常表示多少 K,1K(1024),2K(2048), 3K(4096)等。 在采集图像时,相机的分辨率对图像质量有很大的影响。...强化图像高频分量,可使图像物体轮廓清晰,细节明显;强化低频分量可减少图像噪声影响。

    17.1K69

    爱奇艺视频窗口显示不出来解决办法

    解决办法 10年前,做过一段时间Delphi/VB/VC开发,开发过网管软件,玩弄过控制窗口程序,比如偷换QQ密码输入框、隐藏Windows开始菜单和在第三方程序窗口上添加菜单、按钮等。...成功显示 完成以上操作后,爱奇艺视频窗口终于显示出来了,按键盘上的“PrtSc”对整个桌面进行截图,所示: 3. ...原因分析 看到2.6的截图,突然豁然开朗,原来爱奇艺视频窗口显示在另一个屏幕上去了。原因是电脑除有个集成的显卡外,还有个独立显卡,是双显卡。...为验证上猜测,进入屏幕分辨率窗口,一看果然如此: 迅速将“多显示器”改成“扩展这些显示”,然后推出爱奇艺视频和AutoSizer,然后再启动爱奇艺视频,一切正常了 : 问题在一段时间的煎熬后,

    3.9K20
    领券