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 Form.WindowState := wsMaximized mit/ohne Maximize-Button (https://www.delphipraxis.net/43029-form-windowstate-%3D-wsmaximized-mit-ohne-maximize-button.html)

r_kerber 27. Mär 2005 19:04


Form.WindowState := wsMaximized mit/ohne Maximize-Button
 
Folgendes Problem: Ich maximiere ein Fenster zur Laufzeit mit
Delphi-Quellcode:
  Form1.WindowsState := wsMaximize;
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?

Luckie 27. Mär 2005 19:12

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:
procedure TForm1.FormShow(Sender: TObject);
begin
  WindowState := wsMaximized;
end;
Dann funktioniert es bei mir.

r_kerber 27. Mär 2005 19:20

Re: Form.WindowState := wsMaximized mit/ohne Maximize-Button
 
Hab's sowohl im OnFormShow als auch im OnActivate probiert. Es geht nicht ohne Maximize-Button!

Meta777 9. Mai 2005 10:56

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

Sharky 9. Mai 2005 12:08

Re: Form.WindowState := wsMaximized mit/ohne Maximize-Button
 
Zitat:

Zitat von r_kerber
Hab's sowohl im OnFormShow als auch im OnActivate probiert. Es geht nicht ohne Maximize-Button!

Hai Rainer,

kann ich bei mir nicht bestätigen. Das Fenster bedeckt exakt den Desktop ohne die Taskleiste.

r_kerber 9. Mai 2005 12:10

Re: Form.WindowState := wsMaximized mit/ohne Maximize-Button
 
Zitat:

Zitat von Sharky
kann ich bei mir nicht bestätigen. Das Fenster bedeckt exakt den Desktop ohne die Taskleiste.

Und wann maximierst Du?

Sharky 9. Mai 2005 12:13

Re: Form.WindowState := wsMaximized mit/ohne Maximize-Button
 
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:

Zitat von r_kerber
...Und wann maximierst Du?

Im OnShow und OnActive versucht. In beiden Fällen das gleiche bei mir.
Du meinst doch so wie im Anhang oder?

NicoDE 9. Mai 2005 12:23

Re: Form.WindowState := wsMaximized mit/ohne Maximize-Button
 
Zitat:

Zitat von Sharky
Du meinst doch so wie im Anhang oder?

Sieht eher so aus, als ob die Form hinter der Taskbar ist...

Workaround für primären Monitor...
Delphi-Quellcode:
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;
...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*).

edit: lang lebe der tippfäler...

r_kerber 9. Mai 2005 12:32

Re: Form.WindowState := wsMaximized mit/ohne Maximize-Button
 
Zitat:

Zitat von Sharky
In beiden Fällen das gleiche bei mir.
Du meinst doch so wie im Anhang oder?

Dann füge mal eine TStatusBar ein und gucke, ob du diese noch siehts!

Sharky 9. Mai 2005 12:35

Re: Form.WindowState := wsMaximized mit/ohne Maximize-Button
 
Zitat:

Zitat von r_kerber
Dann füge mal eine TStatusBar ein und gucke, ob du diese noch siehts!

Platsch. Da bin ich ja voll auf die Nase gefallen :cry: Sorry.


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:41 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