Entwickler-Ecke

Sonstiges (Delphi) - Fenstergröße unveränderbar machen


Lernenochdazu - Do 14.07.22 11:04
Titel: Fenstergröße unveränderbar machen
Hallo,

wisst ihr wie ich einstelle dass die Fenstergröße unveränderbar ist? Sie soll maximiert bleiben und nicht mit der Maus oder sonstigem veränderbar sein. Habe gelesen man solle das über den BorderStyle einstellen können, aber das funktioniert bei mir nicht. Zu mindestens nicht mit dem normalen Design. Ich würde gerne einfach nur das Symbol neben dem X ausblenden und es nicht verziehbar machen.

LG

Moderiert von user profile iconTh69: Delphi-Tags hinzugefügt


Sinspin - Do 14.07.22 11:24

Ganz erhlich, wenn ich mir den Quelltext so ansehe den Du hier gepostet hast, um uns die Stelle zu zeigen an der es nicht geht, da muss ich dir zustimmen, das geht nicht.
Meine Glaskugel funktioniert zwar, ist aber gerade mit anderen Dingen beschäftigt wo ich sie nicht bei stören will.

Also, wenn Du uns zeigst was du machst, dann können wir helfen, sonst nicht.


Ralf Jansen - Do 14.07.22 17:35

TCustomForm.BorderStyle [https://docwiki.embarcadero.com/Libraries/Sydney/en/Vcl.Forms.TCustomForm.BorderStyle]

Nach Doku willst du bsDialog.

Moderiert von user profile iconTh69: URL-Titel hinzugefügt
Moderiert von user profile iconTh69: Delphi-Tags hinzugefügt


Lernenochdazu - Fr 15.07.22 08:41

Ich hab bsdialog schon auf die Form angewendet, allerdings kann ich die Fenstergröße trotzdem ändern. Mit der Maus verziehen oder über den Button neben dem X.

Moderiert von user profile iconTh69: Vollzitat entfernt


Andreas_500 - Fr 15.07.22 09:00

Hallo,
versuch es mal so:

Delphi-Quelltext
1:
Form1.BorderStyle:= bsSingle; // Formgröße NICHT änderbar                    

Grüße, Andreas


Lernenochdazu - Fr 15.07.22 09:09

Über den Button neben dem X kann ich es trotzdem noch verkleinern, danach kann ich es auch verziehen.

Moderiert von user profile iconTh69: Vollzitat entfernt


Andreas_500 - Fr 15.07.22 09:28

Stelle in den Properties auch noch Folgendes ein:
BorderIcons

Delphi-Quelltext
1:
2:
biSystemMenu:= True;
biMinimize:= True;

Der Rest ist auf False eigestellt.
Gruß, Andreas


Lernenochdazu - Fr 15.07.22 09:40

Ist bereits eingestellt.

Moderiert von user profile iconTh69: Vollzitat entfernt


Sinspin - Fr 15.07.22 09:48

Dann bau mal ein Testprogramm in dem es nicht klappt und häng das hier an. So dass wir es selber sehen können.

Und, lass bitte die komplett Zitate weg wenn du antwortest.


Lernenochdazu - Fr 15.07.22 10:11

In der Testform funktioniert es fast mit diesen Einstellungen. Ziehen kann ich das Fenster nicht mehr. Bei den BorderIcons hab ich noch biMaximize entfernt, dann geht das darauf schonmal auch nicht mehr. Einzig und allein mit einem Doppelklick auf die obere Leiste verändert sich die Größe noch? Wo kann ich das ändern, dass es da auch nicht mehr passiert.

Moderiert von user profile iconTh69: Delphi-Tags hinzugefügt


Andreas_500 - Fr 15.07.22 10:26

Meinst Du das Minimieren des Fensters? Dann bitte in den Properties auch

Delphi-Quelltext
1:
biMinimize:= False                    

einstellen.


jasocul - Fr 15.07.22 10:27

Im Ereignis CanResize der Form den Var-Parameter Resize mit False belegen.
Prinzipiell sollte dann keine Resize mehr möglich sein. Ob das allerdings den Doppelklick auf den Title-Bereich des Fensters berücksichtigt, weiß ich nicht und kann ich gerade auch nicht testen.


Th69 - Fr 15.07.22 11:07

Welche Delphi-Version verwendest du?
Eigentlich sollte ein Deaktivieren des Maximize-Buttons auch das Maximieren per Doppelklick unterbinden.

Ansonsten direkt die Windows-Message abfangen, s. A Collection of Delphi/Lazarus Tips & Tricks [https://kodu.ut.ee/~kiisk/Delphi-tips-tricks.pdf] ("2.2 Capture Maximize/Minimize/Close button clicks"), nur daß du diesmal WM_NCLBUTTONDBLCLK abfragen mußt.


Lernenochdazu - Fr 15.07.22 11:19

user profile iconTh69 hat folgendes geschrieben Zum zitierten Posting springen:
Welche Delphi-Version verwendest du?
Delphi 11

Ich probiere das andere mal


Lernenochdazu - Mi 27.07.22 11:26

Noch wer Ideen?


Th69 - Mi 27.07.22 17:39

Was hat denn an meinem Vorschlag nicht funktioniert?

Am besten du zeigst mal deinen geänderten Code dazu.