![]() |
Formular: Minimale Breite (OnPaint-BUG?)
Hallo DP,
ich habe folgendes Problem: Mein Formular hat eine minimale Breite und Höhe, das habe ich per Constraints.MinHeight/Width eingestellt. Nun habe ich jedoch im OnPaint-Ereignis des Formulares eingestellt, dass eine Komponente auf dem Formular - ein TEmbeddedWebBrowser - immer die Breite des Formulares (clientwidth) und enstprechende Höhe (clientheight - komponente.top) bekommt. Solange ich das Formulare VERGÖßERE, klappt alles wunderbar, der TEmbedded... passt sich an usw. doch wenn ich nun das Formular verkleinere, dann stimmt irgendetwas nicht mehr. Der Browser passt sich nicht mehr an, seine Ränder verschwinden hinter ScrollBars, selbst wenn das Formular doppelt so breit wie normal ist und ich es nur um einen Pixel verkleinere, und bleiben verborgen bis man das Forumlar wieder vergrößert. Woran kann das liegen? greetZ 64Jabor |
Re: Formular: Minimale Breite (OnPaint-BUG?)
Was immer du genau machst, dein Problem sollte sich mit Align=alClient lösen.
|
Re: Formular: Minimale Breite (OnPaint-BUG?)
:/
Thx aber da kann ich auch den WindowState auf wsMaximized stellen und per BorderStyle den Resize rausnehmen. NICHT Sinn der Sache... Ich will ja "nur" dass mein Formular veränderbar in seiner Größe ist, nur halt nicht unter gewissen Grenzen kommt, das habe ich ja gelöst mit dem Constraints. Mein Fenster HAT danach eine gewisse Höhe und Breite! Es geht mir ja darum den Fehler zu beheben, dass sich die ScrollBars wie oben geschildert permanent einmischen - ohne Grund... Was ich bezwecken will hast du hoffentlich verstanden, falls nicht versuche mal deinen Browser auf 10 Pixel Breite zu bringen - es wird nicht klappen. Das Icon und die Button-Gruppe (minimieren, wiederherstellen, schließen) "rammen" sich un verhindern dass es weiter geht. Genau das will ich auch erreichen - nur eben früher, sodass ich die ganzen Komponeten tolerant machen kann, sie sich der Formulargröße anpassen, ABER eben nicht ins Unendliche gestampft werden indem man das Formular einfach viel zu klein macht... |
Re: Formular: Minimale Breite (OnPaint-BUG?)
Hallo Sebastian,
wäre nicht das Ereignis ![]() Gruß Hawkeye |
Re: Formular: Minimale Breite (OnPaint-BUG?)
Zitat:
Align des TEmbeddedWebBrowser auf alClient gesetzt sollte dafür sorgen, dass dieser automatisch immer so groß ist wie das Formular, WindowState auf wsMaximized sorgt dafür, dass das Formular über den ganzen Bildschirm geht. Wo ist da der Zusammenhang? Für eine Größenänderung ist jedenfalls OnPaint sicher nicht der richtige Ort, da hat Hawkeye219 Recht. |
Re: Formular: Minimale Breite (OnPaint-BUG?)
Beim Vergrößern eines Forms wird Paint aufgerufen, weil Teile des Forms gezeichnet werden müssen, die bislang nicht zu sehen sind. Beim Verkleinern ist das nicht nötig, da alles bereits auf dem Bildschirm sichtbar ist - daher kein Paint-Aufruf. Windows zeichnet einfach nur den Rahmen neu und läßt nur das neu zeichnen, was bisher von dem Form verdeckt war.
OnPaint ist also der denkbar schlechteste Zeitpunkt eine Größenanpassung der enthaltenen Controls auszuführen. |
Re: Formular: Minimale Breite (OnPaint-BUG?)
Achso,
das erklärt einiges, vielen Dank! OnResize müsste demnach aber die beste Variante sein, nicht? |
Re: Formular: Minimale Breite (OnPaint-BUG?)
Zitat:
Zitat:
|
Re: Formular: Minimale Breite (OnPaint-BUG?)
@tom
Wenn ich das mache, dann passt sich TEmbeddedWebbrowser immer auf mein Formular an, schön und gut, aber diese Komponente ist nicht die einzige auf meinem Formular... Gibt es eine Möglichkeit bei dieser Methode mit dem align, die Komponente auf einen gewissen Raum zu begrenzen? |
Re: Formular: Minimale Breite (OnPaint-BUG?)
Hallo,
dazu kannst du vielleicht die Eigenschaft ![]() Spiele damit einfach etwas herum. Grüße, Matze |
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:00 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 by Thomas Breitkreuz