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