VCL, skórki i nieprzyjemny efekt przy zmianie rozmiarów okna

0

"Ubrałem" moje okienka w ciemne standardowe skórki. Przy powiększaniu okien, z prawej strony pojawia się nieprzyjemny efekt - wyświetlane jest białe tło a następnie rysowane jest w tym miejscu okno we właściwym kolorze. Czy można jakoś ten nieprzyjemny efekt wyeliminować?

1

nie mam takiego efektu. Możesz zrobić z tego kilkusekundowy film aby pokazać o co dokładnie chodzi?

0

Najwyraźniej Twój komputer nie wyrabia z odmalowywaniem okna. Pytanie tylko, czy nie wyrabia bo jest powolny, czy powolne jest samo renderowanie okna. Ciekawe czy jest to wina nieoptymalnego kodu VCL, czy po prostu skórka jest za ciężka (w całości renderowana z obrazków, co trwa znacznie dłużej niż wypełnianie obszarów kolorami).

0

Wygląda to tak jak na załączonym filmie (https://4programmers.net/assets/41746/A9FgdN1ncpx2I692P9Fm4yQsjemnBh7Zz1JBD29K.zip). Procesor jest obciążony w ok 50% więc to może być przyczyną. Sprawdzę na lepszym kompie.

1

Przypomniałem sobie że kiedyś napisałem program dla serwisu skrzyni biegów. Potrzebowali formę na której było chyba ze 100 checkboxów (odzwierciedlenie wcześniejszej papierowej karty przyjęć). Program miał ciemną skórkę i rzeczywiście wolno się rysował.
Spróbuj dla formy włączyć DoubleBuffered a dla paneli wyłączyć FullRepaint. Troszkę powinno pomóc.

1

Obejrzałem film — ładna skórka. Mimo wszystko system skinów i renderowania w VCL po prostu ssie. Chyba że odpalasz ten program na Commodore — wtedy to by nie było dziwne, że renderowanie trwa długo.

0

Nie znam się na Delphi, ale jeśli masz taką możliwość to zmień class-brushe na kolor ramki Twojego okna (ewentualnie null-brush, ale czasem sprawia on więcej kłopotu, niż dobranie odpowiedniego koloru).

Teraz widzę, że migają Ci dwa kolory (biały i czarny), więc to raczej nie class-brushe, a raczej wielokrotne rysowanie w tym samym miejscu.

Takie coś złapałem na Twoim filmie
screenshot-20211117075304.png

0

Walczyłem z podobnym efektem...
Problem jest taki, że nie pamiętam co zrobiłem, żeby wyeliminować problemy odrysowywania... ale, być może trzeba ODznaczyć właściwość ParentBackground (i może ParentColor).
DoubleBuffered na True...

0

Kiedyś stosowałem dla Delphi 7 skiny. Okazało się że świetnie działały. Gdy aplikacja była złożona okazało się, że odświeżanie Mainemenu i popupmenu trwało długo co sprawiało błędy w przemalowaniu obiektów. Komponenty te były napisane pod kilka pozycji wyboru w Menu i Popmenu. Dodatkowo, gdy aplikacja miała służyć obliczeniom te skutki niczemu nie służą. Zwalniają aplikacje. Ngdy więcej skórek dla Delphi. Najpiękniej działają aplikacje bez ManifestXP tak jak to było w Windows 95 czy 98. Tam nic nie miga i nic nie znika. Surowy wygląd aplikacji serwerowej działa pięknie dla oka. Dodatkowo aplikacja mimo, że korzystała ze skinów zewnętrznych w postaci skórek jako plików. Pięknych skórek. Zawierała o kilka Mb więcej. Pierwszy przykład https://www.link-rank.com/feature.htm

Dla ciekawskich pamięć komputera 8 GB.

2

Zanim udzielisz komuś wskazówek, sugeruję spojrzeć na kalendarz, zobaczyć który mamy rok i jakie systemy są obecnie na rynku. Nikogo dziś nie obchodzą IDE pokroju Delphi7 czy systemy takie jak Win98 czy XP, a co za tym idzie technologie, które wymarły 15 lat temu.

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