Ignore:
Timestamp:
Sep 15, 2024, 10:04:45 PM (2 months ago)
Author:
chronos
Message:
  • Modified: Show windows by default on primary screen if multiple monitors present.
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Packages/CevoComponents/DrawDlg.pas

    r617 r622  
    3535    destructor Destroy; override;
    3636    procedure SmartInvalidate; virtual;
     37    procedure CenterToScreen; overload;
     38    procedure CenterToScreen(AWidth, AHeight: Integer); overload;
    3739  end;
    3840
     
    210212end;
    211213
     214procedure TDrawDlg.CenterToScreen;
     215begin
     216  BoundsRect := Bounds(
     217    Screen.PrimaryMonitor.Left + (Screen.PrimaryMonitor.Width - Width) div 2,
     218    Screen.PrimaryMonitor.Top + (Screen.PrimaryMonitor.Height - Height) div 2,
     219    Width, Height);
     220end;
     221
     222procedure TDrawDlg.CenterToScreen(AWidth, AHeight: Integer);
     223begin
     224  BoundsRect := Bounds(
     225    Screen.PrimaryMonitor.Left + (Screen.PrimaryMonitor.Width - AWidth) div 2,
     226    Screen.PrimaryMonitor.Top + (Screen.PrimaryMonitor.Height - AHeight) div 2,
     227    Width, Height);
     228end;
     229
    212230{ TBaseMessgDlg }
    213231
    214232procedure TBaseMessgDlg.FormCreate(Sender: TObject);
    215233begin
    216   Left := (Screen.Width - Width) div 2;
     234  Left := Screen.PrimaryMonitor.Left + (Screen.PrimaryMonitor.Width - Width) div 2;
    217235  Canvas.Font.Assign(UniFont[ftNormal]);
    218236  Canvas.Brush.Style := TBrushStyle.bsClear;
    219237  MessgText := '';
    220238  TopSpace := 0;
    221   TitleHeight := Screen.Height;
     239  TitleHeight := Screen.PrimaryMonitor.Height;
    222240  if csDesigning in ComponentState then Exit;
    223241  InitButtons;
     
    287305var
    288306  I: Integer;
    289 begin
    290   Height := 72 + Border + TopSpace + Lines * MessageLineSpacing;
    291   Top := (Screen.Height - Height) div 2;
    292   for i := 0 to ControlCount - 1 do
    293     Controls[i].Top := Height - (34 + Border);
     307  NewHeight: Integer;
     308  NewTop: Integer;
     309begin
     310  NewHeight := 72 + Border + TopSpace + Lines * MessageLineSpacing;
     311  NewTop := Screen.PrimaryMonitor.Top + (Screen.PrimaryMonitor.Height - NewHeight) div 2;
     312  BoundsRect := Bounds(Left, NewTop, Width, NewHeight);
     313  for I := 0 to ControlCount - 1 do
     314    Controls[I].Top := NewHeight - (34 + Border);
    294315end;
    295316
Note: See TracChangeset for help on using the changeset viewer.