VCL High DPI Image List

vložil Radek Červinka 28. února 2019 12:57

V Delphi Rio byla přidána podpora pro VCL multi resolution imagelisty.

V podstatě se jedná o dvě spolupracující komponenty:

  • TImageCollection - udržuje vlastní multi resolution bitmapy
  • TVirtualImageList - podle DPI zprostředkovává pohled na TImageCollection

Klíčové vlastnosti:

  • List je kompatibilní s TImageList (včetně HIMAGELIST handle), tj. kdekoliv kde se dal použít TImageList můžete použít TVirtualImageList
  • List škáluje podle DPI formuláře, tj. list musí být na formuláři kde se použije
  • Podpora pro konverzi TImageList na nový list, umí přetáhnout data z původního image listu
  • podpora pro hromadný import v různých velikostech
  • Chybějící rozlišení dopočítává

Začneme s TImageCollection. Přidáme někam, nejlépe do datamodulu TImageCollection - ten ponese fyzicky data. Ostatní pak je jen "View" na tyto data. Všimněte si, že jsem přidal 5 ikon a jen v jednom rozlišení. Samozřejmě můžu přidat více velikostí, ale přišlo mi, že dopočet z vyššího rozlišení zafunguje slušně.

TImageCollection

V horním rohu je Add, které umí najednou přidat více ikon v různých velikostech. Mějme např. v adresáři

  • money-16x16.png
  • money-64x64.png
  • vendors-search-16x16.png
  • vendors-search-64x64.png

Po provedení importu rozhodí wizard 4 ikony na dvě po dvou velikostech.

multiadd

Nyní máme TVirtualImageList, nastavíme u něj TImageCollection a zobrazíme jeho wizard a stiskem Add (pozor na property AutoFill) vložíme odkazy na ikony z ImageCollection.

TVirtualImageList

Zároveň vidíme preview v daných rozlišení. Způsob dopočítávání rozlišení určuje property TImageCollection.InterpolationMode. Přenos ikon z existujícího imagelistu je možný přes popup menu u TImageCollection. Už jen přenosem existujících ikon dostaneme bonus v tom, že image list bude automaticky resamplovat staré ikony.

Výsledek

Toolbar při 150%

Původní ImageList, 16x16 pixelů

sample

TVirtualImageList, 16x16 pixelů - původní ikony

sample

TVirtualImageList - automatický resample z lepších ikon

sample


Nabízíme Delphi školení a konzultace na různá témata, primárně ve Vaší firmě.

Tagy:

Novinky v Delphi

Komentování ukončeno

Naše nabídka

MVP
Ing. Radek Červinka - Embarcadero MVP
profil na linkedin, Twitter:@delphicz

Nabízím placené poradenství a konzultace v oblasti programování a vývoje SW.
Dále nabízíme i vývoj speciálního software na zakázku.

Neváhejte nás kontaktovat (i ohledně reklamy).

Pokud chcete podpořit tento server libovolnou částkou, můžete použít PayPal. Moc děkuji.

Delphi Certified Developer

O Delphi.cz

Delphi je jediný moderní RAD nástroj podporující tvorbu nativních aplikací pro platformu Win32, Win64 , Mac OSX a na iPhone a Android (s výhledem na další platformy díky FireMonkey) na současném trhu (včetně Windows 10).

V současnosti je světová komunita přes dva miliónů vývojářů.

Delphi.cz je nezávislý portál pro uživatele Delphi. Portál není koncipován pro úplné začátečníky, i když i ti se zde nebudou nudit, ale spíše na programátory, kteří již něco znají a chtějí své znalosti dále rozvíjet a sledovat novinky.

Poslední komentáře

Comment RSS