AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Verzerrtes Programm-Icon in der Taskleiste und im Programmfenster
Thema durchsuchen
Ansicht
Themen-Optionen

Verzerrtes Programm-Icon in der Taskleiste und im Programmfenster

Ein Thema von Tahtu · begonnen am 25. Dez 2016 · letzter Beitrag vom 30. Dez 2016
Antwort Antwort
Seite 3 von 3     123   
EWeiss
(Gast)

n/a Beiträge
 
#21

AW: Verzerrtes Programm-Icon in der Taskleiste und im Programmfenster

  Alt 30. Dez 2016, 18:51
Wie sieht es denn aus wenn du das 16x16 einfach mal aus der Ressource entfernst?
Mit der Änderung der DPI hab ich noch nicht gearbeitet.. sorry
Habe immer 100%

gruss

Geändert von EWeiss (30. Dez 2016 um 19:20 Uhr)
  Mit Zitat antworten Zitat
Tahtu
(Gast)

n/a Beiträge
 
#22

AW: Verzerrtes Programm-Icon in der Taskleiste und im Programmfenster

  Alt 30. Dez 2016, 19:32
Wie sieht es denn aus wenn du das 16x16 einfach mal aus der Ressource entfernst?
Äh... was sollte dabei rauskommen?

Der Explorer wird immernoch ein Icon skalieren - und vermutlich immer noch das 48x48 Icon.

Mit der Änderung der DPI hab ich noch nicht gearbeitet..
Neulich hatte ich einen Anwender, der mit 250 % DPI arbeitet, weil sein Monitor so hochauflösend ist. Ohne etwas in meinem Programm zu machen, bekommt er eine unscharfe Anzeige. Also habe ich in meinem Programm die "DPI aware" Richtlinien von MS umgesetzt. Dazu gehört, dass ich alle Grafiken selbst bei der Anzeige skalieren muss.

Um das zu machen speichere ich die Grafiken in einer höheren Auflösung und skaliere diese beim Programmstart / bei der Anzeige entsprechend den DPI Einstellungen des Benutzers.

Die selbstgezeichneten Grafiken (ein Diagramm) habe ich entsprechend umgeschrieben.

Ich glaube, dass es immer mehr Monitore geben wird, die deutlich mehr als 96 DPI haben - und entsprechend der Benutzer mehr als 100% DPI in Windows einstellt. Daher sollte aus meiner Sicht jedes Programm die Grafiken entsprechend skalieren.
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#23

AW: Verzerrtes Programm-Icon in der Taskleiste und im Programmfenster

  Alt 30. Dez 2016, 19:44
Zitat:
Dazu gehört, dass ich alle Grafiken selbst bei der Anzeige skalieren muss.
Du hast aber schon das dazugehörige Manifest ins Projekt kompiliert. Oder?

Zitat:
Äh... was sollte dabei rauskommen?
Es wird dann ein anderes Format kompiliert.
Bei mir sieht es zumindest nicht schlecht aus.

Siehe Anhang..
DPI 110%, Klassik Ansicht

TaskLeiste und Explorer..

gruss

Geändert von EWeiss (11. Jul 2019 um 16:45 Uhr)
  Mit Zitat antworten Zitat
Tahtu
(Gast)

n/a Beiträge
 
#24

AW: Verzerrtes Programm-Icon in der Taskleiste und im Programmfenster

  Alt 30. Dez 2016, 19:53
Du hast aber schon das dazugehörige Manifest ins Projekt kompiliert. Oder?
Ja, in der .rc Datei.

Bei mir sieht es zumindest nicht schlecht aus.
Bei mir sieht es (jetzt) genauso aus, soweit ich das erkenne: In der Taskzeile komplett scharf, im Explorer recht gut.
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#25

AW: Verzerrtes Programm-Icon in der Taskleiste und im Programmfenster

  Alt 30. Dez 2016, 19:56
Zitat:
Bei mir sieht es (jetzt) genauso aus, soweit ich das erkenne.
Dann sollte es eigentlich in Ordnung sein.

Zitat:
Ja, in der .rc Datei.
Nicht das wir uns falsch verstehen.
Ich meine nicht die Icons sondern den DPI Kram.

Merke die DPI wird nicht Automatisch skaliert bei normalen Anwendungen das musst du explicit angeben.
Ausgenommen davon ist WPF!

Hier mein Test Example mit Source.. D2010.

gruss

Geändert von EWeiss (11. Jul 2019 um 17:02 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#26

AW: Verzerrtes Programm-Icon in der Taskleiste und im Programmfenster

  Alt 30. Dez 2016, 19:58
Welcher Tipp war es denn jetzt genau?
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Tahtu
(Gast)

n/a Beiträge
 
#27

AW: Verzerrtes Programm-Icon in der Taskleiste und im Programmfenster

  Alt 30. Dez 2016, 20:10
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...

Geändert von Tahtu (30. Dez 2016 um 20:19 Uhr)
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#28

AW: Verzerrtes Programm-Icon in der Taskleiste und im Programmfenster

  Alt 30. Dez 2016, 20:17
habe dir mal mein Sample hochgeladen..

Zitat:
Ich glaube, das ist dieser Teil der .manifest Datei:
yep.

Delphi-Quellcode:
  <!-- Indicates that the application is DPI-aware and will not be automatically scaled by Windows at higher
       DPIs. Windows Presentation Foundation (WPF) applications are automatically DPI-aware and do not need
       to opt in. Windows Forms applications targeting .NET Framework 4.6 that opt into this setting, should
       also set the 'EnableWindowsFormsHighDpiAutoResizing' setting to 'truein their app.config. -->

  <application xmlns="urn:schemas-microsoft-com:asm.v3">
    <windowsSettings>
      <dpiAware xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">true</dpiAware>
    </windowsSettings>
  </application>
gruss
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 3 von 3     123   


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 06:38 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz