delphi 设置多屏幕

//poScreenCenter时,窗体会显示到主显示器的中央
MainForm.Position := poScreenCenter;

 

function TGAEAMainForm.GetWorkArea(var R : TRect) : Boolean;
var
I : Integer;
begin
Result := False;
for I := 0 to Screen.MonitorCount -1 do
if Screen.Monitors[I].Primary then
begin
R := Screen.Monitors[I].WorkareaRect;
Result := True;
Break;
end;
end;

procedure TGAEAMainForm.TempInitForm; procedure SetFormMonitor(Form:TCustomForm;MonitorIndex:integer); begin if (MonitorIndex>-1) and (MonitorIndex<Screen.MonitorCount) then //保证屏幕索引在范围内 begin Form.Left := 0; Form.Top := 0; 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; function GetPriMaryScreenIndex: Integer; var I : Integer; begin for I := 0 to Screen.MonitorCount -1 do if Screen.Monitors[I].Primary then begin Result := I; Break; end; end;var vR: TRect; vPrimaryIndex: Integer;begin vPrimaryIndex := GetPriMaryScreenIndex; if vPrimaryIndex <> -1 then SetFormMonitor(MainForm,vPrimaryIndex);// if GetWorkArea(vR) then// begin// MainForm.Left := vR.Left;// MainForm.Top := vR.Top;// end;end;

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐