AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Bildschirmskalierung - Wie aktuelle Einstellung ermitteln?
Thema durchsuchen
Ansicht
Themen-Optionen

Bildschirmskalierung - Wie aktuelle Einstellung ermitteln?

Ein Thema von Cronen · begonnen am 6. Okt 2017 · letzter Beitrag vom 7. Okt 2017
Antwort Antwort
Cronen

Registriert seit: 5. Sep 2003
Ort: Hannover
63 Beiträge
 
Delphi 10.3 Rio
 
#1

Bildschirmskalierung - Wie aktuelle Einstellung ermitteln?

  Alt 6. Okt 2017, 16:50
Ich mochte beim Start einer Anwendung prüfen, wie die aktuelle Bildschirmskalierung (Win 10) eingestellt ist (also 100% / 125% / 150%).
Mit meiner Suche landete ich ua. bei folgenden Beiträgen:
Problem beim skalieren des Bildschirms
oder
Anzeigeskalierung größer 100%

Die dort gezeigten Lösungen zeigen mr aber immer 96 an egal bei welcher Skalierung.

Die Google-Suche führt mich immer zur Registry HKEY_CURRENT_USER\Control Panel\Desktop\Win8DpiScaling od. ..\WindowMetrics\AppliedDPI
Auch hier lande ich immer bei unveränderten Werten.

Kann mir jemand sagen, wo konkret die Einstellung hinterlegt ist bzw. wie ich die Abfrage?
  Mit Zitat antworten Zitat
Steku

Registriert seit: 12. Mai 2008
186 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#2

AW: Bildschirmskalierung - Wie aktuelle Einstellung ermitteln?

  Alt 6. Okt 2017, 17:23
Hi,

vielleicht hilft das Tutorial hier weiter: http://www.helpandmanual.com/downloads_delphi.html

Unter "A Delphi Developers Guide for 4K Displays" gibt es einen ca. 10MB großen
Download.

Grüße
Steku
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer
Online

Registriert seit: 13. Aug 2002
17.213 Beiträge
 
Delphi 10.4 Sydney
 
#3

AW: Bildschirmskalierung - Wie aktuelle Einstellung ermitteln?

  Alt 6. Okt 2017, 18:40
kann es sein das deine Anwendung ohne ein passendes Manifest läuft das sagt "Ich kann richtig Skalieren"?
Wenn du das nicht hast wird dir Windows eine 96dpi-Einstellung vorgaugeln und alle Skalierungsarbeiten selbst durchführen.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Cronen

Registriert seit: 5. Sep 2003
Ort: Hannover
63 Beiträge
 
Delphi 10.3 Rio
 
#4

AW: Bildschirmskalierung - Wie aktuelle Einstellung ermitteln?

  Alt 6. Okt 2017, 19:45
im Manifest "ich kann skalieren" einstellen ist doch <dpiAware>True</dpiAware> oder?

in Verbindung mit TForm.scaled = True ?
  Mit Zitat antworten Zitat
Glados
(Gast)

n/a Beiträge
 
#5

AW: Bildschirmskalierung - Wie aktuelle Einstellung ermitteln?

  Alt 6. Okt 2017, 22:34
Hilft dir das vielleicht weiter?

Delphi-Quellcode:
DPI := Screen.PixelsPerInch * 100 div 96;
if DPI >= 150 then
 //
else if DPI >= 125 then
 //
else if ...
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#6

AW: Bildschirmskalierung - Wie aktuelle Einstellung ermitteln?

  Alt 6. Okt 2017, 22:58
Delphi-Quellcode:
var
  ratio: single;
Delphi-Quellcode:
function GetDPI(nPix: LongInt): LongInt;
var
  DC: HDC;
begin
  if ratio = 0 then
  begin
    DC := GetDC(0);
    ratio := GetDeviceCaps(DC, LOGPIXELSX) / 96.0;
    ReleaseDC(0, DC);
  end;
  result := round(nPix * ratio);
end;
Delphi-Quellcode:
MeineFormWeite := 1000;
MeineFormWeiteDPI := GetDpi(MeineFormWeite);
oder
Delphi-Quellcode:
ButtonWidth := 200;
ButtonHeight := 25;
SetRect(rc, 0, 0, GetDPI(ButtonWidth), GetDPI(ButtonHeight));
bye..

Geändert von EWeiss ( 6. Okt 2017 um 23:04 Uhr)
  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 08:32 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 by Thomas Breitkreuz