Dann sollte es eigentlich in Ordnung sein.
Danke, JA!
Ich meine nicht die Icons sondern den DPI Kram.
Ich glaube, das ist dieser Teil der .manifest Datei:
Code:
<assembly xmlns="urn:schemas-microsoft-
com:
asm.v1" manifestVersion="1.0" xmlns:asmv3="urn:schemas-microsoft-
com:
asm.v3" >
...
<asmv3:application>
<asmv3:windowsSettings xmlns="http://schemas.microsoft.com/SMI/2011/WindowsSettings">
<dpiAware>true</dpiAware>
</asmv3:windowsSettings>
</asmv3:application>
...
</assembly>
Merke die DPI wird nicht Automatisch skaliert bei normalen Anwendungen
Ohne ein Hinweis in der .manifest Datei geht Windows davon aus, dass das Programm nicht skaliert - und übernimmt die Skalierung für das Programm.
Das Programm selbst generiert dabei 96 (100%) DPI - sowohl für Grafiken, als auch für Schrift. Windows skaliert das dann auf die DPI Einstellungen von Windows. Dabei werden Schrift und Grafik also hochgerechnet - aber durch die höhere Auflösung bleibt es bei der selben Größe auf dem Bildschirm (gemessen in cm). Aber natürlich unscharf.
Mit dem Eintrag in der .manifest Datei muss das Programm die Ausgabe entsprechend der Windows DPI Einstellung bereitstellen, die dann direkt auf dem Bildschirm angezeigt wird.
Hier erfolgt die Skalierung also im Programm. Z. B. verwende ich in meinem Diagrammen immer ein feste Anzahl von Pixel pro Linie. Oft 1, teilweise 2 und selten 3 Pixel - je nach Windows DPI Einstellung (Screen.PixelsPerInch).
Dadurch sehen auch (alte) Programme ohne entsprechenden .manifest Eintrag immer noch ähnlich aus, aber halt unscharf.
Falls dich das nächer interessiert bei Microsoft unter "DPIaware" googlen. Bei
www.helpandmanual.com gibts gute PDFs zu dem Thema. Falls du möchtest, such ich dir die Infos...
Welcher Tipp war es denn jetzt genau?
Ich hatte folgende Zeile in meinem .dpr (noch von vor ca. 10 Jahren, damals unter Delphi 7):
Code:
Application.Icon.Handle := LoadImage(hInstance, 'MAINICON', IMAGE_ICON, Application.Icon.Height, Application.Icon.Height, LR_DEFAULTCOLOR);
Daher wurde das 32x32 Icon verwendet. Mein Fehler...