达到这样的效果
在编辑框中,输入一个字母A,就在下拉编辑框中,过滤拼音字母是A的科室名字,下拉显示出来,如输入AB就过滤拼音字母是AB的科室名字,下接显示出来
比如表里有10条记录,是科室的名字
科室 拼音字母
B超室 BCS
CT室 CTS
挂号室 GHS
收费室 SFS输入BC就显示BC的,输入的同时,也要下拉过滤显示出来
输入C就显示包含C的,输入的同时,也要下拉过滤显示出来
谢谢,我在事件里一定要回车才能实现,如果边输边过滤显示出来,好像不行.
在编辑框中,输入一个字母A,就在下拉编辑框中,过滤拼音字母是A的科室名字,下拉显示出来,如输入AB就过滤拼音字母是AB的科室名字,下接显示出来
比如表里有10条记录,是科室的名字
科室 拼音字母
B超室 BCS
CT室 CTS
挂号室 GHS
收费室 SFS输入BC就显示BC的,输入的同时,也要下拉过滤显示出来
输入C就显示包含C的,输入的同时,也要下拉过滤显示出来
谢谢,我在事件里一定要回车才能实现,如果边输边过滤显示出来,好像不行.
解决方案 »
- TFHminiMq沪深证券行情获取API调用异常
- 寻找delphi合作者开发商业项目!
- 怎么能把variant变量里的内容放到流里去。
- 【方分】耶!武汉又下雪喽,开心……
- fastreport调整上、下、左、右边界就好了
- 如何拖动整个窗体?
- 哪位类似TCHART的控件?
- SQL!select * from x.请问在这里如何把x作为一个变量处理啊?(在线等侯!)
- 用TServerSocket和TClientSocket控件建立新连接,如何取得它的句柄?
- cxgrid lookupcombobox 使用问题,请教
- 如何解决delphi动态生成label控件在Win7下文字丢失
- 为啥HwdBtn := FindWindowEx(hWnd,0,'TButton',nil)总是为0??
在ComboBox的OnChange事件中进行比对onChange 事件 不能保存2个以上的字母,只能保存一个
这个问题不用考虑,
sql语句没问题
主要是delphi上实现
Tks=Class(Tobject)
KSM:String;
PY:String;
end;
.....var
ls_ks:Tks;
...
With AdoQuery1 do//假如你数据表名字叫T_KeShi,字段KSM,PY
begin
Close;
Sql.Clear;
Sql.Add(Select * from T_KeShi Order By PY);
Open
end;
AdoQuery1.First;
While Not AdoQuery1.Eof do
begin
ls_ks:=Tks.Create;
ls_ks.KSM:=AdoQuery1.FieldByName('KSM').AsString;
ls_ks.PY:=AdoQuery1.FieldByName('PY').AsString;
cbx_KSM.Items.AddObject(ls_xxoo.title,ls_xxoo);//cbx_KSM是放科室名的Combobox
AdoQuery1.Next;
end;
....
cbx_KSM的AutoComplete,和AutoDropDown都为False;
在cbx_KSM的OnChange事件中
For i:=0 To cbx_KSM.Items.Count-1 do
begin
if cbx_KSM.Text=(cbx_KSM.Items.Objects[i] As Tks).PY then//不一定全相等,按你需求写逻辑判断
begin
//控制下拉
//控制选中
...
Break;
end;
end;
从第一次输入开始计时,假如隔400ms后还没输入你就进入onchange
每输入一个字符都重新计时如果超过400ms再没输入就查询一个想法 你可以试试