Skalierungs-Problem ausschließlich bei 640x480
-
Hallöchen zusammen,
ich verzweifle noch... Warum wird mein Form bei einer physikalischen Bildschirmauflösung von 640 x 480 falsch skaliert? Bei allen anderen Bilschirmauflösungen (800 x 600 aufwärts) gibt es keine Probleme. Auch nicht, wenn ich bei diesen höheren Auflösungen das Form auf 640 x 480 verkleinere.
Das Problem sieht man am besten auf folgender Seite, wo hierzu einige Screenshots mit Erklärungen sind:
http://www.stefanbion.de/tmp/resize_problem/
Ist dies ein Bug? Das Phänomen tritt bei BCB4 und 5 auf.
Danke und Gruß,
Stefan
-
hm,
greifst du in der Skalierung manuel ein ?
-
hast du evtl. in deinen ListView ein Constraints MinHeight angegeben?
-
Hallo Andreas,
> greifst du in der Skalierung manuel ein
Nein, absolut nicht. Scaled ist zwar auf true gesetzt und PixelsPerInch standardmäßig auf 96 gelassen, aber manuell mache ich da überhaupt "nüscht".
Hallo VergissEs,
> hast du evtl. in deinen ListView ein Constraints MinHeight angegeben?
Nirgendwo sind irgendwelche Constraints angegeben.
Das Seltsame ist ja, daß es nur bei der *physikalischen Bildschirmauflösung* von 640 x 480 nicht so funktioniert wie es soll. Bei einer *physikalischen Bildschirmauflösung* von 800 x 600 oder größer und *gleicher Fenstergröße* wie bei 640 x 480 passiert das nicht. Da kann ich das Fenster problemlos auf 640 x 480 und darunter verkleinern, ohne daß das StringGrid oder das TBevel/TPaintBox zu groß wird und dadurch abgeschnitten wird (siehe Screenshots).
Ich habe nachgesehen: Bei 640 x 480 verwendet Windows bei mir auch 96 dpi - daran kann's also nicht liegen.
Gruß,
Stefan
-
Hallo,
ich glaube die Ursache für dieses Resize-Problem gefunden zu haben, habe aber noch keine Lösung dafür. Es ist tatsächlich ein Resize- und kein Skalierungs-Problem. Und zwar betrifft es ausschließlich Elemente, die rechts und/oder unten im Formular verankert sind. Zur Laufzeit bei einer niedrigeren Bildschirmauflösung, bei der das Formular in Entwurfsgröße nicht mehr auf den Bildschirm paßt, wird zwar das Formular automatisch verkleinert, aber es werden dabei nicht die Verankerungen berücksichtigt, d.h. diese automatische Verkleinerung beim Programmstart greift anscheinend zu früh, um irgendwelche Ereignisbehandlungsroutinen aufzurufen, die dafür sorgen, daß die betreffenden Elemente am Formular verankert bleiben. Erst wenn das Programm läuft, funktioniert die Verankerung wieder - aber dann natürlich mit falschen Werten. Ich halte das eindeutig für einen Borland-Bug.
Vielleicht wäre es ein "Workaround", sich bei OnFormCreate() alle Breiten und Höhen von rechts und/oder unten verankerten Elementen und die Formulargröße zur Designzeit zu merken, und diese dann bei OnFormActivate() wieder entspechend zu setzen....?
Gruß,
Stefan
-
hi,
über dieses problem sind wir bei der entwicklung unserer software ebenfalls gestossen. ankers kannst du völlig vergesse. anfangs haben wir diese inder formcreate von hand gemacht. dies ist aber nicht ganz sauber und unfein wie du vielleicht merken wirst.
jetzt haben wir eine eigene komponente entwickelt die das resize automatisch macht. hier werden alle elemente inkl. schriftgroessen auf der form angepasst.
du musst diese lediglich installieren und auf deine form ziehen....fertig.eigentlich würde mich mal interessieren, ob jemand weiss wo man diese eventuell kommerziell vertreiben könnte. hier kenn ich mich leider nicht so gut aus. aber vielleicht gibt es ja einige die interesse an so einer komponente haben.
ciao
-
Original erstellt von konvenienz:
eigentlich würde mich mal interessieren, ob jemand weiss wo man diese eventuell kommerziell vertreiben könnte.ja hier: www.kazaa.com
-
hi,
wüsste nicht was die mit unserer komponente anfangen könnten ;-).
-
Original erstellt von konvenienz:
jetzt haben wir eine eigene komponente entwickelt die das resize automatisch macht. hier werden alle elemente inkl. schriftgroessen auf der form angepasst.
du musst diese lediglich installieren und auf deine form ziehen....fertig.Hi,
gibt's die schon zum Download!MFG
Alexander Sulfrian
-
hi,
eigentlich nicht da wir sie vorrangig nur für interne zwecke nutzen, sprich für die von uns entwickelten softwaretools.
da ich aber hier immer wieder von diesen resizeproblemen lese, war es mit dem komerziellen vertrieb nur so eine idee. gibt es denn keine komponente die das kann?
wir würden sie aber gerne zu testzwecken zur verfügung stellen. einfach email an
info@synaptron.deciao
-
Ok, danke Euch für Eure Antworten.
Als "Workaround" mache ich es jetzt so, daß ich das Formular in 800 x 600 designe und nur zum Erstellen der .exe auf 640 x 480 verkleinere. Im Programm wird es dann zur Laufzeit wieder auf bis zu 800 x 600 vergrößert (abhängig von der tatsächlichen Bildschirmauflösung). Das funktioniert gut, nur darf man das Verkleinern des Forms vor dem Erzeugen der .exe eben nicht "vergessen"...
Gruß,
Stefan