Mit dem Bildschirm arbeiten

Aus RAD Studio
Wechseln zu: Navigation, Suche

Nach oben zu Anwendungsverhalten steuern


In jedem neuen Projekt wird automatisch eine globale Variable namens Screen mit dem Typ TScreen erstellt. Screen kapselt den Status des Bildschirms, auf dem die Anwendung angezeigt wird. Von Screen durchgeführte, allgemeine Aufgaben:

Wenn Ihre VCL-Anwendung auf mehreren Monitoren ausgeführt wird, verwaltet die VCL das Layout der Benutzeroberfläche der Anwendung auf mehreren Monitoren. Beispielsweise werden Menüs, Dialogfelder und andere Popup-Steuerelemente auf demselben Monitor wie das übergeordnete Formular geöffnet. Mit der Variable Screen rufen Sie eine Liste der Monitore und deren Abmessungen ab. Die Eigenschaft Monitors ermöglicht den Zugriff auf alle Monitore, aus denen sich der Desktop zusammensetzt, und MonitorCount gibt die Anzahl der Monitore zurück. Alle Koordinaten sind relativ zum primären Monitor. Sie können beispielsweise die folgenden Informationen ermitteln:

procedure TForm2.Button1Click(Sender: TObject);
var
  I : integer;
  ScreenCount : integer;
  P: TPoint;
begin
  Memo1.Clear;
  ScreenCount := Screen.MonitorCount;
  P := Mouse.CursorPos;
  Memo1.Lines.Add('Monitor number: ' + IntToStr(ScreenCount) );
  for I := 0 to ScreenCount-1 do begin
    Memo1.Lines.Add('Screen.Width: ' + IntToStr(Screen.Width));
    Memo1.Lines.Add('Monitor: '+IntToStr(Screen.Monitors[I].MonitorNum) );
    Memo1.Lines.Add('Top: '+IntToStr(Screen.Monitors[I].Top) );
    Memo1.Lines.Add('Left: '+IntToStr(Screen.Monitors[I].Left) );
    Memo1.Lines.Add('Width: '+IntToStr(Screen.Monitors[I].Width) );
    Memo1.Lines.Add('Height: '+IntToStr(Screen.Monitors[I].Height) );
    Memo1.Lines.Add('MonitorFromRect(mdNearest): '
      + IntToStr( (Screen.MonitorFromRect(
           TRect.Create(P,100,100), mdNearest)).MonitorNum) );
    Memo1.Lines.Add( 'Mouse.CursorPos: ' + IntToStr(P.X) 
      + ' ' + IntToStr(P.Y) );
  end;
end;

Siehe auch