别现在有些POS机是双屏幕的(比如卡西瓦POS机),一个屏幕可以当顾客显示屏用,当闲时也可以显示一些广告。其实用delphi写双屏幕的程序是比较简单的,Screen.MonitorCount就是当前系统屏幕的数量,TForm也有与屏幕相关的属性,比如DefaluMonitor,不过想设一个窗体显示在哪个屏幕上好象没有属性(可能我没找到),不过研究VCL代码发现如何把一个窗体显示在某个屏幕上(可以看TCustomForm的SetWindowToMonitor方法),把它抽出来封装成一个函数:
//Form:目标窗体 monitorIndex:显示在哪个屏幕 0为当前屏幕,1为第2个屏幕.....
procedure SetFormMonitor(Form:TCustomForm;MonitorIndex:integer);
begin
if (MonitorIndex>-1) and (MonitorIndex<Screen.MonitorCount) then//保证屏幕索引在范围内
begin
Form.SetBounds(Screen.Monitors[MonitorIndex].Left + ((Screen.Monitors[MonitorIndex].Width - Form.Width) div 2),
Screen.Monitors[MonitorIndex].Top + ((Screen.Monitors[MonitorIndex].Height - Form.Height) div 2),
Form.Width, Form.Height);
end;
end;
之后要显示哪个窗体在哪个屏幕调一下函数就可以了。
本文介绍使用Delphi编写双屏幕程序的方法。通过Screen.MonitorCount获取屏幕数量,并利用TCustomForm的SetWindowToMonitor方法将窗体指定到特定屏幕显示。提供了实用的SetFormMonitor函数实现这一功能。
1946

被折叠的 条评论
为什么被折叠?



