Przedstawię na czym polega problem:
Gdy wstawię na formę PageControl albo Panel z parametrem Align := alClient podczas rozszerzania formy, każdy element na tym panelu zaczyna mrugać np. Image, Gauge, Label i inne.
Nawet sam caption Panelu mruga. Znalazłem w internecie gifa, który przedstawia ten problem na Windowsie XP (ja używam aktualnie Windowsa 7 i tworzę w Delphi 7).
Tutaj akurat jest zaprezentowany jakiś komponent, ale chodzi mi o te zjawisko jak się rozszerza formę.
Gdy wyłączyłem Aero (we właściwościach aplikacji) - problemu nie ma.
W jaki sposób to można naprawić? XPManifest nie ma na to wpływu.
Jest jeszcze taka zależność: Im więcej tego typu komponentów jak Panel na formie, tym bardziej ten problem jest widoczny.
Zmień DobuleBuffered Formy 35 na True
powinno pomóc
Akurat to nie pomaga. Wina jest prawdopodobnie w Windows (a dokładniej pojawia się tylko wtedy gdy włączona jest opcja "pokazuj zawartość okna podczas przemieszczania").
@Grudziecki DoubleBuffered powoduje "brak odświeżania" grafiki na formie. Wszystko zaczyna się mazać, gdy się zmienia.
@Opi Czy jest zatem możliwość, żeby wymusić rysowanie konturu formy podczas jej rozszerzania?
Wtedy zawartość byłaby stała.
hmm. u mnie mruganie tez wystepuje wystepuje i doublebuffered formy tez nie pomaga.... bo komponenty leza na Panelu.
doublebuffered panelu zalatwia sprawe. przynajmniej u mnie.
cimak napisał(a)
hmm. u mnie mruganie tez wystepuje wystepuje i doublebuffered formy tez nie pomaga.... bo komponenty leza na Panelu.
doublebuffered panelu zalatwia sprawe. przynajmniej u mnie.
O widzisz. A ja już spisałem ten temat na straty. Przy następnej okazji spróbuję.
cimak napisał(a)
hmm. u mnie mruganie tez wystepuje wystepuje i doublebuffered formy tez nie pomaga.... bo komponenty leza na Panelu.
doublebuffered panelu zalatwia sprawe. przynajmniej u mnie.
Niestety u mnie nie :( Pewnie dlatego że mam Panel na Panelu.
to jest tak ze musi kazdy komponent pochodny od win32 tcontrol czy tam twincontrol byc na doublebuffered := true;
musisz jehac for i;=0 yo appplication.components.length-1do
if tutaj szukasz czy kontrolka jest pochodna od twincontrol czy moze nawet tcontrol
i ustawiasz jej poprzez rzutowanie wartosc doublebuffered na true;