AGB  ·  Datenschutz  ·  Impressum  







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

Problem mit Constraints der Form

Ein Thema von Mazel · begonnen am 13. Nov 2006 · letzter Beitrag vom 24. Mär 2007
Antwort Antwort
Benutzerbild von Mazel
Mazel

Registriert seit: 11. Nov 2005
Ort: Leipzig
831 Beiträge
 
#1

Problem mit Constraints der Form

  Alt 13. Nov 2006, 18:29
Hallo,

mit der Eigenschaft Constraints kann ich meiner Form eine Maximal- und Minimalgröße festlegen. Jetzt ist mir aber aufgefallen, dass, wenn ich die Form bis auf die Minimalmaße Resize und dann versuche noch weiter die Form zu verkleinern, verschiebe ich die Form um genau die Minimalgröße nach unten oder nach rechts. Wie kann ich dieses Problem umgehen?

Gruß
Mazel
Marcel Jänicke
www.mj-software.net
  Mit Zitat antworten Zitat
Benutzerbild von Mazel
Mazel

Registriert seit: 11. Nov 2005
Ort: Leipzig
831 Beiträge
 
#2

Re: Problem mit Constraints der Form

  Alt 14. Nov 2006, 18:34
Hat keiner eine Idee?

Gruß
Mazel
Marcel Jänicke
www.mj-software.net
  Mit Zitat antworten Zitat
Benutzerbild von Mazel
Mazel

Registriert seit: 11. Nov 2005
Ort: Leipzig
831 Beiträge
 
#3

Re: Problem mit Constraints der Form

  Alt 16. Nov 2006, 15:10
Noch ein Versuch.

Gruß
Mazel
Marcel Jänicke
www.mj-software.net
  Mit Zitat antworten Zitat
Benutzerbild von Mazel
Mazel

Registriert seit: 11. Nov 2005
Ort: Leipzig
831 Beiträge
 
#4

Re: Problem mit Constraints der Form

  Alt 23. Mär 2007, 16:14
Es ist zwar schon etwas her, aber dennoch habe ich das Problem nicht beheben können. Ist den niemand der das selbe Problem, hat?
Marcel Jänicke
www.mj-software.net
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#5

Re: Problem mit Constraints der Form

  Alt 23. Mär 2007, 22:14
Das ist ein "normales" Problem. Das kenne ich schon seit Delphi 4 und auch noch vom BDS2006, von daher gibt es wohl auch keine Antwort. Theoretisch könntest du über die SetBounds() Methode und den Windowsbotschaften beim verschieben des Fensters dieses verhindern. Merke dir während des Verschiebens, dass verschoben wird und im SetBounds() keine Änderungen an Left und Top zulassen, wenn das Flag gesetzt ist. Das wäre mal so eine b'n'd Lösung die mir zZ einfällt.
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

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

Re: Problem mit Constraints der Form

  Alt 24. Mär 2007, 07:41
du kannst das ganze über wm_sizing verhindern. Du musst also diese Message selbst händeln und wenn die größe zu klein wird verwirfst du einfach die Größenänderung.

Delphi-Quellcode:
  private
    procedure WMSizing(var AMsg: TMessage); message wm_sizing;
[...]
procedure TForm1.WMSizing(var AMsg: TMessage);
var
  lRect : PRect;
begin
  lRect := PRect(AMsg.LParam);

  if (Constraints.MinWidth > 0) and (lRect.Right - lRect.Left < Constraints.MinWidth) then
  begin
    if (AMsg.WParam = WMSZ_RIGHT) or (AMsg.WParam = WMSZ_BOTTOMRIGHT) or (AMsg.WParam = WMSZ_TOPRIGHT) then
      lRect.Right := lRect.Left + Constraints.MinWidth
    else
      lRect.Left := lRect.Right - Constraints.MinWidth;
  end;


  if (Constraints.MinHeight > 0) and (lRect.Bottom - lRect.Top < Constraints.MinHeight) then
  begin
    if (AMsg.WParam = WMSZ_Bottom) or (AMsg.WParam = WMSZ_BOTTOMRIGHT) or (AMsg.WParam = WMSZ_BOTTOMLEFT) then
      lRect.Bottom := lRect.Top + Constraints.MinHeight
    else
      lRect.Top := lRect.Bottom - Constraints.MinHeight;
  end;
end;
Wenn du auch noch das MaxWidth und MaxHeight von Contraints richtig haben willst musst du es natürlich ergänzen. So wird nur MinWidth und MinHeight von Constraints ordentlich verarbeitet und verhindert.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Benutzerbild von Mazel
Mazel

Registriert seit: 11. Nov 2005
Ort: Leipzig
831 Beiträge
 
#7

Re: Problem mit Constraints der Form

  Alt 24. Mär 2007, 10:49
Ich danke dir SirThornberry, auch für die PN

Dies ist eine schöne Prozedur.
Momentan ist es mir wichtig, das Min... behandelt wird, weil man ja doch meistens eine bestimmte MinGröße beibehalten will.

Nun ist das Problem endlich gelöst.

Gruß
Mazel
Marcel Jänicke
www.mj-software.net
  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 13:49 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