delphi中画布的部分刷新 使用refresh全部刷新会产生闪烁,如何让只需要刷新的地方进行刷新,以消除闪烁。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 var MyRgn : HRGN;begin MyRgn := CreateRectRgn( l, t, r, b ); SelectClipRgn( Canvas.Handle, MyRgn ); ..................... repaint code ..................... SelectClipRgn( Canvas.Handle, 0 ); DeleteObject( MyRgn );end; 用doublebuffered:=true可以消除闪烁 不是画布,是窗口,画布没有这个概念了。你可以只更新窗口的一部分,如 Wnyu(能) 所说的 InvalidateRect,这个是WIN32 API,你需要查查它的帮助。一个例子是:----------------------------------------------------var rct: TRect;begin...rct := Rect( x1, y1, x2, y2 );InvalidateRect( PaintBox1.Handle, rct );------------------------------------------------------另一个功能更强的是InvalidateRgn,能够指定非矩形的区域,不过用起来也更麻烦。 Delphi RooyeeMessenger由Delphi开发的XMPP即时通讯客户端(开源) delphi调用VC的ATL组件传递函数指针的问题!!几天了,郁闷!! 这种编码方式怎样做成树状结构(查询语句)? 记录写入cxGrid,却显示不出来,只能显示一行行空白的格子 取得外部程序中控件的句柄 寻觅tp高手~最好能在线解答~这几天通过学习发现了些问题 在delphi里怎么执行后台升级文件 一个关于压缩与发送邮件的问题 at beginning of table :) 怎样做像QQ一样的浮动窗体?
MyRgn : HRGN;
begin
MyRgn := CreateRectRgn( l, t, r, b );
SelectClipRgn( Canvas.Handle, MyRgn );
.....................
repaint code
.....................
SelectClipRgn( Canvas.Handle, 0 );
DeleteObject( MyRgn );
end;
----------------------------------------------------
var
rct: TRect;
begin
...
rct := Rect( x1, y1, x2, y2 );
InvalidateRect( PaintBox1.Handle, rct );
------------------------------------------------------
另一个功能更强的是InvalidateRgn,能够指定非矩形的区域,不过用起来也更麻烦。