求助:拼音查询问题(50分)

  • 主题发起人 主题发起人 dyhkxywangdong
  • 开始时间 开始时间
D

dyhkxywangdong

Unregistered / Unconfirmed
GUEST, unregistred user!
表是这么设置的
table 1 字段 名称 名称简称 长度 特性…
例如 汽车 qc
火车 hc
气球 qq
火柴 hc
想实现的功能如下
当在combox1中输入q时就会出现第一个字母为q的汉字,那么汽车和气球就会出现在combox中(当再输入c时就只有汽车显示了),点击其中一个,再单击查询按钮就会在dbgrid中显示其详细信息,如长度、特性等

在combox中的什么事件中写代码才能把查询的字段显示在combox中?
delphi7环境下
 
OnChange事件里
判断一下输入的是不是英文,如果是英文则执行查询,动态为COMBOBOX赋值
 
onkeydown ,用一个变量str 收集输入
查询 like '''+str + '%'''
添加到combox1
查询时 str := '';
 
to bsense
我回去试一下 上网不是很方便 不好意思哈
 
OnChange事件
直接就可以判断 直接就循环数据集 找到对应的就填到combobox里 很简单的 有不清楚加我
 
1、在Combobox的OnChange事件中写代码,以下Combobox简称Cbb1
先写个函数
procedure AddCbbContent(cCbbName:TCOMBOBOX;sContent:String);
var
QryInfo : TAdoquery;
begin
QryInfo := TAdoquery.Create(nil);
with QryInfodo
begin
connection := fdm.con1;//你的CONNECTION
close;
sql.clear;
sql.text := 'select 名称 from table1'
+ ' where 名称简称 like '
+ quotedstr('%'+ sContent +'%');
open;
first;

cbb1.clear;
while not eofdo
begin
cbb1.items.add(FieldByName('名称').AsString);
next;
end;
//end while
Free;
end;
//end with
end;
当CBB1中值改变时,执行
AddCbbContent(Cbb1,cbb1.text);
此时显示Cbb1的列表即可!
 

Similar threads

D
回复
0
查看
837
DelphiTeacher的专栏
D
D
回复
0
查看
843
DelphiTeacher的专栏
D
D
回复
0
查看
677
DelphiTeacher的专栏
D
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
后退
顶部