Board logo

Subject: 求高手给指点一下 [Print This Page]

Author: lybingyu    Time: 2008-12-2 10:34     Subject: 求高手给指点一下

刚来论坛,不知技术咨询贴, 发在哪个模块比较合适。
     现小弟有一问题要向大家请教,还知解的高手朋友给指点一二。
Cnpack中有代码输入助手,输入代码时可以让IDE不失去焦点,而且弹出的助手(看上去是个list)还能响应键盘和鼠标,我就是想实现这种效果,不知这么说大家明白吧!

[ 本帖最后由 lybingyu 于 2008-12-2 10:37 编辑 ]
Author: Passion    Time: 2008-12-2 11:21

明白你的问题。这是个很典型的需求,需要用到一些偏僻的窗口风格。
具体可看看CnPack专家包源码中的CnInputHelper.pas里头的TCnInputBtnForm的CreateParams函数。
Author: lybingyu    Time: 2008-12-9 09:23

首先谢谢 Passion (LiuXiao) 的热心回复,我找到了CnInputHelper.pas,但还是有些知识点看不大明白,可能是内功功底太差还得好好的学习,很佩服作者您

[ 本帖最后由 lybingyu 于 2008-12-9 14:25 编辑 ]
Author: Passion    Time: 2008-12-9 12:14

不客气,一块讨论共同提高。
这个CreateParams里头写的代码的作用是让自己这个WinControl具有所需要的特殊窗口风格,这些风格正是无焦点但能接收键盘输入所需要的。
Author: lybingyu    Time: 2008-12-9 14:24

我还想知道是在什么地方触发了创建这个助手的事件,又在什么时候使这个助手不可见(或者是消毁)了呢?  我想知道这是怎么实现的,是响应了什么windows消息嘛? 还望在给指点一二,我看一天的源码看的云里雾里的,实在是没能找到实现部分呀!
Author: Passion    Time: 2008-12-9 15:30

这就复杂了。你的目的是仅仅实现这么一个不可获得焦点但能接收键盘输入的WinControl呢,还是要在Delphi的IDE里头也搞这么个东西?如果是后者就需要全盘看CW的代码,不是几句能说清楚的,如果是前者,你模仿CreateParams这句,重载它,自己实现一个Form,Form里头的东西也重载CreateParmas来同样实现,这个Form就应该有你要求的能力了。
Author: lybingyu    Time: 2008-12-9 23:55

我不用作这么复杂的东西,只想实现一个数据集的过滤选择.按照你的指点基本实现,还有两个小问题不解,我给你发到邮箱
liuxiao@cnpack.org,还望有时间之余给看下,非常感谢!
我也想好好的学习,只是有些东西找不着思路,真不想浪费你的宝贵时间,再次感谢




Welcome to CnPack Forum (http://bbs.cnpack.org/) Powered by Discuz! 5.0.0