Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#3

AW: Fenster innerhalb Monitor halten

  Alt 1. Okt 2022, 13:24
Die TForm hat ein Property Monitor, das ist der Monitor, wo die Form zum Großteil (Width>50% und Height>50%) trauf ist, also genau der, welcher dich interessiert.


PS: Nicht Left/Top/Width/Height aka BoundsRect, sondern WorkareaRect prüfen, das ist der wirklich nutzbare Bereich, ohne so Dinge wie die Startleiste und andere Sidebars.




Ach ja, MakeFullyVisible hat ein kleines Problemchen.
Es beachtet die unsichtbaren Border (Windows 10/11) und somit ist ein Bereich am Rand der Workarea nicht nutzbar.

Und da nur die Position und nicht die Fenstergröße angepasst wird, hast du Spaß, wenn das Fenster zu groß ist, z.B. bei Maximiert.

[ADD]
OK, ein Problem behoben, aber nicht richtig getestet, sonst wäre das Andere doch aufgefallen.
https://quality.embarcadero.com/brow...ullyVisible%22


[ADD2]
https://quality.embarcadero.com/browse/RSP-39587

Ein Maximiertes Fenster liegt auf Position -8:-8 und ist 16 Pixel Breiter/Höher, als das sichtbare Fenster.
Delphi-Quellcode:
procedure TForm11.Timer2Timer(Sender: TObject);
begin
  Caption := Format('%d:%d-%d:%d %d', [Left, Top, Width, Height, BorderWidth])
end;
$2B or not $2B

Geändert von himitsu ( 1. Okt 2022 um 14:17 Uhr)
  Mit Zitat antworten Zitat