Einzelnen Beitrag anzeigen

Namenloser

Registriert seit: 7. Jun 2006
Ort: Karlsruhe
3.724 Beiträge
 
FreePascal / Lazarus
 
#8

AW: Nach TSplitter Nutzung verschwindet die Komponente

  Alt 8. Nov 2013, 01:14
Ok, jetzt sind die Rechner etwas schneller. Vielleicht kann ich inzwischen meine Skepsis vergessen und es von Neuem versuchen. Aber ich kann mich erinnern wie ich mal ein Fenster aus vier übereinander liegenden Panel-Schichten erstellt haben (damals auch wegen mehrerer Splitter). Jedes Mal wenn ich damals das Fenster vergrößert habe, gab es eine mächtige Flackerei. Das Ganze nur wegen der Panele. Seit der Zeit bin ich etwas sparsam mit übereinender angeordneten Panelen.

Das Problem ist, dass Panele erst gezeichnet werden, dann die Panele darüber, dann die darüber und zuletzt z. B. das Memo. Das kann flackern bei zu vielen Panelen.

Allerdings sind die Computer inzwischen schneller. Wenn es nicht anders geht oder niemand eine Lösung kennt, muss ich in den sauren Apfel beißen.
Das Geflacker gibt es auch auf modernen Rechnern noch, aber man kann es zum Teil verhindern, indem man im OnFormCreate csOpaque zum ControlStyle der problemverursachenden Controls hinzufügt:

MyComponent.ControlStyle := MyComponent.ControlStyle + [csOpaque]

Das verhindert, dass jedes mal erst noch der Hintergrund neu gezeichnet wird (was nämlich das Flackern verursacht).

Auch die Eigenschaft DoubleBuffered auf True zu setzen kann helfen.

(Seit ich Lazarus verwende, muss ich mir solche Gedanken übrigens gar nicht mehr machen, da flackert von vornherein nie etwas.)
  Mit Zitat antworten Zitat