鼠标右键事件,非高手莫入!(50分)

  • 主题发起人 freesoft
  • 开始时间
F

freesoft

Unregistered / Unconfirmed
GUEST, unregistred user!
我想写一个这样的鼠标右键事件,来取出我要的数据!
比方说:表A有两个字段,ID、TYPE
我在FORM上有一个combobox,输入在COMBOBOX中输入ID,鼠标右键后,模糊查询出和ID
类似的,但显示出的是TYPE ,我再从中选择我要的TYPE,
比如
ID TYPE
A001 面
A002 面包
B001 汽水
B002 啤酒
B003 白酒
我输入A0,在COMBOBOX中右键后,COMBOBOX中只看得到面、面包!
 
同志,你的问题不难,但一句非高手莫如就!!!!!!!!!!!!!!!

其实很简单的东西,没有什么高难度的函数和过程。

就是把数据表中的字段读出来再用SQL过滤要的数据在动态的添加到COMBOBOX中吗
 
关键是获得输入之后触发查询,你用了右键就解决问题了,不过操作有点繁琐,
是否考虑省去右键这个动作,直接显示
 
我有一个建议,但是不知你喜欢不,我用过的
你说的模糊查询的东西用Filter过滤一下就可以得到,
但是用鼠标右键似乎不太好用,
我的方法是做一个DBGrid指向过滤的数据集,至于DBGrid是Show还是Hide取决于你想不想
让用户看到它,可以在ComboBox的OnMouseMove事件中和DBGrid的OnMouseMove,OnCellClick事件
中写Show和Hide的代码,
就是实现麻烦一些,但我觉得用起来挺方便
 
应该在ComboBox的下拉事件中写代码
用sql语句取得Type
'select type from tab where ID like '''+combobox1.text+'%'';';
 
我智商只有40,不过你看这个方法可行吗?
使用Dataset的Filter属性,用Filter='ID=A00*'
注意要动态改变Filter值,记着如果Combobox1的text为空是改变Filtered=false,超好用的东西
 
大家说的都有道理,可以还是没有答到关键的问题上——右键,
T0 :lmcui,
COMBOBOX有ONMOUSEMOVE的事件吗?我怎么没有看到,希望给予详细的答案!

 
喔,为什么要鼠标右键?如果没有点到COMBOBOX上去,就失去了焦点了。
并且,右键是要弹出菜单的,你的这种做法是不符合WINDOWS操作规范的。
 
freesoft:
sorry,我搞错了,不是每一个控件都有OnMouseMove事件的,ComboBox就没有
但是你可以在它的OnEnter和OnExit事件里面写,其实比在OnMouseMove事件里面写更直接,
一般的控件都有OnEnter事件,包括DBGrid
 
OnMousedown都没了吗?
这个我还没注意!有的话可以判断button参数
 
ComboBox1ContextPopup

或者用消息判断是否右键。然后把右键的弹出菜单干掉。
 

Similar threads

I
回复
0
查看
515
import
I
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
I
回复
0
查看
634
import
I
顶部