![]() |
Seitenverhältnisse von Formularen beim Resize belassen
Hallo,
ich möchte ein vermutlich triviales Problem lösen - finde aber keinen Lösungsansatz. Ich habe eine Form, in der ich JPG-Bilder formatfüllend anzeige. In zwei Integer-Variablen habe ich das Seitenverhältnis der Image-Komponente vorgegeben, z.B. 4:3 (Width:Height). Jetzt möchte ich, daß wenn ich die Größe dieser Form durch ziehen mit der Maus verändere, daß 1. das Seitenverhältnis der Form immer gemäß der beiden Integervariablen anpaßt. 2. das Bild sich erst nach Beendigung der Größenveränderung neu aufbaut. Kann mir jemand einen Lösungsansatz aufzeigen? Gruß aus Köln Thomas |
Re: Seitenverhältnisse von Formularen beim Resize belassen
Reagiere doch auf Größenänderungen und passe dann die Größe an
|
Re: Seitenverhältnisse von Formularen beim Resize belassen
|
Re: Seitenverhältnisse von Formularen beim Resize belassen
Zitat:
dafür eignet sich dann aber besser das Ereignis onResize des Formulars. |
Re: Seitenverhältnisse von Formularen beim Resize belassen
@SirThornberry:
Vielen Dank für den Tipp. Funktioniert prima. ... verstehe nur nicht, warum ich dieses Artikel nicht gefunden habe. Vermutlich: PEBKAC :oops: Edit: Hast Du auch 'ne Lösung für Deine offene Frage: Änderung über einen Eckpunkt des Rahmen? @bitsetter: Mit dem Event OnResize bin ich bereits am experimentieren. Nur muß ich beim Beginn des Resize das automatische Aktualisieren des Bildes abschalten und am Ende wieder einschalten. Aber wie? Denn die Routine wird ja bei der Größenänderung permanent aufgerufen. Und woran erkenne ich "Beginn" und "Ende" des Resize-Vorgang? Gruß aus Köln Thomas |
Re: Seitenverhältnisse von Formularen beim Resize belassen
Zitat:
onResize wird also nach dem Ändern ausgelöst. |
Re: Seitenverhältnisse von Formularen beim Resize belassen
[quote="bitsetter"]
Zitat:
btw. hätte ich ebenfalls Interesse an OnBeginResize und OnEndResize-Callbacks, welche wirklich erst nach dem kompletten Resize-Vorgang (EndResize: Mousetatste wird losgelassen) gefeuert werden. |
Re: Seitenverhältnisse von Formularen beim Resize belassen
Hallo BitSetter,
leider kennt meine Form2 diesen Satz aus der Hilfe nicht oder hält sich zumindestens nicht daran: Ich habe folgende Procedue in meiner Form2, welche nur zwei Objekte enthält, ein TPanel und darin ein TImage, beide Align := alClient:
Delphi-Quellcode:
Während der gesamten Größenänderung werden meine beiden Textfelder in der Form1 permanent aktualisiert und nicht erst am Ende (also wenn ich die Maus nicht mehr bewege bzw. die Maustaste loslasse). Daraus schließe ich, daß die Routine OnResize nicht erst am Ende des Resize aufgerufen wird.
procedure TForm2.FormResize(Sender: TObject);
begin Form1.EditWidth.Text := IntToStr(Image.Width); Form1.EditHeight.Text := IntToStr(Image.Height); end; Edit: Dunkel scheint meine Erkenntnis zu bestätigen, oder? Gruß aus Köln Thomas |
Re: Seitenverhältnisse von Formularen beim Resize belassen
Moin, Moin Zusammen!
Wenn ich das richtig verstehe, dann wäre für euch doch die Message WM_ExitSizeMove die Richtige - oder? Zitat : "The WM_EXITSIZEMOVE message is sent once to a window after it has exited the moving or sizing mode." Und dann gibt es noch , Zitat : "The WM_ENTERSIZEMOVE message is sent once to a window when it enters the moving or sizing mode." Gruß Ralph |
Re: Seitenverhältnisse von Formularen beim Resize belassen
Hi Ralph,
super :hello: Zitat:
Dank aus Köln Thomas |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:34 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