![]() |
Quadratisches Fenster auch während Resize
Servus.
Ich versuche gerade ein kleines Formular zu bauen, dessen Form ich immer quadratisch halten möchte (Inhalt ist eine analoge Uhr). Über ![]() Ich habe folgende Methoden getestet:
Die ersten beiden Methoden waren ohne Erfolg. Quellcode für Methode 3:
Delphi-Quellcode:
Wie schon gesagt, hier entsteht ein Flackern, das wie folgt zu beschreiben ist:
procedure TForm1.FormResize(Sender: TObject);
begin OnResize := nil; if (Width <> CurWidth) then begin CurWidth := Width; CurHeight := Width; Height := Width; end // if (Width <> CurWidth) else if (Height <> CurHeight) then begin CurWidth := Height; CurHeight := Height; Width := Height; end; // if (Height <> CurHeight) OnResize := @FormResize; end; Die Anzeige der neuen Größe ist erst die neue Größe (quadratisch). Wenn ich nun einen Pixel weitergehe mit der Maus, dann springt die Größe des Fensters auf die alte Größe zurück. Wieder einen Pixel weiter und ich erhalte wieder die neue Größe. Kennt Ihr noch eine Methode um ein bestimmtes Seitenverhältnis mit Freepascal/Lazarus zu erzwingen? Danke im Voraus. |
Re: Quadratisches Fenster auch während Resize
Wie ist es damit?
Delphi-Quellcode:
Verhältnis lässt sich darin entsprechend berechnen.
procedure TForm1.FormCanResize(Sender: TObject; var NewWidth,
NewHeight: Integer; var Resize: Boolean); begin NewWidth := NewHeight; Resize := True; end; hab' zu spät gesehen, dass es um Lazarus geht, denke aber solche Basic's sollte da identisch sein. |
Re: Quadratisches Fenster auch während Resize
Zitat:
Ich habe jetzt auch mal WM_ENTERSIZEMOVE und WM_EXITSIZEMOVE getestet. Kommen ebenfalls nicht bei der Form an. Entweder ich gewöhne mich an dieses "Flackern" oder ich schreibe das Programm in Delphi... |
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:57 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz