要用Combobox类读取数据库中的某个字段中某些值作为combobox类的items,有什么好方法?help me

fangzhouyu 2003-05-12 10:31:32
如题,急需,combobox,dbcombobox,lookupcombobox都可以,我都用过,没有成功过,那位大佬有好的方法?
...全文
56 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
lf43 2003-05-14
  • 打赏
  • 举报
回复
为什么不用DBLOOKUPCOMBOBOX呢
DBLOOKUPCOMBOBOX.keyvalue=query1.fieldbyname('field').asstring
chao_jian 2003-05-14
  • 打赏
  • 举报
回复
方法基本都列出来了,好好选一个!
snake_eye 2003-05-14
  • 打赏
  • 举报
回复
读进去:
FieldComboBox.Items.AddObject(Fields[I].DisplayLabel,Fields[I]);

要用的时候:
var
CurField:TField;
CurField:=TField(FieldComboBox.Items.Objects[FieldComboBox.ItemIndex]);

这下知道了吧!
fangzhouyu 2003-05-13
  • 打赏
  • 举报
回复
snake_eye(★蛇眼★上帝派来灌水的人): 可不可以注释一下?^-^
snake_eye 2003-05-13
  • 打赏
  • 举报
回复
昨天晚上我回复这贴子,怎么也回复不了,csdn 老出问题!
snake_eye 2003-05-13
  • 打赏
  • 举报
回复
FieldComboBox.Items.AddObject(Fields[I].DisplayLabel,Fields[I]);
是关键!
snake_eye 2003-05-13
  • 打赏
  • 举报
回复
procedure TQueryBilForm.SetEyeDataSet(ADataSet: TClientDataSet);
var
I:Integer;
begin
if FieldComboBox.Items.Count<>0 then
FieldComboBox.Items.Clear;
FEyeDataSet:=ADataSet;
for I:=0 to FEyeDataSet.FieldCount-1 do
FEyeDataSet.Fields[I].DisplayLabel:=FieldList[I];
with FEyeDataSet do
begin
for I:=0 to FEyeDataSet.FieldCount -1 do
begin
if not Fields[I].Visible then Continue;
if not CanFilter(Fields[I]) then Continue;
FieldComboBox.Items.AddObject(Fields[I].DisplayLabel,Fields[I]);
end;
end;
FFilterStr:='';
end;
fangzhouyu 2003-05-13
  • 打赏
  • 举报
回复
我用的是socket连接的,用clientdataset,我是要从一个表中取出某些记录的同一个字段的值作为combobox的items,
xlxfjxm 2003-05-13
  • 打赏
  • 举报
回复
同意楼上的
chwdong 2003-05-13
  • 打赏
  • 举报
回复
if ADOQuery6.Active=true then ADOQuery6.Close;
ADOQuery6.SQL.clear;
ADOQuery6.sql.add('select * from tab_kmmc order by c1');
adoquery6.open;
ComboBox1.Items.Clear;
if ADOQuery6.RecordCount>0 then
begin
for i:=1 to ADOQuery6.RecordCount do
begin
ADOQuery6.RecNo:=i;
ComboBox1.Items.Append(adoquery6.findfield('c1').asstring);
end;
end
bestluo 2003-05-13
  • 打赏
  • 举报
回复
combobox.items[i]
即可
ytwxw 2003-05-13
  • 打赏
  • 举报
回复
你把问题说清楚点
我理解的是你想:
将某个字段的值读取出来作为combobox的item吗?
这个肯定很好实现啊 稍微懂点vcl与数据库都可以实现
fangzhouyu 2003-05-13
  • 打赏
  • 举报
回复
up
fangzhouyu 2003-05-13
  • 打赏
  • 举报
回复
up
snake_eye 2003-05-12
  • 打赏
  • 举报
回复
if FieldComboBox.Items.Count<>0 then
FieldComboBox.Items.Clear;
FEyeDataSet:=ADataSet;
for I:=0 to FEyeDataSet.FieldCount-1 do
FEyeDataSet.Fields[I].DisplayLabel:=FieldList[I];
with FEyeDataSet do
begin
for I:=0 to FEyeDataSet.FieldCount -1 do
begin
if not Fields[I].Visible then Continue;
if not CanFilter(Fields[I]) then Continue;
FieldComboBox.Items.AddObject(Fields[I].DisplayLabel,Fields[I]);
end;
end;
FFilterStr:='';
snake_eye 2003-05-12
  • 打赏
  • 举报
回复
if FieldComboBox.Items.Count<>0 then
FieldComboBox.Items.Clear;
FEyeDataSet:=ADataSet;
for I:=0 to FEyeDataSet.FieldCount-1 do
FEyeDataSet.Fields[I].DisplayLabel:=FieldList[I];
with FEyeDataSet do
begin
for I:=0 to FEyeDataSet.FieldCount -1 do
begin
if not Fields[I].Visible then Continue;
if not CanFilter(Fields[I]) then Continue;
FieldComboBox.Items.AddObject(Fields[I].DisplayLabel,Fields[I]);
end;
end;
FFilterStr:='';
snake_eye 2003-05-12
  • 打赏
  • 举报
回复
if FieldComboBox.Items.Count<>0 then
FieldComboBox.Items.Clear;
FEyeDataSet:=ADataSet;
for I:=0 to FEyeDataSet.FieldCount-1 do
FEyeDataSet.Fields[I].DisplayLabel:=FieldList[I];
with FEyeDataSet do
begin
for I:=0 to FEyeDataSet.FieldCount -1 do
begin
if not Fields[I].Visible then Continue;
if not CanFilter(Fields[I]) then Continue;
FieldComboBox.Items.AddObject(Fields[I].DisplayLabel,Fields[I]);
end;
end;
FFilterStr:='';

1,593

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 网络通信/分布式开发
社区管理员
  • 网络通信/分布式开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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