Erzeugte Form wird größer, als im Editor

Für Probleme bezüglich Grafik, Audio, GL, ACS, ...

Erzeugte Form wird größer, als im Editor

Beitragvon Nico_OD » 24. Sep 2017, 09:45 Erzeugte Form wird größer, als im Editor

[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)
Nico_OD
 
Beiträge: 4
Registriert: 24. Sep 2017, 09:29

Beitragvon Mathias » 24. Sep 2017, 11:45 Re: Erzeugte Form wird größer, als im Editor

Hast du im OS irgend eine Skalierung eingestellt.

Welches OS verwendest du ?
Mit Lazarus sehe ich gün
Mit Java und C/C++ sehe ich rot
Mathias
 
Beiträge: 4107
Registriert: 2. Jan 2014, 17:21
Wohnort: Schweiz
OS, Lazarus, FPC: Linux (die neusten Trunc) | 
CPU-Target: 64Bit
Nach oben

Beitragvon Nico_OD » 24. Sep 2017, 14:25 Re: Erzeugte Form wird größer, als im Editor

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)
Nico_OD
 
Beiträge: 4
Registriert: 24. Sep 2017, 09:29

Beitragvon wp_xyz » 24. Sep 2017, 15:08 Re: Erzeugte Form wird größer, als im Editor

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 24. Sep 2017, 15:27, insgesamt 1-mal geändert.
wp_xyz
 
Beiträge: 2565
Registriert: 8. Apr 2011, 08:01

Beitragvon Michl » 24. Sep 2017, 15:13 Re: Erzeugte Form wird größer, als im Editor

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; 
Michl
 
Beiträge: 2260
Registriert: 19. Jun 2012, 11:54
OS, Lazarus, FPC: Win7 Laz 1.7 Trunk FPC 3.1.1 Trunk | 
CPU-Target: 32Bit/64bit
Nach oben

Beitragvon Nico_OD » 24. Sep 2017, 20:10 Re: Erzeugte Form wird größer, als im Editor

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: 4
Registriert: 24. Sep 2017, 09:29

Beitragvon Nico_OD » 24. Sep 2017, 23:18 Re: Erzeugte Form wird größer, als im Editor

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
Nico_OD
 
Beiträge: 4
Registriert: 24. Sep 2017, 09:29

Beitragvon Christian » 25. Sep 2017, 04:55 Re: Erzeugte Form wird größer, als im Editor

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/
Christian
 
Beiträge: 6101
Registriert: 21. Sep 2006, 06:51
Wohnort: Dessau
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z) | 
CPU-Target: AVR,ARM,x86(-64)
Nach oben

Beitragvon Frank Ranis » 25. Sep 2017, 11:34 Re: Erzeugte Form wird größer, als im Editor

Hallo ,

vor einiger Zeit hatten wir ja mal diesen Beitrag.

viewtopic.php?f=55&t=10040

Gruß

Frank
www.flz-vortex.de
Frank Ranis
 
Beiträge: 106
Registriert: 24. Jan 2013, 21:22
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z) | 
CPU-Target: xxBit
Nach oben

Beitragvon Erwin » 25. Sep 2017, 14:30 Re: Erzeugte Form wird größer, als im Editor

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?
Win 7 / Lazarus 1.6 / FP 3.0.0 / x86_64-win64-win32/win64
Erwin
 
Beiträge: 216
Registriert: 16. Sep 2009, 13:15
OS, Lazarus, FPC: Xubuntu 16.04 / x86_64_linux-gtk 2 / L 1.6+dfsg-1 / FPC 3.0.0 | 
Nach oben

Beitragvon Michl » 25. Sep 2017, 15:13 Re: Erzeugte Form wird größer, als im Editor

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; 
Michl
 
Beiträge: 2260
Registriert: 19. Jun 2012, 11:54
OS, Lazarus, FPC: Win7 Laz 1.7 Trunk FPC 3.1.1 Trunk | 
CPU-Target: 32Bit/64bit
Nach oben

• Themenende •

Zurück zu Multimedia



Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast

porpoises-institution
accuracy-worried