Moin,
ich habe mich auch mal dran versucht...
Versuch doch einfach die Ereignisse zu überschreiben, in ihnen dann das FDoubleBuffered auszuschalten und dann den Originalcode starten.
Ein Beispiel:
Delphi-Quellcode:
TMyClass = class(TPanel)
private
procedure WMPaint(var Message: TWMPaint); message WM_PAINT;
procedure WMEraseBkgnd(var Message: TWmEraseBkgnd); message WM_ERASEBKGND;
protected
public
end;
procedure TMyClass.WMEraseBkgnd(var Message: TWmEraseBkgnd);
begin
FDoubleBuffered:=false;
inherited;
end;
procedure TMyClass.WMPaint(var Message: TWMPaint);
begin
FDoubleBuffered:=false;
inherited;
end;
Bei einem Cast
TWinControl(MyForm).DoubleBuffered:=true;
wird bei einem Auslesen gleich wieder auf false umgeschaltet.
Vielleicht ist das ja auch alles blödsinn... oder hilft es?
MfG
Thorsten