Einzelnen Beitrag anzeigen

omata

Registriert seit: 26. Aug 2004
Ort: Nebel auf Amrum
3.154 Beiträge
 
Delphi 7 Enterprise
 
#8

Re: Wie kann man Doublebuffered überschreiben

  Alt 7. Okt 2005, 20:09
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
  Mit Zitat antworten Zitat