Einzelnen Beitrag anzeigen

MicMic

Registriert seit: 26. Mai 2018
296 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#8

AW: 16x16 Icons bei HighDPI bzw. Skalierung?

  Alt 12. Jul 2018, 22:53
Ich muss eingestehen das was Du da machst habe ich keine Ahnung von. Wenn ich System Icons brauche, dann lade ich die, aber direkt von dll.
LoadImage() schau doch einfach mal in die Hilfe, theoretisch alles was ein Handle haben kann könnte damit aufgerufen werden, obs in Deinem Speziellen Fall genauso ist, einfach mal probieren.
Mit dem obigen Code wird nur die System Icon Liste zugewiesen (und halt keine 16x16er), später per Index wird dann ein Icon daraus geladen.

16x16/32x32 hin oder her... ich habe jetzt eine bessere Skalierungsfunktion.
Nicht mehr mit "DrawIconEx", sondern mit StretchBlt. So muss ich auch nicht mehr ".GetIcon" von TImageList nutzen (langsam). Also ".Draw" (schneller) von der TImageList in ein Bitmap-Canvas und mit "StretchBlt" zum Ziel-Canvas. Was mir gut gefällt ist der Wert "HALFTONE" für "SetStretchBltMode". Die Skalierung schaut um einiges besser aus. Der Wert berücksichtigt die Hintergrundfarbe des Ziel-Canvas und malt um das Icon dunklere Ränder, passend zur Hintergrundfarbe. HALFTONE nochmal halbiert wäre aber besser... die dunklen Ränder sind mir dann ein tick zu dunkel. Dies kann man wohl nicht beeinflussen.

Michael
  Mit Zitat antworten Zitat