![]() |
Form.WindowState := wsMaximized mit/ohne Maximize-Button
Folgendes Problem: Ich maximiere ein Fenster zur Laufzeit mit
Delphi-Quellcode:
Wenn in diesem Fenster auch ein Maximize-Button (BorderIcons.biMaximize ist true) ist, dann wird es korrekt angezeigt, also unterer Abschluß der Form über der Windows-Taskbar. Laß ich diesen Button weg, dann wird das Fenster zu groß und ich muß die Taskbar ausblenden, wenn ich alles sehen will. Wie schaffe ich es, daß das Fenster den gesamten Bildschirmbereich oberhalb der Taskbar einnimmt, es aber keine Möglichkeit, das Maximieren zu beenden?
Form1.WindowsState := wsMaximize;
|
Re: Form.WindowState := wsMaximized mit/ohne Maximize-Button
Setzt du die Eigenschaft zur Designzeit und wird dann dein Programm gestartet, weiß das Fenster nicht, wie hoch die Taskbar ist und kann diese nicht berücksichtigen. Wird es maximiert, wenn es schon läuft, weiß es wie hoch die Taskbar ist und kann diese berücksichtigen.
Lösung: Setzte die Eigenschaft im OnShow Ereignis:
Delphi-Quellcode:
Dann funktioniert es bei mir.
procedure TForm1.FormShow(Sender: TObject);
begin WindowState := wsMaximized; end; |
Re: Form.WindowState := wsMaximized mit/ohne Maximize-Button
Hab's sowohl im OnFormShow als auch im OnActivate probiert. Es geht nicht ohne Maximize-Button!
|
Re: Form.WindowState := wsMaximized mit/ohne Maximize-Button
Hallo,
ich hab grad das selbe Problem :( Hat jmd. schon ne Lösung oder nen Workaround? Gottes Segen |
Re: Form.WindowState := wsMaximized mit/ohne Maximize-Button
Zitat:
kann ich bei mir nicht bestätigen. Das Fenster bedeckt exakt den Desktop ohne die Taskleiste. |
Re: Form.WindowState := wsMaximized mit/ohne Maximize-Button
Zitat:
|
Re: Form.WindowState := wsMaximized mit/ohne Maximize-Button
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:
Du meinst doch so wie im Anhang oder? |
Re: Form.WindowState := wsMaximized mit/ohne Maximize-Button
Zitat:
Workaround für primären Monitor...
Delphi-Quellcode:
...für mehrere Monitore gibt's sicher auch Lösungen (hab nur nicht die VCL-Referenz zur Hand "Wie komme ich an die Bildschirm-Koordinaten" *g*).
procedure TForm1.FormShow(Sender: TObject);
{$IFDEF WIN32} var WorkArea: TRect; {$ENDIF} begin {$IFDEF WIN32} if SystemParametersInfo(SPI_GETWORKAREA, 0, Addr(WorkArea), 0) then with WorkArea do SetBounds(Left, Top, Right - Left, Bottom - Top) else {$ENDIF} // fallback WindowState := wsMaximized; end; edit: lang lebe der tippfäler... |
Re: Form.WindowState := wsMaximized mit/ohne Maximize-Button
Zitat:
|
Re: Form.WindowState := wsMaximized mit/ohne Maximize-Button
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:55 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz