stu*_*lly 20 delphi multiple-monitors c++builder point-of-sale
有没有办法在Delphi或C++ Builder中指定应用程序出现在哪个监视器上?
我正在为一个客户开发一个简单的程序,它在一个二级监视器上显示厨房订单,由一个酒店系统生成.目前,他们需要在启动后手动将窗口拖动到第二个监视器上.
Jim*_*eth 28
全局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;
Run Code Online (Sandbox Code Playgroud)
您可以使用该位置的任何正偏移量将其放在该监视器中的任何位置.您也可以从那里获得宽度和高度以了解尺寸.
Bar*_*lly 23
在程序关闭之前保存窗口位置并在启动时恢复它们.多监视器显示只会增加桌面的大小; 其他监视器表面只有相同X/Y平面的不同部分,其原点位于主监视器的左上角.
顺便说一句,Forms单元中的Screen变量有一个名为MonitorCount的属性和另一个可索引属性,Monitors [Index:Integer]:TMonitor.TMonitor具有指示左,顶部,宽度,高度等的属性,因此您需要的所有信息都在那里.