@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.