当前位置: 首页 > news >正文

【Delphi】中多显示器操作基本知识点

提要:

        目前随着计算机的发展,4K显示器已经逐步在普及,笔记本的显示器分辨率也都已经超过2K,多显示器更是普及速度很快。本文介绍下Delphi中操作多显示器的基本知识点(Windows系统),这些知识点在使用屏幕截图,多显示器拼接大图等方面使必须的。这些知识点在其他语言中也是通用的。

一、名词解释:

1. 屏幕(Screen):

        我们看到的多块显示器组成一个矩阵墙面,这个矩阵墙面就是一个屏幕,注意,屏幕物理位置摆放未必一定是矩阵墙面,也可以摆成各种位置,但是逻辑位置一定是矩阵模式。

2. 显示器(Monitor):

       显示器就是组成屏幕(Screen)的一块块监视器(Monitor),习惯上叫显示器,其实就是监视器。早期的时候,由于没有屏幕拼接,电脑就配置一个监视器,所以习惯性的把显示器、监视器、屏幕都叫成显示器,实际上是有区别的。 

3. 主显示器(Primary Monitor):

        在所有组成屏幕的显示其中,必须有且只能有一个主显示器,这个主显示器的左上角坐标约定为(0,0),其余显示器根据和主显示器摆放的逻辑位置(注意是逻辑位置,不是物理位置,一般最好物理位置和逻辑位置一致,否则操作起来会出现左右手问题,极不方便)来决定左上角的坐标位置。

4. 桌面(DeskTop):

        桌面是一个逻辑概念,就是整个屏幕的显示区域,是包含有Left、Top、Width、Height属性的矩形区域,但是这个矩形区域未必都有物理显示器。左面中主显示器的左上角一定是(0,0)。

5. 分辨率(Resolution ):

        用来表示显示器显示区域大小的参数,用点阵(Pixel)多少来表示长和高Width和Height,例如:1920 X1080 表示水平可以显示1920个点阵,高度可以显示1080个点阵,以此类推。

二、图例说明:

1.  标准6显示器矩阵示例:

说明:

  • 黄色部分整体是整个屏幕区域(Screen)
  • 屏幕有六块显示器组成两排,每排3个显示器;
  • 左上角蓝色显示器为主显示器,还有其余5块显示器;
  • 假定每个显示器的分辨率为 1920 x 1080;

        具体得到的参数如下:      

          整个屏幕的大小为:

                        width :1920 x 3 = 5760

                        height:1080 x 3 = 3240

        每块显示器的坐标参数如下:         

显示器lefttopwdthheigh
主显示器0019201080
显示器11920019201080
显示器23840019201080
显示器30108019201080
显示器40216019201080
显示器50324019201080
     1)获取屏幕中显示器数量代码:
usesVcl.Forms;//获取显示器数量Count := Screen.MonitorCount;//判断显示器是否是主显示器  True表示主显示器,i是数量Count循环isPrimary := Screen.Monitors[i].Primary; 
      2)获取桌面工作区域大小代码:
  x := Screen.DesktopRect.Left;y := Screen.DesktopRect.Top;w := Screen.DesktopRect.Width;h := Screen.DesktopRect.Height;

本例中执行结果为:

        x : 0;   y := 0;   w :  5760 ;    h : 3240

说明:

        本例因为主屏幕在左上角位置,所有桌面左上角坐标为(0,0)

        3)设置程序Form覆盖整个屏幕(不是整个显示器)
// Self 表示 FormSelf.Left := 0;Self.Top  := 0;Self.Width := Screen.DesktopWidth;Self.Height:= Screen.DesktopHeight;
注意:

        整个屏幕的坐标系为无论主显示器在那个位置,左上角都是(0,0),width是所有最大并排显示器宽度之和,高度依然。

2. 非标准6显示器矩阵示例 1

说明:

  • 黄色部分整体是整个屏幕区域(Screen)
  • 屏幕有六块显示器组成两排,每排3个显示器;
  • 主显示器位移第二排的第二个,还有其余5块显示器;
  • 假定每个显示器的分辨率为 1920 x 1080;

        具体得到的参数如下:      

          整个屏幕的大小为:

                        width :1920 x 3 = 5760

                        height:1080 x 3 = 3240

        每块显示器的坐标参数如下:         

显示器lefttopwdthheigh
主显示器0019201080
显示器1-1920-108019201080
显示器20-108019201080
显示器31920-108019201080
显示器4-1920019201080
显示器51920019201080

桌面工作区域大小:

          x : -1920;   y := -1080;   w :  5760 ;    h : 3240

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • vmware安装openEuler操作系统
  • C++(11)类语法分析(2)
  • 【JAVA入门】Day21 - 时间类
  • ThinkPHP中Db事务的使用:删除操作的示例
  • JAVA SpringBoot jar 程序 Systemctl 生产环境部署
  • 函数声明与函数表达式的区别是什么?
  • 【数学建模】趣味数模问题——棋子颜色问题
  • 解决使用uniapp时,uni.switchTab跳转标签页面不刷新的问题
  • android display 笔记(六)SurfaceFlinger初始化
  • KEEPALIVED高可用集群知识大全
  • 基于YOLOv8-pose的手部关键点检测(3)- 实现实时手部关键点检测
  • Python中的元类( metaclass )
  • 嵌入式八股-C++面试35题(20240816)
  • 如果从mysql导出百万数据级的excel
  • 记录一次内网dns解析失败的排查
  • 【comparator, comparable】小总结
  • 【css3】浏览器内核及其兼容性
  • 【挥舞JS】JS实现继承,封装一个extends方法
  •  D - 粉碎叛乱F - 其他起义
  • JavaScript的使用你知道几种?(上)
  • java取消线程实例
  • js写一个简单的选项卡
  • js作用域和this的理解
  • Laravel核心解读--Facades
  • Python学习笔记 字符串拼接
  • Quartz实现数据同步 | 从0开始构建SpringCloud微服务(3)
  • quasar-framework cnodejs社区
  • webpack+react项目初体验——记录我的webpack环境配置
  • 分享自己折腾多时的一套 vue 组件 --we-vue
  • 诡异!React stopPropagation失灵
  • 试着探索高并发下的系统架构面貌
  • 通过来模仿稀土掘金个人页面的布局来学习使用CoordinatorLayout
  • 微信端页面使用-webkit-box和绝对定位时,元素上移的问题
  • 正则学习笔记
  • 做一名精致的JavaScripter 01:JavaScript简介
  • 树莓派用上kodexplorer也能玩成私有网盘
  • ​​​​​​​​​​​​​​汽车网络信息安全分析方法论
  • ​二进制运算符:(与运算)、|(或运算)、~(取反运算)、^(异或运算)、位移运算符​
  • # 20155222 2016-2017-2 《Java程序设计》第5周学习总结
  • #单片机(TB6600驱动42步进电机)
  • $forceUpdate()函数
  • (02)Cartographer源码无死角解析-(03) 新数据运行与地图保存、加载地图启动仅定位模式
  • (13):Silverlight 2 数据与通信之WebRequest
  • (2021|NIPS,扩散,无条件分数估计,条件分数估计)无分类器引导扩散
  • (java版)排序算法----【冒泡,选择,插入,希尔,快速排序,归并排序,基数排序】超详细~~
  • (Redis使用系列) Springboot 使用redis实现接口Api限流 十
  • (zz)子曾经曰过:先有司,赦小过,举贤才
  • (二) Windows 下 Sublime Text 3 安装离线插件 Anaconda
  • (附源码)springboot宠物医疗服务网站 毕业设计688413
  • (附源码)ssm户外用品商城 毕业设计 112346
  • (亲测成功)在centos7.5上安装kvm,通过VNC远程连接并创建多台ubuntu虚拟机(ubuntu server版本)...
  • (四)Android布局类型(线性布局LinearLayout)
  • (四)React组件、useState、组件样式
  • (四)事件系统
  • (已更新)关于Visual Studio 2019安装时VS installer无法下载文件,进度条为0,显示网络有问题的解决办法