Einzelnen Beitrag anzeigen

Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#7

Re: Wie kann man Doublebuffered überschreiben

  Alt 7. Okt 2005, 16:42
@teebee: auf kopieren würde es hinaus laufen (damit der Transparenzeffekt ws_ex_transparent) ordentlich funktioniert. Allerdings gefällt mir die Lösung nicht da ich bei Updates und einer anderen Delphiversion das ganze dann anpassen muss (Denn ich hab das Gefühl das in 2 Jahren das ganze anders implementiert ist.

@mirage228: Dem ist nicht so das der Anwender etwas provizieren will. Aber wenn man das Flackern vermeiden will empfiehlt sich eine Funktion wie diese
Delphi-Quellcode:
procedure SetDoubleBuffered(AParent: TWinControl);
var LCount: Integer;
begin
  AParent.DoubleBuffered := True;
  for LCount := 0 to AParent.ControlCount - 1 do
    if AParent.Control[LCount] is TWinControl then
      SetDoubleBuffered(TWinControl(AParent.Control[LCount]));
end;
Wenn man ein Delphiprojekt startet und die ganzen komponenten aus der DFM ausgelesen werden wird ja auch alles zu TComponent gecastet und dann der Constructor davon aufgerufen. Und ähnlich ist es in einigen unseren Programmen, da wird für alle Komponenten, TControls etc. ein bestimmtes Property gesetzt (z.B.: das Doublebuffered) und da liegt es auf der Hand das man nicht zig prodeduren schreibt sondern eben auf einen gemeinsammen Vorfahren castet um sich arbeit zu spaaren.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat