![]() |
Skalierungsfaktor Win11 mit Delphi XE ermitteln
Hallo,
ich habe einem Laptop ein Bildschirm mit 3840 x 2400 Auflösung und die Skalierung ist auf 225% eingestellt. Jetzt möchte ich genau diese 225% mit einem Delphi XE Programm ermitteln. Dazu habe ich im Net verschiedene Möglichkeiten gefunden aber entweder sie liefen unter Delphi XE nicht oder sie liefern immer 100% Hier zwei Möglichkeiten die 100% liefern.
Delphi-Quellcode:
laScale.Caption := format('Ratio = %1.3f', [Screen.PixelsPerInch * 100 / 96]);
Delphi-Quellcode:
Hat jemand eine Idee was ich machen muss, dass mir die 225% korrekt angezeigt werden?
var
DC: HDC; begin DC := GetDC(0); laScale.Caption := format('Ratio = %1.3f', [GetDeviceCaps(DC, LOGPIXELSX) / 96 *100]); ReleaseDC(0, DC); end; Vielen Dank Gerd |
AW: Skalierungsfaktor Win11 mit Delphi XE ermitteln
Damit habe ich auch eine Weile gekämpft, nachdem ich mir einen High-DPI-Monitor angeschafft habe. Du musst auf jeden Fall deiner Anwendung ein Manifest mitgeben, dass sie als "dpiAware" klassifiziert. Du kannst bei Manifest in den Einstellungen zu deinem Projekt aber auch "automatisch" wählen, dann sollte es auch klappen.
Gruß Georg |
AW: Skalierungsfaktor Win11 mit Delphi XE ermitteln
Das mit den Manifest habe ich auch gelesen. Ich habe aber in Delphi XE keine entsprechende Einstellung gefunden.
|
AW: Skalierungsfaktor Win11 mit Delphi XE ermitteln
Sorry, ich habe deine Delphi-Version nicht beachtet. Vorlagen für ein entsprechendes Manifest findest du leicht im Web; du kannst es auch manuell einbinden, das geht sicher auch mit XE.
|
AW: Skalierungsfaktor Win11 mit Delphi XE ermitteln
Geschafft, wenn auch anders als gedacht. Ich hätte den Skalierungsfaktor ja benötigt, um ein mit
Delphi-Quellcode:
in ein FastReport eingebundes Chart auch bei geänderter Bildschirmskalierung korrekt darzustellen.
lPictureView := TFrxPictureView(frpStandalone.FindObject('rpim03Chart'));
if (lPictureView <> nil) then lPictureView.Picture.Assign(FChart.TeeCreateMetafile(True, Rect(0, 0, Round(lPictureView.Width), Round(lPictureView.Height)))); Nachdem ich im Hauptformular die Unit XPMan eingebunden habe, war nichts weiter mehr nötig. Das Chart wird jetzt auch mit Skalierungsfaktor 225 korrekt (in voller Größe) angezeigt Danke Gerd |
AW: Skalierungsfaktor Win11 mit Delphi XE ermitteln
Wenn ich mich richtig erinnere, ist das einzige, was die Unit XPMan tut, ein Manifest einzubinden.
|
AW: Skalierungsfaktor Win11 mit Delphi XE ermitteln
Das ist richtig. Aber unter Delphi XE konnte man das Manifest auch schon in den Projektoptionen aktivieren, da bin ich mir sehr sicher. Standardmäßig war es auch aktiv.
|
AW: Skalierungsfaktor Win11 mit Delphi XE ermitteln
Liste der Anhänge anzeigen (Anzahl: 2)
Zitat:
Im Anhang wie der FastReport vor und nach Einbindung aussieht. Das Problem mit der Skalierung hatte ich übrigens auch bei QuickReport. Ein Grund für den Umstieg auf FR. In QR wird aber immer noch falsch skaliert Zitat:
|
AW: Skalierungsfaktor Win11 mit Delphi XE ermitteln
Zitat:
|
AW: Skalierungsfaktor Win11 mit Delphi XE ermitteln
Zitat:
Bei neueren Delphiversionen kann man das in den Projektoptionen besser steuern. Dann würde ich eher ein eigenes Manifest verwenden. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:23 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz