一个入门级的问题:如何改变鼠标的形状。(100分)

  • 主题发起人 主题发起人 Zyee
  • 开始时间 开始时间
Z

Zyee

Unregistered / Unconfirmed
GUEST, unregistred user!
在Delphi中如何改变鼠标的形状:For Example,我想实现如网页中常见的那种链接方式:鼠标移到 URL 地址标签上,该标签马上出现下划线,同时鼠标变成 “手指”状。
怎样实现这种效果?忘大家指点。
 
改cursor属性
 
将键接文本的Cursor属性设为crHandPoint
 
label1.cursor:=crHandPoint;
label1.font.style:=label1.font.style+[fsUnderline];
 
呵呵
看来没什么其他的好说了。
嘻嘻(如果你想换成其他的非常规图标的话,咱还有的一说。)
 
来点花的!做一个动画鼠标
  首先,在Delphi的主菜单工具下选图像编辑器,编辑一个名为face.res的资源文件,它应该包括个人制作的五个.cur文件:faceleft.cur(图为:圆脸上一双向左看的眼睛),faceright.cur(图为:圆脸上一双向右看的眼睛),plainface.cur(图为:圆脸上一双向前看的眼睛),leftshrink.cur(图为:闭着左眼的圆脸),rightshrink.cur(图为:闭着右眼的圆脸)。
  做好资源文件后,打开一个新的窗体FORM1并放置PopupMenu组件,把FORM1的属性PopupMenu置为PopupMenu1。然后在UNIT1的INTERFACE段下加入以下代码:
  {$ R face.res}
  并在TForm1.FormCreate事件内加入以下代码:
  screen.cursors[1]:=LoadCursor(hInstance,
pChar(′lfaceleft′));
  screen.cursors[2]:=LoadCursor(hInstance,
pChar(′faceright′));
  screen.cursors[3]:=LoadCursor(hInstance,
pChar(′plainface′));
  screen.cursors[4]:=LoadCursor(hInstance,
pChar(′leftshrink′));
  screen.cursors[5]:=LoadCursor(hInstance,
pChar(′rightshrink′));
  screen.cursor:=plainface;
  在TForm1.FormClick事件内加入以下代码:
  screen.cursor:=faceleft;
  screen.cursor:=plainface;
  在TForm1.FormKeyDown事件内加入以下代码:
  if button=MbLeft then
  begin
  screen.cursor:=leftshrink;
  screen.cursor:=plainface;
  end;
  if button=MbRight then
  begin
  screen.cursor:=rightshrink;
  screen.cursor:=plainface;
  end;
  ……
 
把URL地址置为下划线后,如何将它去掉,恢复到无下划线状态?
 
如果要做种效果只能对
CM_MOUSEENTER 和 CM_MOUSELEAVE
消息编程。
 
置下划线很容易:Label。Font。Style:=[fsUnderline];
关键是怎样将它去掉?
 
答Zyee的第二个问题,在Form的onMove事件里恢复Label的无下划线状态
 
去下划线
decLabel.Font.Style:=decLabel.Font.Style-[fsUnderline]
 
接受答案了.
 
后退
顶部