Zitat von
Flodding:
wie tu ich das?
Überschreibe WMEraseBkgnd:
Delphi-Quellcode:
...
procedure WMEraseBkgnd(
var Message: TWMEraseBkgnd);
message WM_ERASEBKGND;
...
procedure TFrame3.WMEraseBkgnd(
var Message: TWMEraseBkgnd);
var
SaveIndex: Integer;
P: TPoint;
begin
SaveIndex := SaveDC(
Message.DC );
try
GetViewportOrgEx(
Message.DC, P );
SetViewportOrgEx(
Message.DC, P.X - Left, P.Y - Top,
nil );
IntersectClipRect(
Message.DC, 0, 0, Parent.ClientWidth, Parent.ClientHeight );
Parent.Perform( wm_EraseBkgnd,
Message.DC, 0 );
Parent.Perform( wm_Paint,
Message.DC, 0 );
finally
RestoreDC(
DC, SaveIndex );
end;
if not ( Parent
is TCustomControl )
and not ( Parent
is TCustomForm )
then begin
Control.Parent.Invalidate;
end;
Message.Result := 1;
end;
Deine anderen Massnahmen sind damit allerdings bestenfalls unnötig, wahrscheinlich sogar kontraproduktiv.
Den Code habe ich mal eben aus einem bestehenden Projekt "herausseziert". Hoffe es funktioniert so auch...