Przejdź do treści

THighDPIHelper

Ostatnia aktualizacja:

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:

  1. Wypakować zawartość archiwum do katalogu, w którym chcemy umieścić komponenty.
  2. Otworzyć plik Packages\HIghDPIHelper_D300.groupproj w Delphi.
  3. Ustawić platformę na 64-bit Windows dla paczki HighDPIHelperR i skompilować.
  4. Ustawić platformę na 32-bit Windows dla paczki HighDPIHelperR i skompilować.
  5. Użyć opcji instalacji dla paczki HighDPIHelperD.
  6. 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(button: 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

Rezultaty zastosowania komponentu THighDPIHelper

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.

Do pobrania

Komentarze (…)

Ładowanie komentarzy…