delphi的事件继承与消息问题(100分)

  • 主题发起人 主题发起人 mxsbt1
  • 开始时间 开始时间
M

mxsbt1

Unregistered / Unconfirmed
GUEST, unregistred user!
小弟想编一组件,属性和方法都很容易理解,但对事件很模糊,例如 KeyDown,OnKeyDown
还有OnkeyDow指向的处理过程 都是什么东东,如果我想编个由Tedit继承而来的只能输入
数字的TEditNum时把我的判断放在那里?那为仁兄能帮我解释清楚,或给我推荐一篇文章
 
这东西要解释清楚实在是要太长时间了,建议你看看《DELPHI高级开发指南》这本书吧,
里面讲的很详细的,而且也恰好有一个只能输入数字的TEditNum的组件编写的例子。
 
TEditNum时把我的判断放在onkeydown
 
OnKeyDown是在键盘上按下一个键时产生的事件,事件处理程序中Key参数是该键的扫描码。
OnKeyUp是在键盘上释放一个键时产生的事件,事件处理程序中Key参数是该键的扫描码。
OnKeyPress是在键盘上按下并释放一个非功能键时产生的事件,事件处理程序中Key参数是
该键的ASCII码。
你应该在OnKeyPress中处理。
 
我这里有floatedit控件
e-mail:jszmail@263.net
 
请发给我一份:mxsbt@371.net
 
写一个函数,实现判断的功能,它和ONKEYUP的定义要保证是一样的,只是名字不同。
在TEDIT生成的时候
EDIT1 .ONKEYUP:=MYKEYUP;
 
认清Delphi和windows消息印设的关系对编程很有益处,多看些高级编程的书!

我有个简单控件从TListBox继承下来,添加了一个OnInsertString的事件,

能改变s的值达到改变添加到TListBox值的作用,具体同OnKeyPress相仿

OnInsertString(Sender: TObject; var s: string);具体对LB_AddString

消息处理...多用心!

 
重载 WMKeyDown 方法
 
重载WNDPROC在它判断
if msg.Msg=WM_KEYDOWN THEN
IF Msg.Wparm in [48..57,8] then
Inherited;
 
后退
顶部