AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Die Delphi-IDE Delphi 11.2 - Fenster werden kleiner und kleiner
Thema durchsuchen
Ansicht
Themen-Optionen

Delphi 11.2 - Fenster werden kleiner und kleiner

Ein Thema von Michael II · begonnen am 31. Okt 2022 · letzter Beitrag vom 4. Nov 2022
Antwort Antwort
Michael II

Registriert seit: 1. Dez 2012
Ort: CH BE Eriswil
763 Beiträge
 
Delphi 11 Alexandria
 
#1

Delphi 11.2 - Fenster werden kleiner und kleiner

  Alt 31. Okt 2022, 15:25
Nach der Umstellung von 10.4.2 auf 11.2 gab's bei mir viele Anzeigeprobleme mit scaled=TRUE Fenstern, weil ich fixe Werte/Bilder/BitBtns/SpeedBtns im Code hatte und die Fenster in der IDE skaliert werden. Da passte halt einiges nicht mehr zusammen. Ich hätte früher lesen sollen, worauf ich achten sollte; dann hätte ich im vergangenen Monat deutlich mehr geschlafen. Mein Problem - nicht das von Delphi 11.2. Von D2 auf D5 auf D7 auf viele XEs bis 10.4.2 liefs ja immer gut.

Als alles OK schien und ich dann meine App mit anderer Windows Skalierung testete lief's wieder teilweise schief - wieder mein Problem.

Aber beim Rumspielen mit der Skalierung unter Windows habe ich entdeckt, dass meine scaled=TRUE Fenster verkleinert werden: Wenn ich unter Windows die Skalierung von 200% auf 100% und zurück auf 200% ändere, dann ist meine Form kleiner geworden; wenn ich's erneut tu, passiert es wieder. Ich habe dies mit einem Minimalprojekt (einfach nur eine Form) getestet. Genau gleich.

Delphi hat hier offenbar vom Konzept her ein Problem: Delphi sollte sich doch die Werte des ursprünglichen Formulars merken und immer ausgehend von diesen Werten die Abmessungen der skalierten Fensterversionen berechnen.

OK, es werden wahrscheinlich wenige Leute ständig die Skalierung unter Windows ändern und damit ist das Problem kein grosses.

Was ich mich jedoch frage: Leider habe ich keinen zweiten Monitor und kann dies nicht testen. Tritt das Problem auch auf, wenn man auf Monitor 1 und 2 nicht die gleiche Skalierung wählt und das Fenster von 1 zu 2 und zurück zu 1 schiebt?

Oder tritt das Problem eh nur bei mir auf?

Falls jemand testet noch ein Tipp: Delphi IDE schliessen, bevor du die Skalierung unter Windows änderst. Ich tat es nicht: Bei meinem Delphi 11.2 wurde durch die Wechsel der Bereich mit den Toolbars immer höher, weil die Griffleisten der jeweiligen Toolbars nach unten wanderten. Da half nur ein Reset via Registry.
Michael Gasser
  Mit Zitat antworten Zitat
Benutzerbild von dummzeuch
dummzeuch

Registriert seit: 11. Aug 2012
Ort: Essen
1.623 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#2

AW: Delphi 11.2 - Fenster werden kleiner und kleiner

  Alt 31. Okt 2022, 17:33
Das kenne ich. Ich habe zwei Monitore mit unterschiedlicher Skalierung (100% und 125%). Und das passiert bei mir auch, wenn ich nicht zwischen den Monitoren wechsle. Einfach nur das Formular in der IDE schließen und neu öffnen reicht.

Das ist einer der Gründe, weshalb für mich Delphi 11 für Projekte nicht in Frage kommt. Ich habe wichtigeres zu tun als Workarounds für Bugs der IDE zu finden.
Thomas Mueller
  Mit Zitat antworten Zitat
Michael II

Registriert seit: 1. Dez 2012
Ort: CH BE Eriswil
763 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: Delphi 11.2 - Fenster werden kleiner und kleiner

  Alt 31. Okt 2022, 20:19
Das von dir beschriebene Problem hatte ich mit dem ersten 11er Delphi beim Alt+F12en. Mit Delphi 11.2 Patch 1 habe ich "Fenstergrössenveränderungen" zum Glück nicht mehr beobachtet.

Das in #1 beschriebene Problem betrifft leider die fertige .exe (also nicht eigentlich die IDE). Wenn ich die .exe laufen lasse und die Skalierung unter Windows von 200% auf 100% und zurück auf 200% ändere ist das Fenster kleiner als zu Beginn. Ob die im Fenster lebenden Controls dabei auch geschrumpft werden, habe ich nicht überprüft. Vieles erinnert ein wenig an.
Wenn das Schrumpfen beim Hin- und Herschieben zwischen zwei Monitoren mit verschiedenen Skalierungen auch auftritt, dann ist es etwas hässlich - wenn's nur wie in #1 beschrieben passiert, kann man wahrscheinlich damit leben. Verstehen muss ich es ja nicht.
Michael Gasser
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#4

AW: Delphi 11.2 - Fenster werden kleiner und kleiner

  Alt 31. Okt 2022, 21:31
Ihr arbeitet nicht zufälig mit FormVererbung?
Wenn ja, dann vergiss es, denn der Hersteller hat keine Lust da was zu reparieren. (obwohl es extrem einfach wäre)


In alten Delphis gab es auch schon Probleme, aber es baute sich selten auf.

z.B. bei 125% änderte es sich nur so lange, bis es ein Vielfaches von 4 erreichte,
also bis x * 3 div 4 und x * 4 div 3 gegenseitig ganzzahlige Ergebnisse lieferte.
Danach ging es zwischen beiden Ausrichtungen immer nur noch hin und wieder zurück.


Ich hatte es nur einmal, dass ein Label bei jedem öffnen immer weiter links rutschte,
aber das war ein Problem in sich.
> Text rechts ausgerichtet, aber Kompoente (Anchors) dennoch links (oder andersrum) und dann wurde im ersten OnPaint der Text geändert, wo sich die Größe änderte.
$2B or not $2B
  Mit Zitat antworten Zitat
Michael II

Registriert seit: 1. Dez 2012
Ort: CH BE Eriswil
763 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: Delphi 11.2 - Fenster werden kleiner und kleiner

  Alt 31. Okt 2022, 22:59
Hoi himitsu

nein nix ver- und geerbt. Die Migration meines Programms (etwa 60 Fenster) war auch mein Problem; meinte das nicht sarkastisch.

Aber das "Fenster wird kleiner Problem" ist ein reines Delphi Problem:
1. In Delphi 11.2 Patch 1 eröffne ich ein neues VCL Projekt, beim Form setze ich width=1200, height=1000. SKalierung Windows 200%. Ich starte die App.
Das angezeigte Fenster ist wie erwartet 1200x1000 gross.
2. Unter Windows ändere ich die Skalierung von 200% auf 100% und zurück auf 200%.

Das Fenster ist nach 2. kleiner geworden: width=1192 height=996
Noch einmal Schritt 2: width=1184 height=992.

Delphi sollte jede Skalierung s[i] immer aufgrund der ursprünglichen Werte berechnen. Dann würde auch nach der x-ten Skalierung bei 200% ein 1200x1000 Fenster angezeigt werden.

Eventuell tut Delphi das auch und es ist kein Skalierungs- sondern irgend ein "Die Delphianer haben den Fensterrand vergessen" Problem. Ich habe (noch) nicht in den Delphi Code geschaut, da mein Tag nicht 47h hat.
Michael Gasser
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#6

AW: Delphi 11.2 - Fenster werden kleiner und kleiner

  Alt 1. Nov 2022, 00:43
Nja, der Designer/DFM speichern immer nur in der aktuellen Ansicht,
dazu dann noch die jeweiligen DPI
und NACH dem Laden wird alles dann jedesmal umgerechnet, wenn sich diese gespeicherten von den aktuellen DPI unterscheiden.

Auch bekommst du massive Probleme, wenn du größer designst, als es dann zur Laufzeit oder beim nächsten Bearbeiten real verfügbar ist.
Windows/CreateWindow kürzt Fenster, welche größer als der Desktop sind, aber Delphi vergisst schon seit 20 Jahren darauf zu achten. (ebenso wie auf geänderte Rahmengrößen, falls Width/Height gespeichert wurde)



Es wird schon seit Jahren nicht mehr Width und Height gespeichert, sondern ClientWidth und ClientHeight.

Grund: im Windows sind seit XP in jeder Version und je nach einstellung die Fensterrahmen unterschiedlich dick.

Auch in Windows 10/11 ist der Rahmen nicht 0 oder 1 Pixel, so wie man es sieht, sondern knapp 8 Pixel, da der größte Teil unsichtbar ist. (dort, wo der Schatten gemalt wird und wo außerhalb des Fensters die Maus für das Vergrößern reagiert)

Und noch nie hat Delphi es geschafft beim Laden der DFM die Größe des Inhalts richtig anzupassen, wenn das Fenster (CreateWindow) mit der falschen ClientSize generiert wurde.
Problematisch, wenn man mit Anchors arbeitet.
Notlösug: ein Panel (ohne Rahmen und mit alClient) als Hintergrund, hinter allen Komponenten.

Außerdem wird die ClientSize nicht sofort gesetzt, sondern verzögert, da Emba oft Probleme hatte, beim Umrechnen von/zu Rect auf CientRect, wenn beim Erstellen das Fenster z.B. noch nicht sichtbar ist.
Besonders grausam wird es dadurch bei der Vererbung, denn abhängig von gewissen Dingen (AutoScroll und HorzScrollBar/VertScrollBar.Range) wird doch Width und Height gespeichert und wenn sich das bei der Vererbung ändert, dann raucht es (hätte man mit 2 Zeilen Code reparieren können, aber weigert bösartig sich).

Ja, es ist unschön, aber ich kann jedem nur von AutoScroll und HorzScrollBar/VertScrollBar.Range abraten und wenn doch, dann erst im OnCreate setzen.
$2B or not $2B

Geändert von himitsu ( 1. Nov 2022 um 00:50 Uhr)
  Mit Zitat antworten Zitat
Michael II

Registriert seit: 1. Dez 2012
Ort: CH BE Eriswil
763 Beiträge
 
Delphi 11 Alexandria
 
#7

AW: Delphi 11.2 - Fenster werden kleiner und kleiner

  Alt 4. Nov 2022, 12:54
Hoi himitsu

das mit clientwidth und clientheight ist mir bekannt - spielt hier aber keine Rolle. Denn es werden natürlich auch clientheight und clientwidth kleiner - das Fenster ist ja nach Skalieren unter Windows 200% -> 100% -> 200% immer noch genau gleich berandet.

(Da das Positionieren für mich unter Delphi irgendwie komisch gelöst war, behandle ich Randprobleme selber und bin bis heute Win11 22H2/Delphi 11 zufrieden. Die aktuellen Delphis machen es ja vielleicht seit Jahren besser - ich habe das gar nie wieder geprüft.)

[[ Nach dem Wechsel von 10 auf 11 fehlten in scaled=TRUE Forms an vielen Orten Bilder (IDE skalierte neu leere TImage Container, und ich im Code auch - IDE skaliert neu Form, ich verwendete Skalare im Code). Also mein Bock, weil ich einfach zu wenig gecheckt hatte, was Delphi 11 da tut. -- Auf Forms mit SpeedButtons fehlte auf ganz normalen Buttons der "OK"-Text (aber nur bei Win 2012; irgendetwas am Repaint Verhalten ist anders - hatte aber leider keine Zeit da Stunden zu investieren und BitBtns draus gemacht - dann war's wieder OK). Mittlerweile scheint es zu laufen. Ein wenig ein ungutes Gefühl bleibt. ]]


Das Problem mit dem "Fenster werden kleiner" habe ich gestern gemeldet.
https://quality.embarcadero.com/browse/RSP-39913
Michael Gasser
  Mit Zitat antworten Zitat
Antwort Antwort


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:19 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