AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Wie kann ich beim Installieren die DPI Eigenschaften setzen?
Thema durchsuchen
Ansicht
Themen-Optionen

Wie kann ich beim Installieren die DPI Eigenschaften setzen?

Ein Thema von TigerLilly · begonnen am 18. Mär 2024 · letzter Beitrag vom 21. Mär 2024
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von TigerLilly
TigerLilly

Registriert seit: 24. Mai 2017
Ort: Wien, Österreich
1.241 Beiträge
 
Delphi 12 Athens
 
#1

AW: Wie kann ich beim Installieren die DPI Eigenschaften setzen?

  Alt 19. Mär 2024, 09:35
Ich hatte nicht recht. Ein neu kompiliertes Programm, das nur aus einem Form (und damit keinen Bibliothekscode verwendet) besteht, verhält sich so, wie Ihr behauptet habt. Da habt Ihr mir schon mal geholfen. :- )

Irgendwo in den Tiefen unseres Codes versteckt sich also ein "Hi! Ich bin DPI aware". Das muss irgendeine 3rd Party Lib sein. Wie könnte ich das finden?
  Mit Zitat antworten Zitat
Benutzerbild von TigerLilly
TigerLilly

Registriert seit: 24. Mai 2017
Ort: Wien, Österreich
1.241 Beiträge
 
Delphi 12 Athens
 
#2

AW: Wie kann ich beim Installieren die DPI Eigenschaften setzen?

  Alt 19. Mär 2024, 10:13
Die DevEx Library macht das.

Code:
  if Win32MajorVersion >= 6 then
  begin
    FUser32DLL := GetModuleHandle(user32);
    SetProcessDPIAware := GetProcAddress(FUser32DLL, 'SetProcessDPIAware');
    if Assigned(SetProcessDPIAware) then
      SetProcessDPIAware;
  end;
Das gehört zu einer Initialisierungsroutine, die im Initialization-Teil aufgerufen wird.

Verstehe ich nicht - warum tun die das? Die wissen doch nichts über den Rest der Software und die anderen Komponenten.
  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
 
#3

AW: Wie kann ich beim Installieren die DPI Eigenschaften setzen?

  Alt 19. Mär 2024, 10:45
Verstehe ich nicht - warum tun die das? Die wissen doch nichts über den Rest der Software und die anderen Komponenten.
Das ist mir allerdings auch ein Rätsel. Insbesondere bei einer Delphi-Version die per se gar kein High-DPI kann.

Schön dass du es doch noch gefunden hast.

Es ist auch interessant zu sehen, wie sich die eigentliche Frage "Wie kann ich beim Installieren die DPI Eigenschaften setzen?" entwickelt hat zu "Verstehe ich nicht - warum tun die das?"
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Benutzerbild von ULIK
ULIK

Registriert seit: 25. Sep 2006
Ort: Regensburg
427 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: Wie kann ich beim Installieren die DPI Eigenschaften setzen?

  Alt 19. Mär 2024, 10:50
Das wird aber unter XP gar nicht ausgeführt! Und wenn dann würde es System-DPI aware setzen (https://learn.microsoft.com/de-de/wi...rocessdpiaware)
  Mit Zitat antworten Zitat
Benutzerbild von TigerLilly
TigerLilly

Registriert seit: 24. Mai 2017
Ort: Wien, Österreich
1.241 Beiträge
 
Delphi 12 Athens
 
#5

AW: Wie kann ich beim Installieren die DPI Eigenschaften setzen?

  Alt 19. Mär 2024, 10:51
Das wird aber unter XP gar nicht ausgeführt! Und wenn dann würde es System-DPI aware setzen (https://learn.microsoft.com/de-de/wi...rocessdpiaware)
Aber unter Windows 10 und 11 wird es ausgeführt.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.374 Beiträge
 
Delphi 12 Athens
 
#6

AW: Wie kann ich beim Installieren die DPI Eigenschaften setzen?

  Alt 19. Mär 2024, 11:09
Verstehe ich nicht
Die interessiert eh nie irgendwas anderes.

Sieht man schon an deren Hooks und wie sie mit anderen globalen Variablen umgehen.
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
Benutzerbild von TigerLilly
TigerLilly

Registriert seit: 24. Mai 2017
Ort: Wien, Österreich
1.241 Beiträge
 
Delphi 12 Athens
 
#7

AW: Wie kann ich beim Installieren die DPI Eigenschaften setzen?

  Alt 20. Mär 2024, 09:32
Womit ich aber wieder zur Ausgangsfrage zurückkehre. Den Code von DevEx möchte ich nicht ändern, daher bleibt meine Frage aufrecht. Würde ein Manifest, das ich mit ausliefere, das lösen? Und welchen Inhalt müsste das Manifest haben?
  Mit Zitat antworten Zitat
BerndS

Registriert seit: 8. Mär 2006
Ort: Jüterbog
493 Beiträge
 
Delphi 12 Athens
 
#8

AW: Wie kann ich beim Installieren die DPI Eigenschaften setzen?

  Alt 20. Mär 2024, 09:58
Du könntest auch versuchen SetProcessDPIAware(0 {PROCESS_DPI_UNAWARE}) aus der Unit Winapi.ShellScaling aufzurufen.
Das sollte dann auch möglichts im initialization gemacht werden.

Die Unit Winapi.ShellScaling wird es mit D6 nicht geben, aber die könntest du dafür aus deinem aktuellen Delphi kopieren.

Ich selber nutze SetProcessDPIAware auch, da der Kunden dann testen kann, was im ab besten gefällt.
Aber ob man das mehrfach mit anderen Werten setzen kann habe ich nicht probiert.
  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
 
#9

AW: Wie kann ich beim Installieren die DPI Eigenschaften setzen?

  Alt 20. Mär 2024, 10:04
Den Code von DevEx möchte ich nicht ändern
Das würde ich aber dringend empfehlen. Der Code ist grob fahrlässig, eigentlich schon bösartig und gehört schlichtweg eliminiert. Eventuell kannst du dich ja durchringen, ihn in ein IFDEF zu packen, dass ihn bei D2006 ausblendet. D2006 kann nun mal nicht DPI aware.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Benutzerbild von ULIK
ULIK

Registriert seit: 25. Sep 2006
Ort: Regensburg
427 Beiträge
 
Delphi 11 Alexandria
 
#10

AW: Wie kann ich beim Installieren die DPI Eigenschaften setzen?

  Alt 20. Mär 2024, 10:33
Kannst Du auf die Version 1.58 vom DexExpress wechseln? Ab da ist das wohl ausgebaut.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 01: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