Grupy TListView - Zmiana koloru nagłówka i podtytułu

0

Komponent TListView oferuje funkcjonalność grupowania danych. Poniżej prosty przykład dodania grupy danych do komponentu TListView.
Chciałbym mieć możliwość zmiany koloru tekstu nagłówka (Header) oraz podtytułu (Subtitle). Ewentualnie linii, która rozdziela poszczególne grupy. Czy jest taka możliwość? Jak to zrobić?

var
   Group             : TListGroup;

   // [Groups]
   LV.GroupView := True;
   LV.Groups.Clear;

   Group := LV.Groups.Add;
   Group.State := [lgsNormal, lgsCollapsible];
   Group.Header := 'Preffered applications';
   Group.Subtitle := 'This section shows all applications that support given extension';
   Group.GroupID := 0;

Przykład

Proszę o pomoc.
-Pawel

0

OwnerDraw?

0

Być może OwnerDraw... ale to wymaga napisanie kodu dla kontrolki od nowa (wyświetlania, pozycjonowania etc... za dużo zabawy). Dwa, nie wiem jak to zrobić.
To co mam zrobione działa super i nie chcę tam za bardzo grzebać. Ale te teksty (nagłówka i podtytułu) źle wyglądają (przede wszystkim w trybie ciemnym) i zastanawiam się, czy jest inna prosta metoda na zmianę koloru...

W trybie ciemnym (używam lekko zmodyfikowanego VCL Styles - Carbon) wygląda to tak:
Jak widać, ten niebieski nie wygląda dobrze, a już czarny kolor podtytułu na ciemnym tle wygląda fatalnie (powinien być biały, lub w szarości).

DarkMode
Mało czytelnie niestety...
-Pawel

3

@Pepe: zobacz na ten artykuł – VCLStylesHook – jest w nim wzmianka o zmianie kolorów elementów interfejsu, które pomimo użycia VCL Styles posiadają natywne, systemowe kolory. Wygląda na to, że instalacja modułu Vcl.Styles.Hooks rozwiązuje Twój problem.

0
furious programming napisał(a):

@Pepe: zobacz na ten artykuł – VCLStylesHook – jest w nim wzmianka o zmianie kolorów elementów interfejsu, które pomimo użycia VCL Styles posiadają natywne, systemowe kolory. Wygląda na to, że instalacja modułu Vcl.Styles.Hooks rozwiązuje Twój problem.

Tak. Dziękuję Ci bardzo. Działa. Teraz wygląda OK.

title

Jeśli masz chwilkę czasu mam kilka pytań.

  1. Co mogę zrobić, gdy po dodaniu modułu Vcl.Styles.Hooks otrzymuję przy kompilacji te ostrzeżenia?

title

  1. Licencja. Moduł rozprowadzany jest na licencji Mozilla Public License Version 1.1 (http://www.mozilla.org/MPL/)
    Powiem szczerze, mam problem z czytaniem takich tekstów. Czy mogę modyfikować taki kod? Ewentualnie użyć w komercyjnej aplikacji (obecnie używam w darmowej)?

  2. Czy istnieje taka możliwość, że wyodrębnię tylko kod odpowiedzialny za kolorowanie TListView i użyję tylko tego?
    Nie chcę używać całego pakietu. Czy mogę to zrobić (w sensie licencyjnym)?

Mam nadzieję, że Embarcadero poprawi te niedociągnięcia VCL Styles w najbliższym wydaniu Delphi (Community Edition). Wolę używać jak najmniej zewnętrznych modułów lub komponentów.

à propos, używam darmowej wersji Delphi Community Edition 10.3.2... moja licencja ważna jest jeszcze 35 dni - czy ktoś coś wie, co z jej przedłużeniem?
Teoretycznie pod koniec roku ma wyjść nowa wersja Delphi, ale nie jest to pewne... zatem, należy cierpliwie czekać, czy może są jakieś procedury przedłużenia licencji? Proszę o info użytkowników Community Edition.

-Pawel

1
Pepe napisał(a):
  1. Co mogę zrobić, gdy po dodaniu modułu Vcl.Styles.Hooks otrzymuję przy kompilacji te ostrzeżenia?

Możesz co najwyżej napisać do embarcadero aby ten kod poprawili.

  1. Licencja. Moduł rozprowadzany jest na licencji Mozilla Public License Version 1.1 (http://www.mozilla.org/MPL/)

Nie wiem czego dotyczy MPL w wersji 1.1, ale ta w wersji 2.0 pozwala na wykorzystanie w produktach komercyjnych i na modyfikacje (zobacz tutaj). Jeśli zastosujesz się do wymagań to według mnie będziesz mógł skorzystać z tego modułu w swoim projekcie. Ale sam też nie jestem orłem w temacie licencji (szczególnie MPL – nie używałem), więc to tylko sugestia. Trzeba przysiąść i ją dokładnie przeczytać, albo patrz punkt niżej.

Nie chcę używać całego pakietu. Czy mogę to zrobić (w sensie licencyjnym)?

Dobrze by było skonsultować się z Mozillą w tej sprawie. ;)

Mam nadzieję, że Embarcadero poprawi te niedociągnięcia VCL Styles w najbliższym wydaniu Delphi (Community Edition).

Nadzieję można mieć, ale cudów się nie spodziewaj. Póki kod się kompiluje i działa prawidłowo to tego typu ostrzeżenia powinieneś ignorować, bo i tak nic z nimi nie jesteś w stanie zrobić (tym bardziej, że używasz wersji CE, a więc nie masz dostępu do źródeł).

Wolę używać jak najmniej zewnętrznych modułów lub komponentów.

Też preferuję budowanie programów w ten sposób – aby nie dociągać zewnętrznych bibliotek dla każdej pierdoły. A niestety tego typu podejście preferują niektórzy tutejsi "guru" i są święcie przekonani, że tak trzeba. Uzależnianie projektu od zewnętrznych bibliotek niezbyt często jest dobrym pomysłem, tym bardziej od starszych czy wręcz porzuconych bibliotek. Musi być konkretny i wyraźny powód.

Co do pozostałych kwestii to milczę, bo Delphi nie używam i nie zamierzam używać.

0
furious programming napisał(a):
Pepe napisał(a):
  1. Co mogę zrobić, gdy po dodaniu modułu Vcl.Styles.Hooks otrzymuję przy kompilacji te ostrzeżenia?

Możesz co najwyżej napisać do embarcadero aby ten kod poprawili.

Tylko drobna poprawka. Ten kod napisał Rodrigo Ruz.

  1. Licencja. Moduł rozprowadzany jest na licencji Mozilla Public License Version 1.1 (http://www.mozilla.org/MPL/)

Nie wiem czego dotyczy MPL w wersji 1.1, ale ta w wersji 2.0 pozwala na wykorzystanie w produktach komercyjnych i na modyfikacje (zobacz tutaj). Jeśli zastosujesz się do wymagań to według mnie będziesz mógł skorzystać z tego modułu w swoim projekcie. Ale sam też nie jestem orłem w temacie licencji (szczególnie MPL – nie używałem), więc to tylko sugestia. Trzeba przysiąść i ją dokładnie przeczytać, albo patrz punkt niżej.

OK

Mam nadzieję, że Embarcadero poprawi te niedociągnięcia VCL Styles w najbliższym wydaniu Delphi (Community Edition).

Nadzieję można mieć, ale cudów się nie spodziewaj. Póki kod się kompiluje i działa prawidłowo to tego typu ostrzeżenia powinieneś ignorować, bo i tak nic z nimi nie jesteś w stanie zrobić (tym bardziej, że używasz wersji CE, a więc nie masz dostępu do źródeł).

Jak wyżej. Ostrzeżenia są z modułów Rodrigo. Napiszę mu, żeby to poprawił.
A Community Edition chyba ma źródła, tylko nie wiem czy wszystkie.

Wolę używać jak najmniej zewnętrznych modułów lub komponentów.

Też preferuję budowanie programów w ten sposób – aby nie dociągać zewnętrznych bibliotek dla każdej pierdoły. A niestety tego typu podejście preferują niektórzy tutajsi "guru" i są święcie przekonani, że tak trzeba. Uzależnianie projektu od zewnętrznych bibliotek niezbyt często jest dobrym pomysłem, tym bardziej od starszych czy wręcz porzuconych bibliotek.

Co do pozostałych kwestii to milczę, bo Delphi nie używam i nie zamierzam używać.

Delphi rules! :)

-Pawel

0
Pepe napisał(a):

Jak wyżej. Ostrzeżenia są z modułów Rodrigo. Napiszę mu, żeby to poprawił.

Pozdrów chłopaka. ;)

A Community Edition chyba ma źródła, tylko nie wiem czy wszystkie.

Wiedzę na temat środowisk do Delphi mam lekko nieaktualną, ale przynajmniej dawniej tak było, że kod biblioteki standardowej i komponentów dostępny był dopiero od wersji Enterprise. Musiałbyś sprawdzić.

Delphi rules! :)

Technologia nie jest ważna – po prostu róbmy fajne programy i dzielmy się kodem. :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1