AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Icons im Program dem DPI-Wert anpassen (TPngImageList + Collection)
Thema durchsuchen
Ansicht
Themen-Optionen

Icons im Program dem DPI-Wert anpassen (TPngImageList + Collection)

Ein Thema von Strict · begonnen am 1. Mai 2020 · letzter Beitrag vom 4. Mai 2020
Antwort Antwort
Strict

Registriert seit: 24. Mär 2020
47 Beiträge
 
#1

Icons im Program dem DPI-Wert anpassen (TPngImageList + Collection)

  Alt 1. Mai 2020, 12:09
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().

Geändert von Strict ( 1. Mai 2020 um 12:32 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

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

AW: Icons im Program dem DPI-Wert anpassen (TPngImageList + Collection)

  Alt 1. Mai 2020, 12:44
Welche Delphi-Version? Neuere Versionen haben TImageCollection undTVirtualImageList für genau diesen Zweck.

Alternativ könnte ich noch im Anhang DynImageList anbieten.
Angehängte Dateien
Dateityp: zip DynImageList.zip (320,9 KB, 19x aufgerufen)
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Strict

Registriert seit: 24. Mär 2020
47 Beiträge
 
#3

AW: Icons im Program dem DPI-Wert anpassen (TPngImageList + Collection)

  Alt 1. Mai 2020, 15:48
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 ImageCollection1.Images.Items[ImageCollection1.GetIndexByName(AName)] ... Es geht mir darum eine TToolBar mit Icons zu füllen und es sollen immer automatisch die richtigen je nach DPI ausgewählt werden.

Ich habe diese Anleitung abgearbeitet. Aber die Bildchen in meiner TToolBar sind bei 175% DPI trotzdem nur 16x16px klein.
Wenn ich ein Bild mit VirtualImageList1.GetIcon(Index, Image5.Picture.Icon)); in ein 96x96 TImage lade, sehe ich trotzdem nur ein 16x16 Bildchen.
https://translate.google.com/transla...mage-List.aspx

Geändert von Strict ( 1. Mai 2020 um 16:25 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

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

AW: Icons im Program dem DPI-Wert anpassen (TPngImageList + Collection)

  Alt 1. Mai 2020, 16:34
10.3.3.
Ich werde die TImageCollection ausprobieren. Wie verwendet man die? Ich finde so gut wie nichts dazu in der Doku.
Steht alles in dem verlinkten Wiki-Artikel alles drin. Eigentlich ist es gar nicht so schwierig.
  1. Platziere eine TImageCollection auf dem Form
  2. Lade alle Images in den verschiedenen Größen
  3. Platziere eine TVirtualImageList auf dem Form
  4. Verbinde diese mit der ImageCollection und selektiere alle oder alle benötigen Bilder in die VirtualImageList
  5. Verbinde die Toolbar mit der VirtualImageList

Die Toolbar-Icons werden nun automatisch an die aktuelle DPI angepasst. Kein weiterer Code nötig.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Strict

Registriert seit: 24. Mär 2020
47 Beiträge
 
#5

AW: Icons im Program dem DPI-Wert anpassen (TPngImageList + Collection)

  Alt 1. Mai 2020, 16:53
Genau das habe ich gemacht und ich sehe trotzdem nur sehr unscharfe kleine Bilder.
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

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

AW: Icons im Program dem DPI-Wert anpassen (TPngImageList + Collection)

  Alt 1. Mai 2020, 18:25
Kannst du mal ein entsprechendes Beispielprojekt (mit .dproj Datei!) hier anhängen?
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  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 22:26 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