一个问题.
有两个程序.A和B
A是我做的.B是别人做的.
A程序其中有个FrmDemo窗体.上面包含个显示数据库内容的DBGridEh控件.表格存在列IsWork.是boolean型.用户可直接在表格上面编辑.
现在疑惑的是当我把A程序打开.然后在打开B程序.
我在A程序FrmDemo窗体的表格上修改DBGridEh中的IsWork列为真时.B程序会自动知道.并且弹出提示.我不理解这是什么原理.这两个程序之间并没有显式的传递自定义消息.是钩子的原理吗?那它是那种钩子呢?
有两个程序.A和B
A是我做的.B是别人做的.
A程序其中有个FrmDemo窗体.上面包含个显示数据库内容的DBGridEh控件.表格存在列IsWork.是boolean型.用户可直接在表格上面编辑.
现在疑惑的是当我把A程序打开.然后在打开B程序.
我在A程序FrmDemo窗体的表格上修改DBGridEh中的IsWork列为真时.B程序会自动知道.并且弹出提示.我不理解这是什么原理.这两个程序之间并没有显式的传递自定义消息.是钩子的原理吗?那它是那种钩子呢?
解决方案 »
- TADODataSet数据集访问
- 晕了,要问了,我程序里调用一个CMD模式下的程序叫DFC.EXE,他有一个返回值,怎么在我的程序里接收这个返回值呢?
- 如何实现将全屏游戏切换为窗口型?请多指教!
- 帮我想想办法,老板要我在网上找所有正在新建的酒店或者宾馆?
- 怎么求date是星期几?
- 如何在Findwindow后得到他的windows caption
- 哪里有支持jpg的image倥件下载(马上给分)!!!!!
- 如何用Tadotable实现模糊查询?
- 高手请看——如何在Query中加一个自动编号的计算字段???
- delphi读写xml文件报错
- 一个很强的代码,谁能翻译成DELPHI的?高手来一下
- 请问如何将这样一个结构体内的字段转化为string类型呢?
当然B程序里一定有接收到该自定义消息的事件委托,然后执行一个showmessage('IsWork被点了')弹出一个提示来。
应该是这样的。
建议楼主去研究下怎么在两个应用程序间传递消息- -#
它可能继承DBGRID,然后重写了DBGRID响应编辑事件的方法,然后打包成一个DBGRIDEH控件,给你用,如果你自己没发消息给B程序,那肯定是控件内部搞了鬼,不知道你能不能打开DGBRIDEH控件的源代码看看到底怎么了。钩子的话无外乎也是拦截事件把?比如键盘钩子,鼠标钩子什么的,也是拦截相应的KEYUP,KEYDOWN事件等等。我觉得用钩子拦截你编辑IsWork字段的事件有点旋,如果不是你自己写的这个控件,就只能说写这个控件的人图谋不轨了- -#总之如果确定你自己没写自定义消息、自己没写钩子、没有重写wndproc方法的话,还是不要用此控件了。
我感觉cxGrid这个控件很好用的,而且功能很强大,我现在用的都是这个,楼主可以试试
你所担心的GridEh控件搞鬼的.这是绝对不会的.这个GridEh控件又不是B程序的公司做的.这个表格控件是一个俄罗斯牛人写的.
A程序是连SQL Server数据库.
B程序是别的公司做的.
因为B程序也连接A程序的数据库.但是不做任何操作.刚开始我以为是在数据库层面上检测出来的.后来我取消了这个想法.因为只有A和B在同一台电脑上.B程序才有作用.所以我认为还是在应用程序的层面上的技术.但是不知是何技术