社区
ActiveX/COM/DCOM
帖子详情
这种情况该用Combobox呢,还是DBCOMBOBOX,以及实现方法。
babys
2003-09-10 03:18:12
如何才能实现数据库的某字段显示在COMBOBOX中,在COMBOBOX中输入一值立刻搜索ITEM中的近似值,根据输入的改变而改变ITEM,使输入越精确,COMBOBOX中的匹配项越来越少,到用户找到数据后使用光标或鼠标可以选择进来。其它的各控件在COMBO选定以后立刻显示出这个记录的各值。怎么做?用什么控件?
...全文
116
10
打赏
收藏
这种情况该用Combobox呢,还是DBCOMBOBOX,以及实现方法。
如何才能实现数据库的某字段显示在COMBOBOX中,在COMBOBOX中输入一值立刻搜索ITEM中的近似值,根据输入的改变而改变ITEM,使输入越精确,COMBOBOX中的匹配项越来越少,到用户找到数据后使用光标或鼠标可以选择进来。其它的各控件在COMBO选定以后立刻显示出这个记录的各值。怎么做?用什么控件?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
10 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
brillientking
2003-09-14
打赏
举报
回复
楼上应该再加一句:
Query1->Next();
myan18
2003-09-12
打赏
举报
回复
OnKeyPress事件,当你输入某一值时,执行小侃哥的代码,COMBOBOX的状态变为下拉,
就行了。
babys
2003-09-12
打赏
举报
回复
财智老板通里的就是这情形,小侃哥这样只是实现了加入ITEM,但是应该加在控件中的什么事件实现用上下键选择呢,反正CHANG事件是不行的啊,一按键,COMBOBOX的光标就跑到前面去了,文字顺序就颠倒了。比如输入“奔腾”,结果变成“腾奔”,而且不会出现下拉列表,再者就是无法用上下键选择。求救之。
如果觉得分不够,还可以加。
whp320
2003-09-12
打赏
举报
回复
将数据库中的数据读进ComboBox中要利要DataSet中的三条属性:
RecordCount
FieldCount和Fields
用一条循环语句这样实现把所有的数据库中的数据读进ComboBox
for(int i=0;i<RecordCount;i++)
{
for(int j=0;j<FieldCount;j++)
{
ComboBox1->Items->Add(Query1->Fields->Fidld[j]->AsString);
}
}
大概是这样,我时间有限不能够完善这个程序 。利用FieldName还可以读进字段里面的名字
中骑士
2003-09-12
打赏
举报
回复
to: raulfan(范特西)
楼主有一句话你没注意:“COMBOBOX中的匹配项越来越少”,这一条要求在你的程序中没达到!
楼主是否有同感?
建议楼主许诺加分!
raulfan
2003-09-12
打赏
举报
回复
你说的是“自动完成”功能
WORD lastkey ;
//---------------------------------------------------------------------------
void __fastcall TForm1::ComboBox1Change(TObject *Sender)
{
String value = ComboBox1->Text ;
// If the user tried to delete he must not want to change anything.
if (lastkey == '\b' || lastkey == VK_DELETE)
{
lastkey = 0 ;
return ;
}
lastkey = 0 ;
// 确保使用者没有在中间插入字符
if (ComboBox1->SelStart != value.Length ())
return ;
// 在下拉列表中寻找匹配项.
int index = SendMessage (ComboBox1->Handle, CB_FINDSTRING, -1, (LPARAM) value.c_str ()) ;
if (index >= 0)
{
// 找到匹配项并显示.
ComboBox1->ItemIndex = index ;
String newtext = ComboBox1->Text ;
SendMessage (ComboBox1->Handle, CB_SETEDITSEL, 0, MAKELPARAM (value.Length (), -1)) ;
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::ComboBox1KeyDown(TObject *Sender, WORD &Key,
TShiftState Shift)
{
// 按下的最后一个键值.
lastkey = Key ;
}
//---------------------------------------------------------------------------
swites
2003-09-11
打赏
举报
回复
楼上的方法对小型数据库可以,但对8000条以上纪录就不行了,所以最好是建立索引,分块查找较好
xiaokange
2003-09-11
打赏
举报
回复
可以用这样试试啊:
ComboBox1->Clear();
ADOQuery1->Close();
ADOQuery1->SQL->Clear();
ADOQuery1->Add("select 字段名 from 表名 where 字段名 like '"+ComboBox1->Text.Trim()+"%'");
ADOQuery1->Open();
if(ADOQuery1->RecordCount)
{
ADOQuery1->First();
while(!ADOQuery1->Eof)
{
ComboBox1->Items->Add(ADOQuery1->FieldByName("字段名")->AsString);
ADOQuery1->Next();
}
}
52vc
2003-09-11
打赏
举报
回复
用combox好了,因为dbcombox会对数据库进行操作
中骑士
2003-09-11
打赏
举报
回复
我也有此问题,关注!
UP!
不过我知道:一般实现这种 是在DBGrid控件中(我看见过别人的程序):在DBGrid的格子的第一列中输入值,然后出现ITEM,然后右边的几个格子出现这个记录的各属性值.
delphi自定义控件my
Db
ComBobox
控件My
Db
ComboBox
实现
数据感知
ComboBox
fieldname:下拉字段 fieldindex:排序字段 fieldrepeat:是否重复 fieldactive:执行刷新
IntraWeb 人力资源管理程序
不过还有些Bug,我发现的主要是
ComboBox
和
DB
Combobox
有比较严重的Bug。例子可以从[这里]下载,注意例子用的数据集是基于BetterAdo的,大家可以从www.torry.net搜索和下载到,BetterAdo最好在机器上安装有ADO 2.6或...
基于Intraweb的人力资源管理系统演示程序
不过还有些Bug,我发现的主要是
ComboBox
和
DB
Combobox
有比较严重的Bug。例子可以从[这里]下载,注意例子用的数据集是基于BetterAdo的,大家可以从www.torry.net搜索和下载到,BetterAdo最好在机器上安装有ADO 2.6或...
实现
点击
ComboBox
(
DB
ComboBox
)按钮下拉出现TreeView效果
1 楼Gold2000(Gold2000)回复于 2006-02-27 09:44:57
实现
点击
ComboBox
(
DB
ComboBox
)按钮下拉出现MonthCalendar效果 unit LMS_
DB
ComboBox
_Date; interface uses Variants, Windows...
[delphi]
ComboBox
实现
显示文本与值不同的
方法
在html的select下拉框标签里,option选项可以单独设置一个值,可以和显示的文本不同,但在delphi中,下拉框组件
ComboBox
却无法直接像它一样,赋予一个单独的值,但是我们可以通过其他
方法
来
实现
,我们先来试试比较...
ActiveX/COM/DCOM
703
社区成员
3,002
社区内容
发帖
与我相关
我的任务
ActiveX/COM/DCOM
C++ Builder ActiveX/COM/DCOM
复制链接
扫一扫
分享
社区描述
C++ Builder ActiveX/COM/DCOM
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章