摘要: 开发中,经常需要对一些编辑框作输入限制,如限制只能输入0..9的数字,这通过OnKeyPress事件即可达到:if not (Key in ['0'..'9', #8]) then Key := #0; 但是这只能限制键盘输入,对通过鼠标右键粘贴的情况就无法进行限制啦。下面的代码是通过对编辑框进行subclass而过滤掉WM_CONTEXTMENU右键菜单消息,从而达到屏蔽右键菜单。 var  ... 阅读全文
posted @ 2010-12-10 23:25 覆雨翻云 阅读(1607) 评论(0) 推荐(0) 编辑
摘要: 求助:有谁知道Delphi中窗口的创建过程,此“窗口”不仅仅指 TForm 类型, 还包括一般的窗口控件,如TButton,TEdit等等,希望有能够十分详细的运作 过程,比如说CreatParams,CreateWindowHandle等等函数的调用情况,可能 调试过 Delphi VCL 源代码这个问题才能解决此问题,我很想知道。谢谢!  你的问题只需要从对象的概念来理解也就好了呀! 其实在D... 阅读全文
posted @ 2010-12-10 17:41 覆雨翻云 阅读(3382) 评论(0) 推荐(0) 编辑
摘要: 位大虾,      这个问题在VCL中是怎样处理的呀?   例如:Tedit中有一个事件是onkeypress,应用如下:    那么这个事件是怎么样和WIN32中的WM-CHAR联系上的呢?    VCL是怎么做的?你可以在程序的开头(在Uses后面)先将你的消息赋值为一个常量,如:然后你要自己定义这个消息的结构,如:调用的时候Var MSG1:TMyMSG;说明这个消息是MyMSG消息的结构形... 阅读全文
posted @ 2010-12-10 17:25 覆雨翻云 阅读(525) 评论(0) 推荐(0) 编辑
摘要:     说到VCL中的消息处理就不能不提到TApplication,Windows会为每一个当前运行的程序建立一个消息队列,用来完成用户与程序的交互,正是通过Application完成了对Windows消息的集中处理!     首先通过Application.Run进入消息循环进行消息的处理,其中调用了HandleMessage。 然后程序中的各个VCL对象又是如何接收到Windows消息的呢... 阅读全文
posted @ 2010-12-10 17:12 覆雨翻云 阅读(2221) 评论(1) 推荐(0) 编辑
摘要: 1. 窗口过程     每个窗口会有一个称为窗口过程的回调函数(WndProc),它带有四个参数,分别为:窗口句柄(Window Handle),消息ID(Message ID),和两个消息参数(wParam, lParam), 当窗口收到消息时系统就会调用此窗口过程来处理消息。(所以叫回调函数) 2 消息类型 1) 系统定义消息(System-Defined Messages) 在SDK中事先定... 阅读全文
posted @ 2010-12-10 16:18 覆雨翻云 阅读(22158) 评论(1) 推荐(4) 编辑
摘要: 小技巧:用代码展开/收缩主从结构     Self.tvDepartment.ViewData.Expand(True);     Self.tvDepartment.ViewData.Collaspe(True);     注:tvDepartment为主表对应的TableView 技巧二:在内置右键菜单的后面增加菜单项     首先应在Form上加一个cxGridPopupMenu控件   以... 阅读全文
posted @ 2010-12-10 00:29 覆雨翻云 阅读(2466) 评论(0) 推荐(0) 编辑
摘要: var i: Integer; Column: TcxGridDBColumn; cxView: TcxGridDBTableView; begin cxView := Self.Levels[0].GridView as TcxGridDBTableView; if cxView.DataController.DataSource nil then if cxVie... 阅读全文
posted @ 2010-12-10 00:28 覆雨翻云 阅读(4874) 评论(0) 推荐(0) 编辑