RealICQHoverImage.pas 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
  1. {
  2. 文件名:RealICQHoverImage.pas
  3. 功 能:支持MouseEnter和MouseLeave事件的Image组件。
  4. 建 立:尹进
  5. 历 史:
  6. 2005.12.23:补文件说明信息(尹进)
  7. }
  8. unit RealICQHoverImage;
  9. interface
  10. uses
  11. ExtCtrls, Classes, Messages, Controls;
  12. type
  13. TRealICQHoverImage = class(TImage)
  14. private
  15. FOnMouseEnter: TNotifyEvent;
  16. FOnMouseLeave: TNotifyEvent;
  17. procedure CMMouseMouseEnter(var Message : TMessage);Message CM_MouseEnter;
  18. procedure CMMouseMouseLeave(var Message : TMessage);Message CM_MouseLeave;
  19. function GetMouseEnter: TNotifyEvent;
  20. procedure SetMouseEnter(Value: TNotifyEvent);
  21. function GetMouseLeave: TNotifyEvent;
  22. procedure SetMouseLeave(Value: TNotifyEvent);
  23. function GetCopyRight: String;
  24. protected
  25. procedure DoMouseEnter;
  26. procedure DoMouseLeave;
  27. public
  28. published
  29. property CopyRight: String read GetCopyRight;
  30. Property OnMouseEnter: TNotifyEvent read GetMouseEnter write SetMouseEnter;
  31. Property OnMouseLeave: TNotifyEvent read GetMouseLeave write SetMouseLeave;
  32. end;
  33. procedure Register;
  34. implementation
  35. {TRealICQHoverImage}
  36. //------------------------------------------------------------------------------
  37. function TRealICQHoverImage.GetCopyRight: String;
  38. begin
  39. Result := '版权所有(C) 2002-2016 浙江万赛软件科技有限公司 保留所有权利。';
  40. end;
  41. //------------------------------------------------------------------------------
  42. procedure TRealICQHoverImage.CMMouseMouseEnter(var Message: TMessage);
  43. begin
  44. DefaultHandler(Message);
  45. DoMouseEnter;
  46. end;
  47. //------------------------------------------------------------------------------
  48. procedure TRealICQHoverImage.CMMouseMouseLeave(var Message: TMessage);
  49. begin
  50. DefaultHandler(Message);
  51. DoMouseLeave;
  52. end;
  53. //------------------------------------------------------------------------------
  54. function TRealICQHoverImage.GetMouseEnter: TNotifyEvent;
  55. begin
  56. Result := FOnMouseEnter;
  57. end;
  58. //------------------------------------------------------------------------------
  59. procedure TRealICQHoverImage.SetMouseEnter(Value: TNotifyEvent);
  60. begin
  61. FOnMouseEnter := Value;
  62. end;
  63. //------------------------------------------------------------------------------
  64. function TRealICQHoverImage.GetMouseLeave: TNotifyEvent;
  65. begin
  66. Result := FOnMouseLeave;
  67. end;
  68. //------------------------------------------------------------------------------
  69. procedure TRealICQHoverImage.SetMouseLeave(Value: TNotifyEvent);
  70. begin
  71. FOnMouseLeave := Value;
  72. end;
  73. //------------------------------------------------------------------------------
  74. procedure TRealICQHoverImage.DoMouseEnter;
  75. begin
  76. if Assigned(FOnMouseEnter) then FOnMouseEnter(Self);
  77. end;
  78. //------------------------------------------------------------------------------
  79. procedure TRealICQHoverImage.DoMouseLeave;
  80. begin
  81. if Assigned(FOnMouseLeave) then FOnMouseLeave(Self);
  82. end;
  83. //------------------------------------------------------------------------------
  84. procedure Register;
  85. begin
  86. RegisterComponents('RealICQ UI', [TRealICQHoverImage]);
  87. end;
  88. end.