Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Automatische Anpassung des Fenster an die Taskleiste (https://www.delphipraxis.net/207432-automatische-anpassung-des-fenster-die-taskleiste.html)

HenrikLoe 23. Mär 2021 12:55

Automatische Anpassung des Fenster an die Taskleiste
 
Hallo zusammen,

ich versuche zur Laufzeit die Größe meines Hauptfenster an die Taskleiste anzupassen. Soweit funktioniert es auch wie folgt (Auszug):
Code:
procedure TFmMain.FormActivate(Sender: TObject);
var
  Rect: TRect;
begin
  WindowState := wsMaximized;
  SystemParametersInfo(SPI_GETWORKAREA, 0, @Rect, 0);
  SetBounds(0, 0, Rect.Right - Rect.Left, Rect.Bottom - Rect.Top);
end;
Je nachdem, ob die Taskleiste sichtbar ist oder nicht, passt sich das Fenster wie gewünscht an. Zusätzlich hätte ich gerne, dass sich das Fenster ebenfalls anpasst, wenn die Taskleiste zur Laufzeit wieder eingeblendet wird. Ich weiß nicht, ob und welches Ergeignis dafür am besten geeignet wäre. Wenn die Taskleiste zur Laufzeit ausgeblendet wird funktioniert es einwandfrei.

Wäre gut, wenn mir da jemand weiterhelfen könnte.

bcvs 23. Mär 2021 13:25

AW: Automatische Anpassung des Fenster an die Taskleiste
 
Macht es das nicht alles sowieso schon automatisch bei wsMaximized, auch ohne Code in FormActivate oder sonst wo?

Oder verstehe ich da etwas falsch?

HenrikLoe 23. Mär 2021 13:33

AW: Automatische Anpassung des Fenster an die Taskleiste
 
Leider nicht... Die Taskleiste ist mit wsMaximized nicht sichtbar.

bcvs 23. Mär 2021 14:27

AW: Automatische Anpassung des Fenster an die Taskleiste
 
Wieso das denn nicht?

Mach mal ein neues Projekt. Setze das WindowState des MainForm auf wsMaximized und starte das Ganze.

Bei mir ist da die Taskleiste sichtbar.

himitsu 23. Mär 2021 17:07

AW: Automatische Anpassung des Fenster an die Taskleiste
 
Zitat:

Leider nicht... Die Taskleiste ist mit wsMaximized nicht sichtbar.
FullScreen <> Maximized

Maximiert = Fenster auf WorkArea (exklusive Taskleiste und Sidebars)
Vollbild = Fenster auf ScreenArea (ganzer Monitor)


Ausnahme: Die Taskleiste ist ausgeblendet (und wird nur bei Moveover sichtbar)

KodeZwerg 23. Mär 2021 17:52

AW: Automatische Anpassung des Fenster an die Taskleiste
 
Ich finde das gerade nicht aber bin davon überzeugt das die winapi eine Message wirft die man nutzen kann (taskbar verschwindet/wieder sichtbar) um dann den Form-Inhalt neu anzupassen.

KodeZwerg 25. Mär 2021 00:52

AW: Automatische Anpassung des Fenster an die Taskleiste
 
Hab die Message gefunden: ABM_WINDOWPOSCHANGED in Verbindung mit WM_WINDOWPOSCHANGED.
Mehr dazu kann man hier erfahren.

Renate Schaaf 25. Mär 2021 07:45

AW: Automatische Anpassung des Fenster an die Taskleiste
 
Zitat:

Leider nicht... Die Taskleiste ist mit wsMaximized nicht sichtbar.
Passiert bei mir (Delphi 10.3.3 CE), wenn ich Borderstyle auf bsSingle setze (ich finde, das ist ein bug). Versuch mal bsSizeable.

Gruß


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:07 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz