怎样让动画与光标闪烁同步?(50分)

  • 主题发起人 爱睡觉
  • 开始时间

爱睡觉

Unregistered / Unconfirmed
GUEST, unregistred user!
我在form中放置了一个timer,在不同时间绘制两幅图,但图片闪烁的时间与
edit中光标闪烁不同步(频率相同,但闪烁时间不同)使得form中显得很乱,有什
么办法解决?
 
在Edit的onshow或onCreate中把Timer1.enabled设为true行不行?
 
那么您可以使用HideCaretAPI关闭光标。。。
 
Ontimer的时间不是特别准确!
 
Sorry, I mean the API of
HideCaret();
:)
 
edit没有onshow和onpaint事件呀,而且我还需要光标提示
 
可以修改光标(应该叫插字符Caret,光标是鼠标指针)的闪烁时间
调用Windows API SetCaretBlinkTime 和 GetCaretBlinkTime
function SetCaretBlinkTime(uMSeconds: UINT): BOOL; stdcall;
function GetCaretBlinkTime: UINT; stdcall;
SetCaretBlinkTime可以设置caret的闪烁时间单位是毫秒
GetCaretBlinkTime可以获得当前Caret的闪烁时间
根据你的动画刷新频率,选择一个比较合适的时间,使它与你的动画刷新频率相差
比较大,避免与你的动画频率接近,可能效果比较好.
但是,这个函数原则上只有控制面板才能使用,修改它会修改系统所有caret的闪烁
时间,所以,如果用这种方法,一定在程序退出之前将caret的闪烁时间修改会原来的
值.
 
接受答案了.
 

Similar threads

D
回复
0
查看
2K
DelphiTeacher的专栏
D
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
921
DelphiTeacher的专栏
D
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
顶部