摘要:
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;const WindowsMessage =WM_USER+101 ;procedure UserPro(Var Message:TMessage):message... 阅读全文
摘要:
本例效果图: 代码文件: unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls;type TForm1 = class(TForm) Panel1: TPanel; Button1: TBut... 阅读全文
摘要:
消息流程: 譬如用鼠标左键点击一下窗体, 系统会收到一条 WM_LBUTTONDOWN 消息; 当鼠标抬起, 系统又会收到 WM_LBUTTONUP 消息. 系统收到消息后, 会告诉窗体发生的事情, 然后窗体再做出反应; 当然窗体能否做出反应要看窗体是否有相应的响应代码. 要响应 WM_LBUTTONDOWN 消息, 我们需要在 OnMouseDown 事件中写代码; 要响应 WM_LBUTTON... 阅读全文
摘要:
代码如下: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls, Menus; type TForm1 = class(TForm) ... 阅读全文
摘要:
虚拟方法和动态方法不同于静态方法,它们可以在其后裔类中被覆盖(overridden),即只有一个方法所在类的祖先类对应的方法是virtual或dynamic的,这个当前类的方法才可以用overide覆盖。当一个覆盖方法被调用时,方法调用中使用的类或对象的实际(运行时)类型决定了哪一个实现是有效的,而非变量声明的类型决定。virtual方法是可以有实现的部分的,也可是在后裔类中override。... 阅读全文
摘要:
为什么我们点击按钮,就会执行按钮的onclick事件?这个事件是怎么和我们自己的代码关联起来的。相信很多人都有这个疑问。那么我们就通过一个自定义事件来了解这里面得运行原理。以乘法运算来显示,如果乘数大于100,就提示用户,太大了。这个事件用自定义事件定义。 ... 阅读全文