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

2 篇文章 0 订阅

提要:

        目前随着计算机的发展,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

  • 10
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

海纳老吴

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值