Delphi-PRAXiS
Seite 2 von 2     12   

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/)
-   -   Main.Width und Height (https://www.delphipraxis.net/205310-main-width-und-height.html)

Willie1 5. Sep 2020 16:59

AW: Main.Width und Height
 
Hallo Leute,
dieser von mir beschriebene Fehler tritt auf, wenn bei den TForm-Events OnCanResize eingebunden wird. Dann gibt es noch andere merkwürdige Effekte. Sonst funktionieren TForm.Width und Height, wie gewohnt.
Willie.

Dalai 5. Sep 2020 17:09

AW: Main.Width und Height
 
Da TForm.OnCanResize ein Event ist, an das eine Ereignis-Methode gebunden werden kann, stellt sich natürlich (für mich) sofort die Frage, was diese Methode bei dir tut.

Grüße
Dalai

Willie1 5. Sep 2020 17:57

AW: Main.Width und Height
 
Delphi-Quellcode:
procedure TMainForm.FormCanResize(Sender: TObject; var NewWidth,
  NewHeight: Integer; var Resize: Boolean);
begin
  Resize:=(NewHeight > 374) and (NewWidth > 636);
end;
Ich will verhindern, dass das Fenster kleiner wird. Ich habe das Event weggelassen. Ich hatte hier viele Antworten angeregt und will jetzt mitteilen, woran es wohl liegt!? Willie.

Dalai 5. Sep 2020 19:11

AW: Main.Width und Height
 
Ohne diese an das OnCanResize-Event gebundene Methode tritt das im OP beschriebene Problem also nicht auf? Wenn das so ist, dann ist doch gut.

Um eine Mindestgröße eines Forms festzulegen, gibt es Delphi-Referenz durchsuchenTForm.Constraints. Oder du gibst deiner Routine, die die gespeicherten Werte ausliest, entsprechende Vorgabewerte. Oder beides.

Grüße
Dalai

himitsu 5. Sep 2020 20:01

AW: Main.Width und Height
 
Wenn einwas auch nur ein Pixel zu klein ist, beim Ziehen, dann wird alles garnicht geändert,
außerdem springt es beim Ziehen in größeren Achritten, es sei denn du ziehst du Maus extrem langsam, womit es garnicht so leicht ist genau an diese Grenze ran zu kommen.

Ist dir an den Parametern was aufgefallen? (VAR)
Delphi-Quellcode:
procedure TMainForm.FormCanResize(Sender: TObject; var NewWidth, NewHeight: Integer; var Resize: Boolean);
begin
  if NewHeight < 374 then NewHeight := 374;
  if NewWidth < 636 then NewWidth := 636;
end;

// bzw.
NewHeight := Max(NewHeight, 374);
NewWidth := Max(NewWidth, 636);
Aber wozu das Manuelle, wenn es auch automatisch geht?
Form.Contraints.MinHeight und MinWidth


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:27 Uhr.
Seite 2 von 2     12   

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