update,refresh,self.invalidate这三个有什么区别啊?(1分)

  • 主题发起人 主题发起人 lyws519
  • 开始时间 开始时间
L

lyws519

Unregistered / Unconfirmed
GUEST, unregistred user!
最近学着自己写控件,参考别人的程序的时候经常看到这三个语句,却一直搞的不是很清楚,请哪位比较了的朋友介绍一下。。。

还有,控件的编写怎么才能避免闪烁呢?我要写一个电压表的控件,给10V电压就指到10V,给20V的电压就指到20V。。。可是我做出来的总闪烁。。。我用的WMPaint触发的,然后就用canvas画,闪烁很严重。。。大家是怎么做的呢?
 
要缓解闪烁的问题可以将控件从TCustomControl中继承
在Create里设置双缓冲
DoubleBuffered := True;
其实只要继承父类Paint事件就可以了而不用WMPaint
protected
procedure Paint;override;

update,refresh,self.invalidate这三个有什么区别我也不清楚我平时都用Invalidate;
 
简单的答案,
关于update,refresh,invailidate看vcl一看就知道了。使用ctrl+鼠标左键

self=C语言的this是对象的指针。
图片闪说,看
方法一:
VCL关于wincontrl类私用double buffer绘图(双缓冲绘图)
方法二: Tgraphcontrol使用canvas.lock绘图。。。。(图像冻结)

都解答了。
 

Similar threads

D
回复
0
查看
1K
DelphiTeacher的专栏
D
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
后退
顶部