用delphi写多屏幕程序

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

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

你可能感兴趣的:(Integer,div,Delphi)