THighDPIHelper Ostatnia aktualizacja: sobota 13 października 2018r. Komponent THighDPIHelper mający na celu wspomóc w szybkim dostosowaniu aplikacji tworzonych w Delphi do ekranów wysokiej rozdzielczości. Więcej na ten temat możesz przeczytać w poradzie Aplikacje DPI-Aware w Delphi.
Użycie komponentu sprowadza się do położenia go na każdej jednej formatce programu, w którym chcemy zastosować dostosowanie. Oczywiście w ustawieniach projektu trzeba zaznaczyć także opcję włączenia obsługi High-DPI. W ramach podniesienia zgodności aplikacji z DPIAware komponent wykonuje następujące operacje:
- Skaluje wszystkie obrazki przycisków
TBitBtn i TSpeedButton
- Skaluje wszystkie obrazki na listach
TImageList
- Zmienia własność
ItemHeight komponentów bazujących na TCustomComboBox
Komponenty projektowane są dla Delphi 10 Seattle, lecz powinny działać także z wersjami starszymi oraz nowszymi. Aby zainstalować komponent w Delphi należy:
- Wypakować zawartość archiwum do katalogu, w którym chcemy umieścić komponenty.
- Otworzyć plik
Packages\HIghDPIHelper_D300.groupproj w Delphi.
- Ustawić platformę na 64-bit Windows dla paczki
HighDPIHelperR i skompilować.
- Ustawić platformę na 32-bit Windows dla paczki
HighDPIHelperR i skompilować.
- Użyć opcji instalacji dla paczki
HighDPIHelperD .
- Komponent zostanie zainstalowany na karcie Windows 10.
Opis komponentu:
- Właściwości:
Scale: Real - zwraca wartość rzeczywistą skalowania, jakie należy zastosować dla aplikacji. Jeśli aplikacja projektowana była dla 96 DPI, a ustawienia systemu wskazują 120 DPI (125%), to zwróconą wartością będzie 1,25.
ExcludeComponents: TStrings - lista nazw komponentów, które mają być wykluczone z automatycznego procesu dostosowania na starcie. Jeśli przykładowo używamy własnych list obrazków dedykowanych różnym rozdzielczością - listy te można wykluczyć.
- Metody:
ScaleImageList(imgList: TImageList) - skaluje przekazaną listę obrazków.
ScaleBitmap(btn: TBitmap) - skaluje bitmapę.
ScaleCombos(cb: TCustomComboBox) - przelicza własność ItemHeight dla przekazanego komponentu dziedziczącego po TCustomComboBox .
ScaleInt(const aValue: Integer): Integer; - zwraca wartość całkowitą po przeskalowaniu; przydatne podczas obliczeń podczas samodzielnego rysowania elementów lub rozmieszczania dynamicznie tworzonych komponentów.
Rezultaty
Powyżej aplikacja uruchomiona na ekranie ze skalowaniem 150%, z włączoną obsługą HighDPI lecz bez dokonania jakichkolwiek zmian w zakresie jej dostosowania oraz po użyciu komponentu THighDPIHelper.
- Ikony paska narzędzi zostały powiększone.
- Ikony przycisków zostały powiekszone.
- Ikony listy zostały powiększone, co wyeliminowało błędne wyświetlanie grafiki.
Download
Wróć
|