【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)获取屏幕中显示器数量代码:
uses
    Vcl.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 表示 Form
  Self.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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/870485.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【Django开发】前后端分离django美多商城项目第1篇:欢迎来到美多 项目主要页面介绍【附代码文档】

本教程的知识点为: 项目准备 项目准备 配置 1. 修改settings/dev.py 文件中的路径信息 2. INSTALLED_APPS 3. 数据库 用户部分 图片 1. 后端接口设计: 视图原型 2. 具体视图实现 用户部分 使用Celery完成发送 判断帐号是否存在 1. 判断用户名是否存在 后…

大语言模型的简易可扩展增量预训练策略

前言 原论文:Simple and Scalable Strategies to Continually Pre-train Large Language Models翻译文件已整理至Github项目Some-Paper-CN,欢迎大家Star! 摘要 大语言模型(LLMs)通常需要在数十亿个tokens上进行预训…

Apache-JMeter压测工具教程

下载安装 《JMeter官网下载》 下载完成后,找个文件夹进行解压 配置环境变量 JAVA_HOME(如果是JAVA8还需要配置CLASSPATH)、JMETER_HOME JMETER_HOME修改bin目录下的jmeter.properties文件编码为UTF-8 5.6.3这个版本encoding已经默认为UT…

【MySQL】SQL语句执行流程

目录 一、连接器 二、 查缓存 三、分析器 四、优化器 五、执行器 一、连接器 学习 MySQL 的过程中,除了安装,我们要做的第一步就是连接上 MySQL 在一开始我们都是先使用命令行连接 MySQL mysql -h localhost -u root -p 你的密码 使用这个命令…

基于Crontab调度,实现Linux下的定时任务执行。

文章目录 引言I 预备知识Crontab的基本组成Crontab的配置文件格式Crontab的配置文件Crontab不可引用环境变量杀死进程命令II Crontab实践案例Crontab工具的使用重启tomcat服务每分钟都打印当前时间到一个文件中30s执行一次III 常见问题并发冗余执行任务&& 和|| 和 ;的区…

WebRTC音视频开发读书笔记(一)

一、基本概念 WebRTC(Web Real-Time Communication,网页即时通信)于2011年6月1日开源,并被纳入万维网联盟的W3C推荐标准,它通过简单API为浏览器和移动应用提供实时通信RTC功能。 1、特点 跨平台:可以在Web,Android、…

Windows下pip install mysqlclient安装失败

有时候安装mysqlclient插件报如下错误 提示先安装mysqlclient的依赖wheel文件 下载链接(必须对应版本,python3.6版本对1.4.4版本) 如下选择历史版本 mysqlclient官网 https://pypi.org/project/mysqlclient/python3.6对应版本 https://pypi.org/project/mysqlcl…

Unity3D 自定义窗口

Unity3D 自定义窗口的实现。 自定义窗口 Unity3D 可以通过编写代码,扩展编辑器的菜单栏和窗口。 简单的功能可以直接一个菜单按钮实现,复杂的功能就需要绘制一个窗口展示更多的信息。 编辑器扩展的脚本,需要放在 Editor 文件夹中。 菜单栏…

AI预测福彩3D采取888=3策略+和值012路或胆码测试8月19日新模型预测第61弹

经过60期的测试,当然有很多彩友也一直在观察我每天发的预测结果,得到了一个非常有价值的信息,那就是9码定位的命中率非常高,60期一共只错了6次,这给喜欢打私房菜的朋友提供了极高价值的预测结果~当然了,大部…

Ubuntu 22.04 安装 MySQL 8

Ubuntu 22.04 安装 MySQL 8 本文描述了Ubuntu安装MySQL 8的方法 CentOS7 的安装方法点击此处跳转 Windows 的安装方法点击此处跳转 Docker 的安装方法点击此处跳转 正文开始: 在一切开始之前,建议先切换到root #输入下方名,然后输入当…

openGauss 6.0安装过程解除对root用户依赖之gs_preinstall

目录 1.执行前提条件 1.1设置OS参数: 1.2定时任务权限 1.3 修改最大文件描述符 2.切换至omm用户,执行preinstall 3.source环境变量 4.执行gs_install 在给客户部署业务系统时,由于openGauss数据库的预安装过程需要用到root用户执行&am…

uniapp left right 的左右模态框

标题 这是组件 <template><div class"content-wrapper"><divv-for"(vla, i) in products":key"i":class"[content-page, getPageClass(i)]"><slot :data"vla"><!-- 用户自定义的内容 --><…

微信小程序中实现自动滚动

使用scroll-view组件的scroll-into-view属性&#xff1a; <scroll-view class"container" scroll-y"{{true}}" scroll-into-view"recordBottomScroll"><view class"text_style" style"color: #252526;">{{te…

LAMM: Label Alignment for Multi-Modal Prompt Learning

系列论文研读目录 文章目录 系列论文研读目录文章题目含义AbstractIntroductionRelated WorkVision Language ModelsPrompt Learning MethodologyPreliminaries of CLIPLabel AlignmentHierarchical Loss 分层损失Parameter Space 参数空间Feature Space 特征空间Logits Space …

JavaScript语法基础之常量与变量

目录 语法基础 1.语法简介 2 常量与变量 2.1 变量 2.1.1 变量的命名 2.1.2. 变量的使用 2.2. 常量 语法基础 注&#xff1a;由于大部分编程语言语法都差不多&#xff0c;这里讲完 PHP 部分不再讲述。 调试语句&#xff1a;prompt、alert、document.write(a)、console.l…

OSL 冠名赞助Web3峰会 “FORESIGHT2024”圆满收官

OSL 望为香港数字资产市场发展建设添砖加瓦 &#xff08;香港&#xff0c;2024 年 8 月 13 日&#xff09;- 8 月 11 日至 12 日&#xff0c; 由 香港唯一专注数字资产的上市公司 OSL 集团&#xff08;863.HK&#xff09;冠名赞助&#xff0c;Foresight News、 Foresight Ventu…

【高阶数据结构】图

图 1. 图的基本概念2. 图的存储结构2.1 邻接矩阵2.2 邻接表2.3 邻接矩阵的实现2.4 邻接表的实现 3. 图的遍历3.1 图的广度优先遍历3.2 图的深度优先遍历 4. 最小生成树4.1 Kruskal算法4.2 Prim算法 5. 最短路径5.1 单源最短路径--Dijkstra算法5.2 单源最短路径--Bellman-Ford算…

【投融界-注册安全分析报告】

前言 由于网站注册入口容易被黑客攻击&#xff0c;存在如下安全问题&#xff1a; 暴力破解密码&#xff0c;造成用户信息泄露短信盗刷的安全问题&#xff0c;影响业务及导致用户投诉带来经济损失&#xff0c;尤其是后付费客户&#xff0c;风险巨大&#xff0c;造成亏损无底洞…

leetcode198打家劫舍

题目描述 LeetCode 第 198 题——打家劫舍&#xff08;House Robber&#xff09; 你是一个职业小偷&#xff0c;计划偷窃沿街的房屋。每间房内都藏有一定的现金&#xff0c;这个地方所有的房屋都围成一圈&#xff0c;并且相邻的房屋有安全系统会相连&#xff0c;如果两间相邻的…

【MySQL进阶之路】数据库的操作

目录 创建数据库 字符集和校验规则 查看数据库支持的字符集 查看数据库支持的字符集校验规则 指定字符集和校验规则 在配置文件中配置 查看数据库 显示创建语句 修改数据库 删除数据库 数据库的备份和恢复 备份整个数据库 备份特定表 备份多个数据库 备份所有数据…