AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi Formular: Minimale Breite (OnPaint-BUG?)
Thema durchsuchen
Ansicht
Themen-Optionen

Formular: Minimale Breite (OnPaint-BUG?)

Ein Thema von 64Jabor · begonnen am 27. Dez 2008 · letzter Beitrag vom 30. Dez 2008
Antwort Antwort
Seite 1 von 2  1 2      
64Jabor

Registriert seit: 9. Jan 2008
158 Beiträge
 
Delphi 7 Personal
 
#1

Formular: Minimale Breite (OnPaint-BUG?)

  Alt 27. Dez 2008, 22:15
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
Sebastian
Unsren Clan im volle Lauf, hält weder Ochs noch Esl auf ^^
  Mit Zitat antworten Zitat
Benutzerbild von sirius
sirius

Registriert seit: 3. Jan 2007
Ort: Dresden
3.443 Beiträge
 
Delphi 7 Enterprise
 
#2

Re: Formular: Minimale Breite (OnPaint-BUG?)

  Alt 27. Dez 2008, 22:28
Was immer du genau machst, dein Problem sollte sich mit Align=alClient lösen.
Dieser Beitrag ist für Jugendliche unter 18 Jahren nicht geeignet.
  Mit Zitat antworten Zitat
64Jabor

Registriert seit: 9. Jan 2008
158 Beiträge
 
Delphi 7 Personal
 
#3

Re: Formular: Minimale Breite (OnPaint-BUG?)

  Alt 27. Dez 2008, 23:14
:/
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...
Sebastian
Unsren Clan im volle Lauf, hält weder Ochs noch Esl auf ^^
  Mit Zitat antworten Zitat
Hawkeye219

Registriert seit: 18. Feb 2006
Ort: Stolberg
2.227 Beiträge
 
Delphi 2010 Professional
 
#4

Re: Formular: Minimale Breite (OnPaint-BUG?)

  Alt 27. Dez 2008, 23:58
Hallo Sebastian,

wäre nicht das Ereignis Delphi-Referenz durchsuchenTForm.OnResize geeigneter für dein Vorhaben? Bei einem Verkleinern muss das Formular nicht zwangsläufig komplett neugezeichnet werden.

Gruß Hawkeye
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.332 Beiträge
 
Delphi 11 Alexandria
 
#5

Re: Formular: Minimale Breite (OnPaint-BUG?)

  Alt 28. Dez 2008, 02:57
Zitat von 64Jabor:
:/
Thx aber da kann ich auch den WindowState auf wsMaximized stellen und per BorderStyle den Resize rausnehmen.
NICHT Sinn der Sache...
Was hat das eine mit dem anderen zu tun?

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.
Sebastian Jänicke
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
10.993 Beiträge
 
Delphi 12 Athens
 
#6

Re: Formular: Minimale Breite (OnPaint-BUG?)

  Alt 28. Dez 2008, 08:50
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.
Uwe Raabe
  Mit Zitat antworten Zitat
64Jabor

Registriert seit: 9. Jan 2008
158 Beiträge
 
Delphi 7 Personal
 
#7

Re: Formular: Minimale Breite (OnPaint-BUG?)

  Alt 29. Dez 2008, 14:02
Achso,

das erklärt einiges, vielen Dank!
OnResize müsste demnach aber die beste Variante sein, nicht?
Sebastian
Unsren Clan im volle Lauf, hält weder Ochs noch Esl auf ^^
  Mit Zitat antworten Zitat
Benutzerbild von toms
toms
(CodeLib-Manager)

Registriert seit: 10. Jun 2002
4.648 Beiträge
 
Delphi XE Professional
 
#8

Re: Formular: Minimale Breite (OnPaint-BUG?)

  Alt 29. Dez 2008, 14:11
Zitat von 64Jabor:
OnResize müsste demnach aber die beste Variante sein, nicht?
einfacher ist doch
Zitat:
Align des TEmbeddedWebBrowser auf alClient
Thomas
  Mit Zitat antworten Zitat
64Jabor

Registriert seit: 9. Jan 2008
158 Beiträge
 
Delphi 7 Personal
 
#9

Re: Formular: Minimale Breite (OnPaint-BUG?)

  Alt 29. Dez 2008, 21:17
@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?
Sebastian
Unsren Clan im volle Lauf, hält weder Ochs noch Esl auf ^^
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#10

Re: Formular: Minimale Breite (OnPaint-BUG?)

  Alt 29. Dez 2008, 21:33
Hallo,

dazu kannst du vielleicht die Eigenschaft Delphi-Referenz durchsuchenAnchors nutzen. Ist dort xxLeft auf true, dehnt sich die Komponenten-Größe nur nach links aus usw.
Spiele damit einfach etwas herum.

Grüße, Matze
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 08:30 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