Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Delphi Größenanpassung durch OS verhindern (https://www.delphipraxis.net/173561-groessenanpassung-durch-os-verhindern.html)

sILeNt heLLsCrEAm 3. Mär 2013 20:53

Größenanpassung durch OS verhindern
 
Liste der Anhänge anzeigen (Anzahl: 2)
Nabend Leute...

Ich hab da mal folgendes Problem mit meiner Anwendung.
Und zwar bei einer Standard-Auflösung wird diese ordnungsgemäß angezeigt. D.h. alle Bitmaps, Labels etc. befinden sich an den Stellen wo sie hingehören. Siehe dazu auch Bild 1 (Normal.jpg)
Wird jetzt allerdings in z.B. Windows 7 per Rechtsklick auf den Desktop -> Anpassen -> Anzeige die Lesbarkeit der Schrift angepasst, z.B. auf 125%, dann sind auch die Bitmaps etc. innerhalb meiner Anwendung verschoben. Siehe dazu auch Bild 2 (DPI125%.jpg)

Gibt es da eine Möglichkeit diese Art und Weise zu unterbinden?

Vielen Dank im vorraus...
sILeNt heLLsCrEAm

Bernhard Geyer 3. Mär 2013 21:24

AW: Größenanpassung durch OS verhindern
 
Scaled = False im Formular setzen.
Besser ist es aber seine Programmierung darauf auszulegen auch unter hochauflösenden Displays (Apple Retina lässt grüßen) eine korrekte Darstellung zu erreichen.

QuickAndDirty 4. Mär 2013 08:44

AW: Größenanpassung durch OS verhindern
 
Zitat:

Zitat von Bernhard Geyer (Beitrag 1205799)
Scaled = False im Formular setzen.
Besser ist es aber seine Programmierung darauf auszulegen auch unter hochauflösenden Displays (Apple Retina lässt grüßen) eine korrekte Darstellung zu erreichen.

Scaled := False ;

sorgt zwar dafür das die Komponenten nicht skaliert werden (was einem zum Teil ja das ganze Layout zerschlägt, weil Delphi das irgendwie nicht ganz richtig macht),
aber leider sind die Fonts dennoch größer....

d.h.
man muss selbst für ein Skalieren der Controls sorgen. so dass das Layout dabei nicht zermatscht wird.

den faktor mit dem zu skalieren ist ermittelt man mit

Screen.PixelsPerInch/96


Es wäre auch möglich statt die Controls zu skalieren die Font.height mit dem Kehrwert zu skalieren
96/Screen.PixelsPerInch

Aber da im letzten Schritt das Ergebnis immer zu runden ist, ist dieses verfahren das "grob körnigere".

Bernhard Geyer 4. Mär 2013 09:04

AW: Größenanpassung durch OS verhindern
 
Zitat:

Zitat von QuickAndDirty (Beitrag 1205821)
Scaled := False ;

So nur im Quellcode. Im DFM schauts anders aus.

Zitat:

Zitat von QuickAndDirty (Beitrag 1205821)
sorgt zwar dafür das die Komponenten nicht skaliert werden (was einem zum Teil ja das ganze Layout zerschlägt, weil Delphi das irgendwie nicht ganz richtig macht),
aber leider sind die Fonts dennoch größer....

Wäre mir neu. Wenn dann wird gar nix skaliert. Eigen Komponenten oder dynamischer Aufbau ausgenommen.


Zitat:

Zitat von QuickAndDirty (Beitrag 1205821)
man muss selbst für ein Skalieren der Controls sorgen. so dass das Layout dabei nicht zermatscht wird.

Mit "Layoutpanels" die man links/rechts/oben/unten anordnet kann man 90% der Fälle ohne eigenen Quellcode abdecken.

sILeNt heLLsCrEAm 4. Mär 2013 18:23

AW: Größenanpassung durch OS verhindern
 
Nabend Leute...

Schande auf mein Haupt. Diese Option hab ich entweder komplett außer acht gelassen oder einfach keine Beachtung weiter geschenkt. Hab wohl in erster Linie eine Lösung bei den einzelnen Controls gesucht.
Ich danke euch vielmals.
Im Prinzip reicht mir auch so die Variante das die Mainform, oder besser gesagt, die Controls nicht skaliert werden und grafisch auch zum Hintergrund passen. Also da wo sie hingehören, auf gut deutsch gesagt.
Wenn ich auf die Skalierung reagieren würde müsste ich auch das Hintergrundbild mit skalieren, was irgendwann aber auch zu grafischen/optischen Einbußen führen würde.

Aber wie gesagt, so reicht mir das. Vielen Dank.

MFG sILeNt heLLsCrEAm


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:10 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