[Delphi/BCB] Pełny ekran przy kilku monitorach

0

Chciałbym włączyć pełny ekran na aktualnie używanym monitorze, jednak nie wiem jak sprawdzić, na którym monitorze aktualnie program się znajduje. Pełny ekran włączam w ten sposób:

Left:=0;
Top:=0;
Width:=Screen.Width;
Height:=Screen.Height;
BorderStyle:=bsNone;

Gdy wykonuję ten zestaw poleceń to program uruchamia pełny ekran zawsze na pierwszym monitorze, chciałbym to zmienić...

0

Czy aplikacja jest otwarta na pierwszym monitorze, sprawdzisz sprawdzając zmienną:
monitor.Primary

Przykładowo:

if monitor.Primary then   
    {tu ustawiasz ekran na monitor pierwszy}
else                             
    {tu ustawiasz ekran na monitor drugi}
var
MBounds, foldbounds : TRect; 

Rozmiary ekranów pobierzesz np poprzez:

MBounds := Screen.monitors[0].BoundsRect; //monitor1
MBounds := Screen.monitors[1].BoundsRect; //monitor2

Ustawienie na pełny ekran:

with form1 do
        begin
          Foldbounds := Form1.BoundsRect;
          BorderIcons := [];
          BorderStyle := bsNone;
          SetBounds(MBounds.Left, MBounds.Top, (MBounds.Right-MBounds.Left),(MBounds.Bottom-MBounds.Top));
         end;

Powrót z pełnego ekranu:

 with form1 do
        begin
           BorderStyle := bsSizeable;
           BorderIcons := [];
           BorderIcons := [biSystemMenu,biMinimize,biMaximize]; 
           SetBounds(foldbounds.Left, foldbounds.Top, (foldbounds.Right-foldbounds.Left),(foldbounds.Bottom-foldbounds.Top));
          form1.Refresh;
        end;

Pozdrawiam

1 użytkowników online, w tym zalogowanych: 0, gości: 1