Delphi-PRAXiS
Seite 1 von 2  1 2      

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 Maximieren von Forms verhindern (mit spTBX Lib) (https://www.delphipraxis.net/65066-maximieren-von-forms-verhindern-mit-sptbx-lib.html)

alias5000 11. Mär 2006 20:26


Maximieren von Forms verhindern (mit spTBX Lib)
 
Hallo!
Grundfrage ist: Wie kann ich verhindern, dass meine Form maximiert wird?

Eigentlich ganz simpel, gäbe es dort nicht ein paar Einschränkungen:
-durch den Einsatz der TspTBXTitleBar aus der Komponentensammlung Bei Google suchenspTBX Lib wird der BorderStyle der betroffenen Form automatisch auf bsNone gestellt, was auch so bleiben muss. Dadurch haben die Einstellungen bei TFormXY.BorderIcons keine Wirkung mehr.
-Wenn ich einen Doppelklick auf die Titelleiste mache, wird das Fenster auch schön maximiert, wie bei einer normalen Titelleiste (also nicht spTBXTitleBar). Die würde ich gerne auch verhindern.

:arrow: Läuft dieser Vorgang über Messages (WM_bla, CM_bla,...)? Kann ich diese schön abfangen und ins nichts verrinnen lassen?

Gruß alias5000

xZise 11. Mär 2006 20:33

Re: Maximieren von Forms verhindern (mit spTBX Lib)
 
Hast du es schon versucht mit folgender Umstellung?
Delphi-Quellcode:
Form.BorderIcon := [biSystemMenu,biMinimize]
Das müsste helfen!

alias5000 11. Mär 2006 20:43

Re: Maximieren von Forms verhindern (mit spTBX Lib)
 
Zitat:

Zitat von alias5000
[...]wird der BorderStyle der betroffenen Form automatisch auf bsNone gestellt, was auch so bleiben muss. Dadurch haben die Einstellungen bei TFormXY.BorderIcons keine Wirkung mehr[...]

Wie du siehst hab ich das schon und leider gehts nicht. Eine Idee wäre noch, das mal in der Laufzeit zu tun, das teste ich gleich...

Aber gibts net sowas wie CM_MAXIMIZE für ne Form oder so?

Gruß alias5000

Ratte 11. Mär 2006 20:49

Re: Maximieren von Forms verhindern (mit spTBX Lib)
 
Eine Form hat doch die Eigenschaft OnCanResize. Einfach immer verbieten und das müsste es sein.

Ratte

alias5000 11. Mär 2006 20:55

Re: Maximieren von Forms verhindern (mit spTBX Lib)
 
Aber woher soll ich erkennen, dass das Fenster maximiert werden soll. Wenn der User es sich so manuell hinzieht solls akzeptiert werden (auch wenn ich den Benutzer dann für blöd halte, so manuelles hinziehen sollte erlaubt sein). Ich will solches Verhalten, wie z.B. beim Doppelklick auf die Titelleiste oder im Systemmenü auf Maximieren halt verhindern.

Gruß alias5000

xZise 11. Mär 2006 21:16

Re: Maximieren von Forms verhindern (mit spTBX Lib)
 
Also man könnte es "austricksen" ^^
Delphi-Quellcode:
if Form.width >= Screen.Width then
  dec(Form.Width, 2);
if Form.Heigth>= Screen.Heigththen
  dec(Form.Heigth, 2);
Andere möglichkeit wäre die Constraints zu setzten :?

alias5000 11. Mär 2006 21:40

Re: Maximieren von Forms verhindern (mit spTBX Lib)
 
Ja aber das sind bloß so "halbe" Lösungen. Es geht nur darum, zu verhindern, dass der Maximiert-Status nicht geht.
Möglich ist es, TFormXY.windowState auf wsnormal zu setzen, wenn man im Ereignis TFormXY.OnResize feststellt, dass der windowState wsMaximized ist. Das Problem ist nur die Animation, die trotz allem ausführt wird.

xZise 11. Mär 2006 21:50

Re: Maximieren von Forms verhindern (mit spTBX Lib)
 
Ist WindowState blockiert?
Delphi-Quellcode:
procedure TForm1.FormResize(Sender: TObject);
begin
  if Form1.WindowState = wsMaximized then
    Showmessage('Das Fenster ist nun maximiert');
end;

alias5000 11. Mär 2006 21:56

Re: Maximieren von Forms verhindern (mit spTBX Lib)
 
Nein. Das funtkioniert schon, aber es läuft so ab:
  • Doppelklick auf die Titelleiste
  • Animnation zum maximieren wird gestartet, windowstate ist noch wsnormal
  • wenn Animtion fertig ist, wird OnResize ausgelöst, erst jetzt ist windowstate wsmaximized
  • Wenn ich hier zurück auf wsnormal stelle, gibts wieder eine Animation zurück.
  • Das hier ist halt irgendwie nur eine Notlösung...

Gruß alias5000

DGL-luke 11. Mär 2006 22:02

Re: Maximieren von Forms verhindern (mit spTBX Lib)
 
hmm... also ich finde, so ein Verhalten könnte vom User ziemlich einfach als "nein, ich will nicht maximiert werden" interpretiert werden. Noch ein "Beep;" dazu, und die Sache ist gegessen...


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:35 Uhr.
Seite 1 von 2  1 2      

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