//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;
|
请发表评论