如何用Delphi编写自己的可视化控件(3)计算机二级考试

文章作者 100test 发表时间 2009:04:30 03:54:18
来源 100Test.Com百考试题网


  程序编到这里,就算是终于给自己的新控件做了一个外型了,不过它还不能滚动。现在我们来编写鼠标事件,让我们能够操纵它。鼠标事件的过程的定义和Paint过程很相似,只是后面要加上参数说明⑿,鼠标事件分为MouseDown、MouseMove和MouseUp三个,在定义后面都要加上override。接下来在后面编写它的代码。注意:这里的鼠标事件是Mouse…,而不是通常的OnMouse…。可是在⒀处的定义是干什么用的呢?这里的事件定义,都是给用户使用的,也就是说,当使用该控件时,会在Object Inspector中的Event页面中显示出来。
  这些鼠标事件的代码也非常简单,判断鼠标的坐标,在画布上画出相应的图片等,并同时触发相应的事件。值得注意的是,在调用自定义事件时,都要先用⒁处的这样一个语句来判断用户是否已经为该事件编写代码。这一点非常重要,否则会调用出错。
  大家注意到了,刚才所调用的事件都是自定义的,定义的方法也很简单,和定义属性差不多,只是类型时TNotifyEvent罢了。
  TNotifyEvent是默认事件,其定义为:
  TNotifyEvent = procedure(Sender: TObject)
  如果你要定义另外形式的事件,就必须这样:先在type后编写
  <.事件类型名称>. = procedure(<.参数>.:<.类型>.)
  例如:
  TCustomEvent = procedure(a: Integer. b:String).
  然后在public后定义:
  <.事件名称>.:<.事件类型名称>.
  例如:
  AnEvent: TCustomEvent.
  看完这些,这整个程序你应该理解了吧。如果编译或运行出错,注意检查以下几点:
  1、create和destroy过程中是否有inherited语句;
  2、TBitmap类型的变量create和free了没有;
  3、过程前有没有控件名,例如:TPigHorizontalScroller.MoseMove
  判断鼠标是否进入或离开控件的方法:
  定义如下的过程:
  procedure MouseEnter(var Msg: TMessage). message CM_MOUSEENTER.
  procedure MouseLeave(var Msg: TMessage). message CM_MOUSELEAVE.
  再在下面编写代码就行了。这个方法用于编写三态按钮很有用,有兴趣的话,(将来)可以到我的主页下载Pig VCL Package(小猪可视化控件包),参考其中的TPigButton控件。(现在还没有,但是将来有了,欢迎大家下载)

  2009年上半年全国计算机等级考试参考答案请进入计算机考试论坛

  2009年全国计算机等级考试报名信息汇总

  2009年NCRE考试有新变化

  2009年全国计算机等级考试-大纲

  2009年上半年全国计算机二级考试试题及答案

  2009年上半年全国计算机等级考试试题答案汇总



相关文章


二级DELPHI控件:Delphi中ListBox控件的六种特效计算机二级考试
创建Photoshop式浮动窗口应用程序计算机二级考试
如何用Delphi编写自己的可视化控件(1)计算机二级考试
如何用Delphi编写自己的可视化控件(2)计算机二级考试
如何用Delphi编写自己的可视化控件(3)计算机二级考试
计算机二级DELPHI控件:在RichEdit中的串查找计算机二级考试
计算机二级DELPHI控件:状态条插入可视控件计算机二级考试
计算机二级DELPHI控件:捕捉delphi中thread异常计算机二级考试
DELPHI控件:FindWindowEX的一个应用实例计算机二级考试
澳大利亚华人论坛
考好网
日本华人论坛
华人移民留学论坛
英国华人论坛