![]() |
Icons im Program dem DPI-Wert anpassen (TPngImageList + Collection)
Ein bestehendes Programm muss ich in der nächsten Zeit etwas aufhübschen. In Zeiten von 200% DPI sind die Icons in der ToolBar und an anderen Stellen wie beispielsweise eine ListBox mit selbstbezeichneten Icons einfach zu klein.
Welches ist die beste und einfachste Möglichkeit, dieses Problem zu umgehen? Vielleicht sogar basierend auf TPngImageList / TPngImageCollection? Gerade benutze ich sehr umständlich mehrere TPngImageList'en mit einer Funktion die mir das Icon anhand des Namens aus der Liste meiner Wahl zurückgibt. Die TPngImageCollection kann das leider nicht. Ein record-Helper für TPngImageCollection kennt leider kein GetIcon(). |
AW: Icons im Program dem DPI-Wert anpassen (TPngImageList + Collection)
Liste der Anhänge anzeigen (Anzahl: 1)
Welche Delphi-Version? Neuere Versionen haben
![]() Alternativ könnte ich noch im Anhang DynImageList anbieten. |
AW: Icons im Program dem DPI-Wert anpassen (TPngImageList + Collection)
10.3.3.
Ich werde die TImageCollection ausprobieren. Wie verwendet man die? Ich finde so gut wie nichts dazu in der Doku. Ich dachte eigentlich in etwa so an das Icon zu kommen
Delphi-Quellcode:
Es geht mir darum eine TToolBar mit Icons zu füllen und es sollen immer automatisch die richtigen je nach DPI ausgewählt werden.
ImageCollection1.Images.Items[ImageCollection1.GetIndexByName(AName)] ...
Ich habe diese Anleitung abgearbeitet. Aber die Bildchen in meiner TToolBar sind bei 175% DPI trotzdem nur 16x16px klein. Wenn ich ein Bild mit
Delphi-Quellcode:
in ein 96x96 TImage lade, sehe ich trotzdem nur ein 16x16 Bildchen.
VirtualImageList1.GetIcon(Index, Image5.Picture.Icon));
![]() |
AW: Icons im Program dem DPI-Wert anpassen (TPngImageList + Collection)
Zitat:
Die Toolbar-Icons werden nun automatisch an die aktuelle DPI angepasst. Kein weiterer Code nötig. |
AW: Icons im Program dem DPI-Wert anpassen (TPngImageList + Collection)
Genau das habe ich gemacht und ich sehe trotzdem nur sehr unscharfe kleine Bilder.
|
AW: Icons im Program dem DPI-Wert anpassen (TPngImageList + Collection)
Kannst du mal ein entsprechendes Beispielprojekt (mit .dproj Datei!) hier anhängen?
|
AW: Icons im Program dem DPI-Wert anpassen (TPngImageList + Collection)
Problem gefunden. Die ToolBar muss direkt auf dem TForm liegen und darf vorher nicht auf einem TPanel liegen.
Ich werde bald sicher noch eine Frage zu dieser Liste zusammen mit einer ListBox haben. Mache ich dann aber in einem anderen Thema. |
AW: Icons im Program dem DPI-Wert anpassen (TPngImageList + Collection)
Evtl. ist auch das Verwenden von Vector-Icons interessant. Ich nutze die schon länger, allerdings weiß ich gar nicht ob Delphi da von Haus aus schon was hat (nutze DevExpress).
|
AW: Icons im Program dem DPI-Wert anpassen (TPngImageList + Collection)
Das Problem ist jetzt beseitigt. Die Toolbar darf erstens nicht auf einem Panel liegen und zweitens darf die ImageCollection sowie die VirtualImageList nicht auf einem DatenModul liegen.
Die Bilder können aus der VirtualImageList geladen und zugewiesen werden. Aber beim Wechseln des Bildschirms und somit der DPI, skalieren die Bildchen nicht. Liegen die Imagelisten auf einer normalen Form, funktioniert alles so wie gewollt. Sieht fast nach einem Bug aus. |
AW: Icons im Program dem DPI-Wert anpassen (TPngImageList + Collection)
Zitat:
Zitat:
Unter Bewährtes Vorgehen steht dann auch: Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 11: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