如题

解决方案 »

  1.   

    同上!~~procedure TWinControl.Update;
    begin
      if HandleAllocated then UpdateWindow(FHandle);
    end;procedure TWinControl.Repaint;
    begin
      Invalidate;
      Update;
    end;procedure TControl.Refresh;
    begin
      Repaint;
    end;
      

  2.   

    顶楼上的,我想不仅要学习楼上给出的代码,更重要的是学习他如何学习的方法。
    所有的焦点就集中在Repaint上,从下往上看:
    Invalidate:使整个窗体的客户区域变为无效区域,然后调用Update方法;
    Update方法实际调用API函数向WinProc发送WM_PAINT消息,这样根据无效区域的大小(这里是整个窗体客户区域)来重绘。
    从上往下看:
    Refresh调用的就是Repaint,两者没有不同,只是使用在不同的地方,方便理解,就好比Delphi里面经常出现的这样的一种比较好笑的声明:
    type
      TFileName = type string;
    这是什么意思?呵呵,为了方便理解而已。