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 Borderstyle bsNone und "normales" Maximieren (https://www.delphipraxis.net/79824-borderstyle-bsnone-und-normales-maximieren.html)

wicht 29. Okt 2006 10:38


Borderstyle bsNone und "normales" Maximieren
 
Hallo Leute!

Ich habe da mal eine ganz kurze Frage.
Habe ein Formular mit BorderStyle bsNone, welches sich wie ein normales Fenster verhält. Minimieren/Wiederherstellen klappt, Größe ändern ist auch kein Problem, Fenster verschieben geht auch super. Eigentlich hasse ich ja Programme, die einen eigenwilligen Look haben, aber so war es leider gewünscht.
Jetzt kommt das Problem, und zwar möchte ich neben den Minimize/Close-Buttons auch einen Maximize/Restore Button einbauen. Ist soweit ja auch einfach, nur leider ist das Fenster dann auf dem ganzen Bildschirm, also auch über der Taskleiste.

Hat da jemand vielleicht einen kleinen Ansatz, wie man das hinbekommt? Das ist die einzige Stelle im Programm, an der ich nicht weiter komme....



Danke im vorraus für Antworten und noch einen schönen Sonntag :wink:

Alexander

mkinzler 29. Okt 2006 10:45

Re: Borderstyle bsNone und "normales" Maximieren
 
Setzte doch die Constraints dementsprechend.

3_of_8 29. Okt 2006 10:59

Re: Borderstyle bsNone und "normales" Maximieren
 
Wie hast du das maximieren denn implementiert?

Andreas L. 29. Okt 2006 11:51

Re: Borderstyle bsNone und "normales" Maximieren
 
Hi,
Delphi-Quellcode:
left := 0;
top := 0;
width := screen.workareawidth;
height := screen.workareaheight;
bevor du das auslöst, speicherst du eben die top, height, width, left des Forms in globale Variablen und bei einen erneuten Klick auf den Maximize/Restore-Button setzt du die Werte aus den Variablen.

wicht 29. Okt 2006 14:12

Re: Borderstyle bsNone und "normales" Maximieren
 
Bis jetzt lief das so:

Delphi-Quellcode:
if WindowState = wsNormal then
  PostMessage(Handle, WM_SYSCOMMAND, SC_MAXIMIZE, 0)
else if WindowState = wsMaximized then
  PostMessage(Handle, WM_SYSCOMMAND, SC_RESTORE, 0);
Danke schonmal für die Antworten - werde es mal so versuchen, wie von Andreas vorgeschlagen :-D

3_of_8 29. Okt 2006 14:21

Re: Borderstyle bsNone und "normales" Maximieren
 
Delphi-Quellcode:
case WindowState of
wsNormal: WindowState:=wsMaximized;
wsMaximized: WindowState:=wsNormal;
end;
So würd ichs machen. Aber das wird wahrscheinlich dein Problem nicht lösen, Andreas' Lösung wahrscheinlich schon eher.


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