AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Änderung der Fenstergröße begrenzen

Offene Frage von "Keks"
Ein Thema von Keks · begonnen am 14. Mär 2010 · letzter Beitrag vom 17. Mär 2010
Antwort Antwort
Keks

Registriert seit: 25. Mai 2005
122 Beiträge
 
#1

Änderung der Fenstergröße begrenzen

  Alt 14. Mär 2010, 00:01
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?
  Mit Zitat antworten Zitat
blablab

Registriert seit: 3. Jan 2006
509 Beiträge
 
Delphi 7 Enterprise
 
#2

Re: Änderung der Fenstergröße begrenzen

  Alt 14. Mär 2010, 00:32
Schau dir die Eigenschaft "Constraints" mal an oder ändere die Fenstergröße in OnCanResize.
  Mit Zitat antworten Zitat
Keks

Registriert seit: 25. Mai 2005
122 Beiträge
 
#3

Re: Änderung der Fenstergröße begrenzen

  Alt 14. Mär 2010, 00:50
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.
  Mit Zitat antworten Zitat
Keks

Registriert seit: 25. Mai 2005
122 Beiträge
 
#4

Re: Änderung der Fenstergröße begrenzen

  Alt 17. Mär 2010, 08:44
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?
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.475 Beiträge
 
Delphi 12 Athens
 
#5

Re: Änderung der Fenstergröße begrenzen

  Alt 17. Mär 2010, 10:34
Ich glaube nicht , daß sich das ohne tiefe Eingriffe in Windows lösen läßt. Meine Empfehlung: lass es lieber.
Uwe Raabe
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:16 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