达到这样的效果
在编辑框中,输入一个字母A,就在下拉编辑框中,过滤拼音字母是A的科室名字,下拉显示出来,如输入AB就过滤拼音字母是AB的科室名字,下接显示出来 
比如表里有10条记录,是科室的名字
科室    拼音字母
B超室   BCS
CT室    CTS
挂号室  GHS
收费室  SFS输入BC就显示BC的,输入的同时,也要下拉过滤显示出来
输入C就显示包含C的,输入的同时,也要下拉过滤显示出来
谢谢,我在事件里一定要回车才能实现,如果边输边过滤显示出来,好像不行.

解决方案 »

  1.   

    在ComboBox的OnChange事件中进行比对,你可以把相应的拼音字母的写到数据库中去,在OnChange事件进行查询显示。
      

  2.   

    to m617105
    在ComboBox的OnChange事件中进行比对onChange 事件 不能保存2个以上的字母,只能保存一个
      

  3.   

    to  goodhj
    这个问题不用考虑,
      

  4.   

    使用SQL的模糊檢索即可實現...
      

  5.   

    to kye_jufei
    sql语句没问题
    主要是delphi上实现
      

  6.   

    Type
      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;
      

  7.   

    cbx_KSM.Items.AddObject(ls_ks.KSM,ls_ks);//cbx_KSM是放科室名的Combobox
      

  8.   

    可以弄个timer空间
    从第一次输入开始计时,假如隔400ms后还没输入你就进入onchange
    每输入一个字符都重新计时如果超过400ms再没输入就查询一个想法  你可以试试
      

  9.   

    我的意思是delphi+sql模糊查詢,再在OnChange事件中才可以實現...
      

  10.   

    可以用js 写个onkeyup事件执行的函数也可用js 写给每隔几秒就执行筛选方法