AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi Größenänderung eines Formulars nur am unteren Rand zulassen
Thema durchsuchen
Ansicht
Themen-Optionen

Größenänderung eines Formulars nur am unteren Rand zulassen

Ein Thema von DSCHUCH · begonnen am 29. Mär 2010 · letzter Beitrag vom 30. Mär 2010
Antwort Antwort
DSCHUCH

Registriert seit: 6. Jun 2007
Ort: Dresden
185 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#1

Größenänderung eines Formulars nur am unteren Rand zulassen

  Alt 29. Mär 2010, 15:00
Mein Problem ist im Betreff bereits ganz gut auf den Punkt gebracht.

Ich habe ein Formular, welches vom Anwender in der Höhe geändert werden kann aber nur am unteren Rand. Also Breite darf nicht geändert werden.

Hintergrund:

mehrere Formulare liegen in einer Scrollbox mit Align AlTop. Damit ist die Breite automatisch die des Hauptfenster, soll auch so sein und der Anwender soll dort nicht ändern können da es dann nur flackert. Das verändern der Höhe am oberen Rand soll deswegen ebenso ausgeschaltet werden.

Kann ich irgendwie feststellen (WindowsMessage) ob und an welchem Rand eines Formulars sich die Maus gerade befindet und dann die Größenänderung verbieten (das kann ich ja schon dadurch erreichen den Borderstyle umzusetzen)

Daniel
  Mit Zitat antworten Zitat
Benutzerbild von Sherlock
Sherlock

Registriert seit: 10. Jan 2006
Ort: Offenbach
3.798 Beiträge
 
Delphi 12 Athens
 
#2

Re: Größenänderung eines Formulars nur am unteren Rand zulas

  Alt 29. Mär 2010, 15:19
Fixe Breite kannst Du doch über die Constraints regeln. Stell einfach ein Min und MaxWidth ein und fertig.

Sherlock
Oliver
Geändert von Sherlock (Morgen um 16:78 Uhr) Grund: Weil ich es kann
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#3

Re: Größenänderung eines Formulars nur am unteren Rand zulas

  Alt 29. Mär 2010, 15:32
Wenn du schon konkret nach der Windows-Nachricht fragst so sei dir wm_sizing genannt.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
samso

Registriert seit: 29. Mär 2009
439 Beiträge
 
#4

Re: Größenänderung eines Formulars nur am unteren Rand zulas

  Alt 30. Mär 2010, 08:10
Da habe ich vor kurzem etwas sehr schönes gesehen (Dank an turboPASCAL), dass ich dann auch dieser Stelle verwenden würde, weil es dem Nutzer durch die Veränderung des Mauszeigers direkt signalisiert, dass er nur den unteren Rand verschieben darf. (Borderstyle ist bsSizeable)

Delphi-Quellcode:
    procedure WMNCHitTest(var Message: TWMNCHitTest); message WM_NCHITTEST;
...
procedure TForm1.WMNCHitTest(var Message: TWMNCHitTest);
begin
  inherited;
  if (Message.Result in [HTLEFT, HTRIGHT, HTTOP, HTTOPLEFT,
                         HTTOPRIGHT, HTBOTTOMLEFT, HTBOTTOMRIGHT]) then
    Message.Result := htClient;
end;
Edit 1:
Laut Microsoft: Minimum supported client: Windows XP
Edit 2:
Ich habe es mit W2K (SP4) getestet, funktioniert wunderbar.
  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 17:03 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