AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi [DevExpress-HowTo] TcxListBox / TListBox flickerfrei
Thema durchsuchen
Ansicht
Themen-Optionen

[DevExpress-HowTo] TcxListBox / TListBox flickerfrei

Ein Thema von neo4a · begonnen am 14. Mär 2012 · letzter Beitrag vom 14. Mär 2012
 
neo4a

Registriert seit: 22. Jan 2007
Ort: Ingolstadt
362 Beiträge
 
Delphi XE2 Architect
 
#1

[DevExpress-HowTo] TcxListBox / TListBox flickerfrei

  Alt 14. Mär 2012, 10:39
Da auch die TcxListBox auf TListBox aufsetzt, "leidet" auch diese Komponente an extremen Flickern, insbesondere beim Resizen z.B. eines Formulars/Frames. Auch das Aktivieren des DoubleBufferings bringt keine Besserung (btw gibt es das Problem auch in C#).

Durch Überschreiben der Prozedur CreateParams() verschwindet dieser Effekt. Dazu ist noch nicht einmal das Ableiten in eine eigene Komponente nötig, wenn man per Interception vorgeht. Dazu wird deklariert:
Delphi-Quellcode:
  TcxListBox = class(cxListBox.TcxListBox)
  public
    procedure CreateParams (var Params: TCreateParams); override;
  end;
und implementiert:
Delphi-Quellcode:
procedure TcxListBox.CreateParams(var Params: TCreateParams);
begin
  inherited CreateParams(Params);
  Params.ExStyle := Params.ExStyle or WS_EX_COMPOSITED; // or WS_EX_LAYERED;
end;
Das auch manchmal vorgeschlagene Attribut WS_EX_LAYERED hat bei mir einen lustigen "Freistellungs"-Effekt der Listbox bewirkt und also nicht funktioniert.

Diesen Code kann man auch in eine separate Unit auslagern. Dann ist darauf zu achten, dass sie in der Uses-Klausel am besten als letzte Unit eingebunden wird. Das gilt auch, wenn man so die Standard-Listbox reparieren will.

HTH.
Andreas
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:26 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz