delphi 刷新

来源:百度知道 编辑:UC知道 时间:2024/06/16 07:11:23
小弟初学delphi,正在编中国象棋游戏。碰到一个小问题。就是当棋子改变位置的时候,不刷新就不会显示棋子的改变,用了强制刷新命令invalidate();造成鼠标每点击一次都刷新一次,屏闪得厉害,眼睛很难受。
请问如何解决这个刷新问题。既达到每走一子都显示改变又不会闪屏?
跪谢了。

PS:小弟新手,希望能解答得简单易懂点。如果是一长串代码的,就不劳费心了。

首先doublebuffer可以设置成True。
然后取消背景擦出。
最后就是 精简你 paint的事件的代码 和 提高效率 就这样

定义一个全局变量movebool:bool,
if qizi.mov and movebool then
begin
movebool:=true ;
repaint;
end else movebool:=false;

我也是新手,我谈谈我的思路,不对的话请见谅。你可以把棋子的那个控件先设置为不可见。再写入移动的代码。写完后再重新把棋子设为可见的,这样子应该就不用全屏幕都闪了。。呵呵,这办法有点笨。

应该可以在棋子走动那个事件里加上刷新代码的吧?