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 Änderung der Fenstergröße begrenzen (https://www.delphipraxis.net/149082-aenderung-der-fenstergroesse-begrenzen.html)

Keks 13. Mär 2010 23:01


Änderung der Fenstergröße begrenzen
 
Ich würde dem Benutzer gerne die Möglichkeit geben, die Fensterhöhe (jedoch nicht die Fensterbreite!) selbst zu bestimmen, wobei ein Minimum und ein Maximum definiert sein sollen.

Ich habe BorderSize auf bsSizeable gesetzt und muss jetzt noch verhindern, dass die Fensterhöhe beim Ziehen der Ränder kleiner als 300 und größer als 600 Pixel wird. Die Breite soll nicht veränderbar sein!

Ich habe das jetzt mal so angefangen:
Delphi-Quellcode:
procedure WMSIZING(var Msg: TMessage); Message WM_SIZING;

procedure TForm.WMSIZING(var Msg: TMessage);
begin
  if Msg.Msg = WM_SIZING then
  begin
    case Msg.WParam of
      WMSZ_BOTTOM, WMSZ_TOP:
      begin

          if Height > 600 then
            Height := 600
          else if Height < 300 then
            Height := 300;
               
      end;
    end;
  end;
end;
Das funktioniert aber nur sehr unzufriedenstellend. Die Fenstergröße springt beim Ziehen immer hin und her.
Ich glaube, da muss ein anderer Ansatz her, habe aber leider keine bessere Möglichkeit gefunden. Weiß jemand Rat?

blablab 13. Mär 2010 23:32

Re: Änderung der Fenstergröße begrenzen
 
Schau dir die Eigenschaft "Constraints" mal an oder ändere die Fenstergröße in OnCanResize.

Keks 13. Mär 2010 23:50

Re: Änderung der Fenstergröße begrenzen
 
Zitat:

Zitat von blablab
Schau dir die Eigenschaft "Constraints" mal an

Sooo einfach? Oh man, vielen Dank! :)

Das mit der Höhe ist jetzt perfekt.
Bei der Breite habe ich jetzt bei Min und Max jeweils 500 eingetragen. Damit lässt sich die Breite nicht mehr ändern. Lässt sich jetzt noch einstellen, dass der linke und der rechte Rand gar nicht mehr auf die Maus reagieren? Aktuell verändert sich da immer noch der Mauszeiger in den horizontalen Doppelpfeil und wenn ich am linken Rand anpacke, dann lässt sich das Fenster damit verschieben. Das ist zwar nicht gravierend, aber irgendwie unschön.

Keks 17. Mär 2010 07:44

Re: Änderung der Fenstergröße begrenzen
 
Zitat:

Zitat von Keks
Lässt sich jetzt noch einstellen, dass der linke und der rechte Rand gar nicht mehr auf die Maus reagieren? Aktuell verändert sich da immer noch der Mauszeiger in den horizontalen Doppelpfeil und wenn ich am linken Rand anpacke, dann lässt sich das Fenster damit verschieben.

Keiner eine Idee?

Uwe Raabe 17. Mär 2010 09:34

Re: Änderung der Fenstergröße begrenzen
 
Ich glaube nicht , daß sich das ohne tiefe Eingriffe in Windows lösen läßt. Meine Empfehlung: lass es lieber.


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