一种给TDBGrid和TLabel增加鼠标效果的简单方法。

 我们在编程过程中,经常遇到要给TDBGrid增加鼠标的滚轮事件处理,具体就是让记录随着鼠标滚轮移动。这里介绍一种比较简单和有新意的方法:

首先在你使用TDBGrid的单元type处加上:

 

TDBGrid = class(DBGrids.TDBGrid)
    public
       function DoMouseWheel(Shift:   TShiftState;   WheelDelta:   Integer;   MousePos:   TPoint):     Boolean;   override;
    end;

 

 

然后在实现部分:

 

function  TDBGrid.DoMouseWheel(Shift:TShiftState;WheelDelta:Integer;MousePos:TPoint):Boolean;
  begin
      Result := true;
      if   WheelDelta<0 then
           DataSource.DataSet.Next;
      if   wheelDelta>0 then
           DataSource.DataSet.Prior;
  end; // 滚动DataSet

 

这样就可以对你整个当前窗体上的TDBGrid的滚轮事件起作用了。

 

与此类似的处理,我们也可以对当前窗体上所有的TLabel控件增加鼠标特效:当鼠标移上去的时候显示手型图标,同时文字变粗;当鼠标移开恢复状态。

 

//----------------给TLabel组件增加鼠标特效-----------------
    TLabel = class(stdCtrls.TLabel)
    public
       procedure CMMouseLeave(var Message: TMessage); message CM_MOUSELEAVE;
       procedure CMMouseEnter(var Message: TMessage); message CM_MOUSEENTER;
    end;

 


procedure TLabel.CMMouseEnter(var Message: TMessage);
begin
  Self.Cursor := crHandPoint;
  Self.Font.Color := clRed;
  self.Font.Style := [fsBold];
end;

procedure TLabel.CMMouseLeave(var Message: TMessage);
begin
  Self.Cursor := crDefault;
  Self.Font.Color := clBlue;
  self.Font.Style := [fsUnderline];
end;

 

 总结:这种思想,可以避免为了一些简单的功能而去自己重写控件的麻烦。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值