怎样可以使窗口移动的更平稳,富侠赐教。 ( 积分: 50 )

  • 主题发起人 主题发起人 cdesign
  • 开始时间 开始时间
C

cdesign

Unregistered / Unconfirmed
GUEST, unregistred user!
当用 timer 控制一个窗体移动时,如果步长太短移动很慢没有实用价值,如果太大又会抖动,移动非常呆板一跳一跳。

用什么方法可以控制?
 
当用 timer 控制一个窗体移动时,如果步长太短移动很慢没有实用价值,如果太大又会抖动,移动非常呆板一跳一跳。

用什么方法可以控制?
 
Mouse_X,Mouse_Y:Integer; //全局变量

procedure Tform1.MousefrmMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
Mouse_X:=X;
Mouse_Y:=Y;
end;

procedure Tform1.MousefrmMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
if ssLeft in shift then
begin //移动窗体
form1.Left:=form1.Left+X-Mouse_X;
form1.Top:=form1.Top+Y-Mouse_Y;
end;
end;
 
缩短timer触发的时长,减小移动的步长。

另外试试在FormCreate中加上 DoubleBuffered:=true;(我没试过)
 
把代码写在timer中效果不太好!
 

Similar threads

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