AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

TActionManager + TVirtualImageList + PNG

Ein Thema von cltom · begonnen am 11. Mai 2023 · letzter Beitrag vom 12. Mai 2023
Antwort Antwort
cltom

Registriert seit: 22. Sep 2005
221 Beiträge
 
Delphi 12 Athens
 
#1

TActionManager + TVirtualImageList + PNG

  Alt 11. Mai 2023, 09:58
Hallo,

das Thema kommt öfter mal vor: rosa Ränder an transparenten Icons. Ich dachte mit TVirtualImageList wäre es vorbei, doch offenbar nicht ganz. Immer wieder krieg ich rosa Ränder um transparente Icons. Reproduzierbar zum Beispiel, wenn ich ein Icon einer Aktion im TActionManager zuweise. Das gleiche Icon aus der gleichen Imagelist einem Speedbutton direkt zugewiesen sieht so aus, wie es soll:

Als Detail: design-time sieht es noch einen Ticken besser aus als Run-Time, aber der rosa Rand ist immer zu sehen.

Hab einiges herumprobiert an der ImageCollection, das ändert aber nichts.

Gibt es da Hinweise? Danke!
Miniaturansicht angehängter Grafiken
screenshot-2023-05-11-095522.png  
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.452 Beiträge
 
Delphi 12 Athens
 
#2

AW: TActionManager + TVirtualImageList + PNG

  Alt 11. Mai 2023, 10:36
Kannst du das Beispielprojekt mal hier posten? Das erspart dem einen oder anderen die Mühe, das selbst zusammenzubauen, und vermeidet insbesondere auch Unschärfen in der Beschreibung.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Renate Schaaf

Registriert seit: 25. Jun 2020
Ort: Lippe
114 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: TActionManager + TVirtualImageList + PNG

  Alt 11. Mai 2023, 10:53
Sind die icons wirklich .png? Die regeln das doch über den alpha-channel, und das funktioniert sowieso besser. Rosa Ränder tauchen eigentlich nur bei .bmp auf, die eine transparente Farbe haben. Man könnte aber ziemlich einfach eine utility schreiben, die die transparente Farbe in alpha übersetzt und das Ergebnis in .png abspeichert.

Renate
Renate
  Mit Zitat antworten Zitat
cltom

Registriert seit: 22. Sep 2005
221 Beiträge
 
Delphi 12 Athens
 
#4

AW: TActionManager + TVirtualImageList + PNG

  Alt 11. Mai 2023, 11:58
Danke für die Rückmeldungen. Das Beispiel anbei. Ja, es sind png mit transparentem Hintergrund.

Denkbar, dass es indirekt mit Anti-Aliasing zusammenhängt ... ?! Wie genau die Transparenz beim AA interpretiert wird.
Angehängte Dateien
Dateityp: zip demo.zip (15,3 KB, 4x aufgerufen)
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.452 Beiträge
 
Delphi 12 Athens
 
#5

AW: TActionManager + TVirtualImageList + PNG

  Alt 11. Mai 2023, 12:28
Dem Action-SpeedButton ist keine ImageList zugewiesen. In dem Fall wird beim Zuweisen der Action ein Bitmap erzeugt und als Glyph angezeigt (kann man im Glyph Property sehen).

Richtiges Vorgehen: Dem SpeedButton erst die ImageList und danach die Action zuweisen. Das setzt dann im SpeedButton den ImageIndex.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: TActionManager + TVirtualImageList + PNG

  Alt 11. Mai 2023, 13:51
Es sieht ja so aus, als wenn bei der Action das "Image" umkopiert/transformiert wird.
Also z.B. das PNG intern auf einen rosa Hintergrund und das ErgebnisBild (Icon/Bitmap) dann erst im Button zu sehen ist.

Wenn da das Alpha in eine Transparenz-Maske (durchsichtiges Pixel oder nicht) überführt würde, dann kommt sowas bei raus, wenn man "halbtransparente" Pixel letztendlich als Transparent und nicht als Intransparent behandelt. (oder beim Umkopieren muß eine passendere Hintergrundfarbe benutzt werden ... wobei oftmals einfach schwarz, anstatt Rosa genommen wird, was auch nicht immer "optimal" ausschaut, z.B. auf hellen Buttons/Komponenten)
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
cltom

Registriert seit: 22. Sep 2005
221 Beiträge
 
Delphi 12 Athens
 
#7

AW: TActionManager + TVirtualImageList + PNG

  Alt 12. Mai 2023, 09:00
Dem Action-SpeedButton ist keine ImageList zugewiesen. In dem Fall wird beim Zuweisen der Action ein Bitmap erzeugt und als Glyph angezeigt (kann man im Glyph Property sehen).

Richtiges Vorgehen: Dem SpeedButton erst die ImageList und danach die Action zuweisen. Das setzt dann im SpeedButton den ImageIndex.
Ok, danke, das wusste ich nicht. Ich dachte, es würde reichen, die Action zuzuweisen und damit kommt der Rest mit. Aber ja, sobald man es macht, wie Du es beschrieben hast, passt das Icon.

Danke!!
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.452 Beiträge
 
Delphi 12 Athens
 
#8

AW: TActionManager + TVirtualImageList + PNG

  Alt 12. Mai 2023, 09:44
Die Action kennt die ImageList für den Button ja gar nicht. Man könnte jetzt die der ActionList nehmen, aber die gibt es häufig gar nicht oder sie passt nicht zu dem Form auf dem der Button liegt (wichtig bei per Monitor DPI).
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
cltom

Registriert seit: 22. Sep 2005
221 Beiträge
 
Delphi 12 Athens
 
#9

AW: TActionManager + TVirtualImageList + PNG

  Alt 12. Mai 2023, 14:38
Die Action kennt die ImageList für den Button ja gar nicht. Man könnte jetzt die der ActionList nehmen, aber die gibt es häufig gar nicht oder sie passt nicht zu dem Form auf dem der Button liegt (wichtig bei per Monitor DPI).
ok, ist klar, Danke Dir!
  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 05:22 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