Einzelnen Beitrag anzeigen

Benutzerbild von Uwe Raabe
Uwe Raabe

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

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

  Alt 4. Mai 2020, 21:00
Liegen die Imagelisten auf einer normalen Form, funktioniert alles so wie gewollt. Sieht fast nach einem Bug aus.
Nein, das ist kein Bug. Die TVirtualImageList muss ja über die DPI-Änderung für das Form informiert werden. Deswegen muss sie zwingend auf dem Form liegen. In dem besagten Artikel steht auch:
Zitat:
TVirtualImageList erbt automatisch die DPI seines Eigentümers (TCustomForm oder TCustomFrame), falls dieser skaliert ist.
Damit ist klar, daß das Form oder Frame der Owner der ImageList sein muss.

Unter Bewährtes Vorgehen steht dann auch:
Zitat:
Eine TVirtualImageList-Komponente sollte immer auf einem Formular, nicht in einem Datenmodul platziert werden. Formulare haben einen zugeordneten Monitor und eine zugeordnete Auflösung (DPI); Datenmodule nicht. TImageCollection-Komponenten können beliebig platziert werden, da sie einfach die Quelle sind und nicht von DPI-Änderungen beeinflusst werden: sie sind die Quelle und die virtuelle Bilderliste ist die Darstellung.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat