Erzeugte Form wird größer, als im Editor

Für Probleme bezüglich Grafik, Audio, GL, ACS, ...
Antworten
Nico_OD
Beiträge: 9
Registriert: So 24. Sep 2017, 10:29

Erzeugte Form wird größer, als im Editor

Beitrag von Nico_OD »

[Lazarus IDE v1.6 x64]

Hallo liebe Gemeinde,
wenn ich die SuFu benutze, bekomme ich ALLES - nur keine Antwort auf mein Problem... ;-(

Wahrscheinlich ist es ganz simpel:
Ich erstelle ein Formular/Form, plaziere ein paar Objekte darauf und compiliere das Ganze.
Dummerweise wird das Formular nun im Runtime-Modus GRÖSSER gezeichnet, als vorher angegeben. Also hoch-scaliert.
Das ist sehr nervig, weil ich teilweise etwas pixelgenau darstellen will - aber alles wird ca. 10-20% vergrößert (und unscharf!).

Jemand 'ne Idee?

Schöne Grüße -

Nico ;o)

Mathias
Beiträge: 6164
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: Erzeugte Form wird größer, als im Editor

Beitrag von Mathias »

Hast du im OS irgend eine Skalierung eingestellt.

Welches OS verwendest du ?
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

Nico_OD
Beiträge: 9
Registriert: So 24. Sep 2017, 10:29

Re: Erzeugte Form wird größer, als im Editor

Beitrag von Nico_OD »

Danke für die fixe Reaktion... ;-)

Win 8.1/x64.
Wenn ich das mit Win7prof. öffne, gleiches Problem.

Mit Delphi habe ich das nicht. Nur mit Lazarus...

;o)

wp_xyz
Beiträge: 4869
Registriert: Fr 8. Apr 2011, 09:01

Re: Erzeugte Form wird größer, als im Editor

Beitrag von wp_xyz »

Win 8.1 kenne ich nicht, aber Win 10 hat wahrscheinlich dasselbe Problem, wenn "große" Schriftarten (also: Skalierung > 100%) eingestellt sind und die Programme das nicht richtig berücksichtigen, Laz 1.6 konnte das noch nicht, erst ab 1.8 kann Lazarus sauber skalieren. Die Bildschirmskalierung stellt man irgendwo unter den Desktop-Eigenschaften oder in der Systemsteuerung ein, was bei hochauflösenden Bildschirmen unterlässlich ist, wenn man nicht stecknadelgroße Schrift und Icons haben will. Unter Win 10 konnte ich die unscharfe Sklaierung beseitigen, indem ich die fraglichen Programme über Verknüpfungen geöffnet habe, bei deren Eigenschaften auf der Lasche "Kompatibilität" das Häkchen "Kompatibilitätsmodus > Windows 7" gesetzt wurde.
Zuletzt geändert von wp_xyz am So 24. Sep 2017, 16:27, insgesamt 1-mal geändert.

Michl
Beiträge: 2505
Registriert: Di 19. Jun 2012, 12:54

Re: Erzeugte Form wird größer, als im Editor

Beitrag von Michl »

Du hast die erste Frage nicht beantwortet. Das ist wichtig, da sonst das Formular vom OS skaliert wird.

Welches Verhalten hast du für DPI awareness in den Projekteinstellungen deiner Anwendung eingestellt? Verwendest du das Lazarus interne Manifest File bzw. ist der Haken bei "Themen mit Manifestdatei einschalten" drinnen?

Übrigens ab Lazarus 1.8 (Release Test Version 4 ist runterladbar) wird echtes High-DPI-Skaling unterstützt.

[Edit]: sowas, war wp jetzt schneller...

Code: Alles auswählen

type
  TLiveSelection = (lsMoney, lsChilds, lsTime);
  TLive = Array[0..1] of TLiveSelection; 

Nico_OD
Beiträge: 9
Registriert: So 24. Sep 2017, 10:29

Re: Erzeugte Form wird größer, als im Editor

Beitrag von Nico_OD »

Huch, so viele und schnelle Antworten/Tipps... ;-)

Ich werde mich da morgen mal darum kümmern. Jetzt arbeite ich und nachher bin ich zu platt...

Vielen Dank erstmal. Ich melde mich, ob ich den (Einstellungs-)Fehler finde...

Gruß -
Nico ;o)

Nico_OD
Beiträge: 9
Registriert: So 24. Sep 2017, 10:29

Re: Erzeugte Form wird größer, als im Editor

Beitrag von Nico_OD »

Sooo...
Nun bin ich da doch nochmal zu nächtlicher Stunde ran...

Fehler gefunden. Danke für die Hinweise!
Das war tatsächlich eine wirklich sehr versteckte Grafik-Einstellung in Windows. Da war die Skalierung permanent auf 125% eingestellt.
Nun habe ich sie auf 100% eingestellt - und werde fast wahnsinnig damit. Es ist ja nun fast nichts mehr lesbar - so klein ist das!

Deswegen nun meine daran anknüpfende Frage:
Kann man eine Skalierung für die eigene Form / Formulare / Fenster verhindern? Kann man sich über das Betriebssystem hinwegsetzen und das Skalieren unterbinden und dafür auf 100% setzen?
Oder geht sowas nur mit höheren Lazarus-Versionen?

Gruß -
Nico ;o)

P.S.: Uih, was ist das anstrengend - ich muß die Skalierung schnell mal wieder auf 125% setzen... :-D

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Re: Erzeugte Form wird größer, als im Editor

Beitrag von Christian »

Du musst dein Form so gestalten das es die Skalierung "übersteht".
Mit Anchors und co. Es gibt ne ganz gute Wiki Seite dazu.
Du kannst ja dem Nutzer deiner Applikation schlecht vorschreiben was er in seinem Windows einstellt.
Ausserdem ist das ein ganz gutes Feature gerade für altere Leute.
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

Frank Ranis
Beiträge: 201
Registriert: Do 24. Jan 2013, 21:22

Re: Erzeugte Form wird größer, als im Editor

Beitrag von Frank Ranis »

Hallo ,

vor einiger Zeit hatten wir ja mal diesen Beitrag.

viewtopic.php?f=55&t=10040

Gruß

Frank
www.flz-vortex.de

Erwin
Beiträge: 286
Registriert: Mi 16. Sep 2009, 14:15
OS, Lazarus, FPC: Xubuntu 22.04 / x86_64_linux-gtk 2 / L 2.2.0 / FPC 3.2.2

Re: Erzeugte Form wird größer, als im Editor

Beitrag von Erwin »

Komisch. Wenn ich das richtig verstehe, vergrößert das BS alles um 25 % auf 125%?
Müsste es dann nicht auch die Darstellung während des Programmierens ebenfalls auf 125 % vergrößert sein? Oder tut es das sogar, und es werden somit aus 125 % dann sogar in der Ausführbaren Version 156,25 %?
Oder denke ich in die Falsche Richtung, und bei Lazarus wird während der Entwurfszeit gar nicht 125 % dargestellt, sondern 100 %. Und erst die Ausführbare Datei dann auf 125 % vergrößert?
Jedenfalls ist mir jetzt ein wenig nach Weglaufen zumute. Version 1.8 ist das, wo dieses Verhalten direkt/indirekt eingeführt wurde? Anderseits ... bei 100 % passiert ja eigentlich nichts, oder?
Lazarus 2.2.0 / FP 3.2.4

Michl
Beiträge: 2505
Registriert: Di 19. Jun 2012, 12:54

Re: Erzeugte Form wird größer, als im Editor

Beitrag von Michl »

Erwin hat geschrieben:Müsste es dann nicht auch die Darstellung während des Programmierens ebenfalls auf 125 % vergrößert sein?
Nein, da Lazarus 1.6 High-DPI nicht implementiert hatte. Unter Lazarus 1.6 hat Windows von sich aus skaliert mit verschwommenem Resultat. Es liegt letztlich am Manifest-File wie Windows mit dem Scaling der Anwendung umgeht.

Erstmals mit Lazarus 1.8 wird geprüft unter welchen DPI-Settings entwickelt wird und unter welchen DPI-Settings die Anwendung ausgeführt wird. Wie man es in den Projektoptionen eingestellt hat, wird skaliert. Mehr Infos: http://wiki.lazarus.freepascal.org/High_DPI#High_DPI_in_Lazarus_1.8_and_above

Lazarus 1.8 macht mMn einen sehr guten Job diesbezüglich. Sehr schön testen kann man das unter Windows 10 mit zwei Monitoren, die unterschiedliche DPI-Settings verwenden.

Größere Probleme (einzig themed High-DPI Bold Font drawing) sind mir zur Zeit nicht bekannt. Auch gibt es bis dato keine hier im Forum (zumindest wurden keine gemeldet): http://www.lazarusforum.de/viewtopic.php?f=1&t=10977. Daher einfach mal testen. Mögliche Bugs könnten somit noch bis zum Release der 1.8 behoben werden.

Code: Alles auswählen

type
  TLiveSelection = (lsMoney, lsChilds, lsTime);
  TLive = Array[0..1] of TLiveSelection; 

Antworten