下拉框的自动检索!(100分)

C

code_er

Unregistered / Unconfirmed
GUEST, unregistred user!
数据库中每一中产品名对应一个拼音简码,在程序初始化时把产品名加载到了combobox中,
现在我要实现输入拼音简码自动检索相应(相同或相关)的产品名,怎么实现好呢?
谢谢各位!!
 
初始化时用一个stringlist存放拼音,位置与Combo一一对应
在Combo的Changer事件中写
a := strlst.indexof('pypy');
if a <> -1 then
Combo1.itemindex := a;
 
取汉字的拼音就是了.
http://www.tommstudio.com/newclub30/d_viewdownload.asp?type=kongjian&id=690
 
下不了阿
 
我是这样做的:
初始化
procedure TForm1.FormCreate(Sender: TObject);
begin
with adoquery1 do
begin
close;
sql.Clear;
sql.Add('select medid,medname,mindose_value from yk_medzd');
open;
while not eof do
begin
combobox1.Items.Add(fieldbyname('medname').AsString+' '+fieldbyname('mindose_value').AsString);
next;
end;
end;
end;
 
procedure TForm1.ComboBox1Change(Sender: TObject);
begin
SENDMESSAGE(COMBOBOX1.HANDLE,CB_SHOWDROPDOWN,INTEGER(TRUE),0);
with adoquery1 do
begin
close;
sql.Clear;
sql.Add('select medid,medname,mindose_value,pym from yk_medzd where pym like '''+ComboBox1.text+'%'' order by medname desc');
open;
if recordcount<>0 then combobox1.Items.Clear;
while not eof do
begin
combobox1.Items.Add(fieldbyname('medname').AsString+' '+fieldbyname('mindose_value').AsString);
next;
end;
end;
end;
但不怎么好用,请各位帮我优化一下,谢谢!
 
用dblookupcombox最好了
 
不要先clear
先符值给stringlist
再把commatext拷贝过去
要不就会一直执行chang事件
 
谁呀,帮我优化一下好吗?急用啊
 
看了你上面的代码,你很可能是用 combobox 来进行录入的。
其实你可以用一个 Edit 来录入。
在 edit 的 ONChange 中进行设置。
 
我是这样处理的:给每个产品加一个标识(助记符---按汉字拼音开头),在处理时就处理
助记符。
 
多人接受答案了。
 
顶部