procedure ZeichneWC(const WC: TWinControl; zeichnen: boolean);
begin
if (WC.handle = 0) or not assigned(WC) then exit;
if zeichnen then begin
WC.Perform(WM_SETREDRAW, 1, 0);
RedrawWindow(WC.Handle, nil, 0, RDW_ERASE or RDW_INVALIDATE
or RDW_FRAME or RDW_ALLCHILDREN);
end else
sendmessage(WC.handle, WM_SETREDRAW, 0, 0);
end;
// nicht mehr zeichnen
procedure TForm1.Button1Click(Sender: TObject);
begin
ZeichneWC(Panel1, false);
end;
// wiederherstellen
procedure TForm1.Button2Click(Sender: TObject);
begin
ZeichneWC(Panel1, true);
end;