Delphi多屏开发有关问题,
Delphi多屏开发问题,求助~~
我做了一个小工具,分两个窗体,一个在主屏显示,一个在副屏显示。首先我通过显示器设置,将桌面扩展到副屏,然后在程序中添加了以下代码:
frmOuterScreen.Left := Screen.Monitors[0].Width + ((Screen.Monitors[1].Width-frmOuterScreen.Width) div 2);
frmOuterScreen.Top := ((Screen.Monitors[1].Height-frmOuterScreen.Height) div 2);
frmOuterScreen.Show();
在Win7系统下能实现多屏显示,但是在XP系统下,两个窗体只能在主屏上显示,我的主屏、副屏分辨率都是1024*768,我尝试过这样写----frmOuterScreen.Left :=1100,但窗体还是在主屏上显示。
是哪个地方少写什么了吗?请各位指教一下!
------解决思路----------------------
delphi写多屏幕程序
一、操作系统要求
1、显卡驱动支持多屏
2、硬件上有二个显示屏
这样在操作系统的显示器属性上,有二个屏幕。
二、写双屏幕的程序
1、Screen.MonitorCount 当前系统屏幕的数量;
2、TForm也有与屏幕相关的属性,比如DefaluMonitor,
3、把一个窗体显示在某个屏幕上(可以看TCustomForm的SetWindowToMonitor方法),把它抽出来封装成一个函数:
// Form:目标窗体 monitorIndex:显示在哪个屏幕 0为当前屏幕,1为第2个屏幕
之后要显示哪个窗体在哪个屏幕调一下函数就可以了。
另第三方控件 picshow410 ,可以助你多屏编程。
我做了一个小工具,分两个窗体,一个在主屏显示,一个在副屏显示。首先我通过显示器设置,将桌面扩展到副屏,然后在程序中添加了以下代码:
frmOuterScreen.Left := Screen.Monitors[0].Width + ((Screen.Monitors[1].Width-frmOuterScreen.Width) div 2);
frmOuterScreen.Top := ((Screen.Monitors[1].Height-frmOuterScreen.Height) div 2);
frmOuterScreen.Show();
在Win7系统下能实现多屏显示,但是在XP系统下,两个窗体只能在主屏上显示,我的主屏、副屏分辨率都是1024*768,我尝试过这样写----frmOuterScreen.Left :=1100,但窗体还是在主屏上显示。
是哪个地方少写什么了吗?请各位指教一下!
------解决思路----------------------
delphi写多屏幕程序
一、操作系统要求
1、显卡驱动支持多屏
2、硬件上有二个显示屏
这样在操作系统的显示器属性上,有二个屏幕。
二、写双屏幕的程序
1、Screen.MonitorCount 当前系统屏幕的数量;
2、TForm也有与屏幕相关的属性,比如DefaluMonitor,
3、把一个窗体显示在某个屏幕上(可以看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;
之后要显示哪个窗体在哪个屏幕调一下函数就可以了。
另第三方控件 picshow410 ,可以助你多屏编程。