AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Skalierungsfaktor Win11 mit Delphi XE ermitteln

Ein Thema von norwegen60 · begonnen am 23. Apr 2025 · letzter Beitrag vom 25. Apr 2025
Antwort Antwort
norwegen60

Registriert seit: 23. Dez 2007
Ort: Schwarzwald
522 Beiträge
 
Delphi 12 Athens
 
#1

Skalierungsfaktor Win11 mit Delphi XE ermitteln

  Alt 23. Apr 2025, 20:01
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.

laScale.Caption := format('Ratio = %1.3f', [Screen.PixelsPerInch * 100 / 96]);
Delphi-Quellcode:
var
  DC: HDC;
begin
  DC := GetDC(0);
  laScale.Caption := format('Ratio = %1.3f', [GetDeviceCaps(DC, LOGPIXELSX) / 96 *100]);
  ReleaseDC(0, DC);
end;
Hat jemand eine Idee was ich machen muss, dass mir die 225% korrekt angezeigt werden?

Vielen Dank
Gerd
  Mit Zitat antworten Zitat
Aliquis

Registriert seit: 26. Jun 2011
Ort: Grafschaft Bentheim
27 Beiträge
 
Delphi 12 Athens
 
#2

AW: Skalierungsfaktor Win11 mit Delphi XE ermitteln

  Alt 23. Apr 2025, 20:45
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
Georg
  Mit Zitat antworten Zitat
norwegen60

Registriert seit: 23. Dez 2007
Ort: Schwarzwald
522 Beiträge
 
Delphi 12 Athens
 
#3

AW: Skalierungsfaktor Win11 mit Delphi XE ermitteln

  Alt 23. Apr 2025, 21:02
Das mit den Manifest habe ich auch gelesen. Ich habe aber in Delphi XE keine entsprechende Einstellung gefunden.
  Mit Zitat antworten Zitat
Aliquis

Registriert seit: 26. Jun 2011
Ort: Grafschaft Bentheim
27 Beiträge
 
Delphi 12 Athens
 
#4

AW: Skalierungsfaktor Win11 mit Delphi XE ermitteln

  Alt 23. Apr 2025, 21:05
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.
Georg
  Mit Zitat antworten Zitat
norwegen60

Registriert seit: 23. Dez 2007
Ort: Schwarzwald
522 Beiträge
 
Delphi 12 Athens
 
#5

AW: Skalierungsfaktor Win11 mit Delphi XE ermitteln

  Alt 23. Apr 2025, 21:46
Geschafft, wenn auch anders als gedacht. Ich hätte den Skalierungsfaktor ja benötigt, um ein mit

Delphi-Quellcode:
lPictureView := TFrxPictureView(frpStandalone.FindObject('rpim03Chart'));
  if (lPictureView <> nil) then
    lPictureView.Picture.Assign(FChart.TeeCreateMetafile(True, Rect(0, 0, Round(lPictureView.Width), Round(lPictureView.Height))));
in ein FastReport eingebundes Chart auch bei geänderter Bildschirmskalierung korrekt darzustellen.
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
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.643 Beiträge
 
Delphi 12 Athens
 
#6

AW: Skalierungsfaktor Win11 mit Delphi XE ermitteln

  Alt 23. Apr 2025, 23:17
Wenn ich mich richtig erinnere, ist das einzige, was die Unit XPMan tut, ein Manifest einzubinden.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  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 02:41 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