如何在combobox中添加数据并显示检索到的第一条记录

cccpfjc 2011-12-06 06:41:28
问题如题:
愿准备当用户按下回车键的时候,检索数据库内的表字段并添加到combobox的项目里,然后显示检索到的第一个数据
我的代码如下:
procedure TForm1.ComboBox3KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if Key=13 then
if Trim(ComboBox3.text)='' then
begin
Application.MessageBox('请输入疾病名称或拼音码','提示!',0+64);
ComboBox3.SetFocus;
end
else
begin
with DM.icd10 do
begin
Close;
sql.clear;
sql.Add('select disease_name FROM disease where disease_pym like :a or disease_name like :a ');
parameters.parambyname('a').value:='%'+AnsiUpperCase(trim(ComboBox3.text))+'%';
Open;
end;
ComboBox3.Items.Clear;
while NOT DM.icd10.Eof do
Begin
ComboBox3.Items.add(DM.icd10.Fields[0].VALUE);
Dm.icd10.Next;
END;
end;
SendMessage(combobox3.Handle,CB_SHOWDROPDOWN,1,1);
ComboBox3.ItemIndex:=0;//问题就在这里
end;
问题就出在这句ComboBox3.ItemIndex:=0,如果我一加这句combobox3的文本框内就只能输入一个字母,请问这是怎么回事?是我选择的事件错了吗?还是我设置的问题?
...全文
269 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
cccpfjc 2011-12-07
  • 打赏
  • 举报
回复
simonhehe兄的建议很好,分就给你了,呵呵
cccpfjc 2011-12-07
  • 打赏
  • 举报
回复
多谢大家的帮忙
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 kaikai_kk 的回复:]
恭喜LZ更上一层楼
[/Quote]+1
kaikai_kk 2011-12-06
  • 打赏
  • 举报
回复
恭喜LZ更上一层楼
Terony 2011-12-06
  • 打赏
  • 举报
回复
正想给楼主解决问题呢,看到楼主的回复,好吧,恭喜楼主自行解决问题了。
ADSLAN 2011-12-06
  • 打赏
  • 举报
回复
恭喜LZ自己解决了
simonhehe 2011-12-06
  • 打赏
  • 举报
回复
要想实时显示过滤效果
建议写Onchange事件, 数据一变化就刷新列表
cccpfjc 2011-12-06
  • 打赏
  • 举报
回复
不好意思,自己找到问题了,写错行了,写代码写晕了,呵呵

2,507

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧