如 D4 般显示 Hint(50分)

  • 主题发起人 主题发起人 yysun
  • 开始时间 开始时间
Y

yysun

Unregistered / Unconfirmed
GUEST, unregistred user!
D4在设计时,拖动控件会用 Hint 的形式显示出它的坐标,
我如何在我的 Form 中实现同样的功能呢?
 
需先挂接appication.onshowhint事件
加入
begin
hintinfo.ReshowTimeout:=1;
//加入坐标变化
hintinfo.HintPos:=point(hintinfo.HintPos.x+.....);
end;
在drag时动态修改hint的值即可。
 
谢谢 menxin,您的方法可以自由定义 Hint 窗口的位置,
但是 Hint 窗口出现、隐去的时间仍然无法控制,
我希望的当 Mouse 移动时,随时显示 (x, y)坐标。
 
可以在MouseDown中设一标志,
在MouseMove中根据标志触发或不触发OnHint事件
 
记得,LMD控件中有个Message之类的东东,就在HINT旁边,应该有用的
 
RedCat,我就是不知道如何触发Hint :(
 
procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
StaticText1.caption := format('%d,%d', [x,y]);
StaticText1.Color := clWindow;
if x + 30 + StaticText1.Width > Width then
StaticText1.left:= Width - StaticText1.Width - 10
else
StaticText1.left:= x+20;
if y + 40 + StaticText1.Height > Height then
StaticText1.Top := Height - StaticText1.Height - 40
else
StaticText1.top:= y+20;
StaticText1.BringToFront;
StaticText1.Refresh;
end;
 
huizhang 真厉害,那还不如学 LMD,画好看
 
因为他已经不是一个HitWindow了,只是一个随着鼠标移动改变位置的窗体而已,也
不使用HitWindow的激活机制。
 
谢谢 huizhang,您纠正了我用hint的思路。
另外,如果在 MouseMove 中照您提示的那样做,就会触发无数个Paint事件,
我的屏幕图形就会不停地闪烁了。
 
Long Time......Finish. :)
 
后退
顶部