用delphi写多屏幕程序

http://blog.csdn.net/zyyjc/article/details/6530728

别现在有些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;

之后要显示哪个窗体在哪个屏幕调一下函数就可以了。