当前位置:  开发笔记 > 编程语言 > 正文

在第二台显示器上启动程序?

如何解决《在第二台显示器上启动程序?》经验,为你挑选了2个好方法。

有没有办法在Delphi或C++ Builder中指定应用程序出现在哪个监视器上?

我正在为一个客户开发一个简单的程序,它在一个二级监视器上显示厨房订单,由一个酒店系统生成.目前,他们需要在启动后手动将窗口拖动到第二个监视器上.



1> Jim McKeeth..:

全局Screen对象(Forms的一部分)具有监视器的概念.我认为这是在Delphi 6或7中添加的.以下代码将起作用:

// Put the form in the upper left corner of the 2nd monitor
//   if more then one monitor is present.
if Screen.MonitorCount > 1 then
begin
  Left := Screen.Monitors[1].Left;
  Top := Screen.Monitors[1].Top;
end;

您可以使用该位置的任何正偏移量将其放在该监视器中的任何位置.您也可以从那里获得宽度和高度以了解尺寸.



2> Barry Kelly..:

在程序关闭之前保存窗口位置并在启动时恢复它们.多监视器显示只会增加桌面的大小; 其他监视器表面只有相同X/Y平面的不同部分,其原点位于主监视器的左上角.

这可以通过几个组件中的任何一个自动完成.

顺便说一句,Forms单元中的Screen变量有一个名为MonitorCount的属性和另一个可索引属性,Monitors [Index:Integer]:TMonitor.TMonitor具有指示左,顶部,宽度,高度等的属性,因此您需要的所有信息都在那里.


您还应该在启动时使用设置之前验证已保存的监视器.否则,如果用户移除曾经在那里的监视器,则窗口根本不会显示在屏幕上.
推荐阅读
N个小灰流_701
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有